diff options
-rw-r--r-- | html/display.html | 34 | ||||
-rw-r--r-- | src/common.js | 22 | ||||
-rw-r--r-- | src/window-utils.js | 9 |
3 files changed, 54 insertions, 11 deletions
diff --git a/html/display.html b/html/display.html index 118a318..08d8fdb 100644 --- a/html/display.html +++ b/html/display.html @@ -6,6 +6,7 @@ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <script rel="preconnect" src="./src/jssh.js" crossorigin></script> <script rel="preconnect" src="./src/window-utils.js" crossorigin></script> + <script rel="preconnect" src="./src/common.js" crossorigin></script> <link href="https://fonts.googleapis.com/css2?family=Flow+Circular&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet"> <title>~nya</title> @@ -197,10 +198,7 @@ a += "<div id='" + uid + "-content-root' class='content-root' style='overflow:scroll;height:calc(100% - 26px);width:100%'>" a += "<div id='" + uid + "-content-content' class='content-content'>" + content + "</div>" - if (options.scroll != false && options.scroll != "false") { - a += "<div id='" + uid + "-content-scrollbar' class='scrollbar'><div id='" + uid + "-content-scrollbar-point' class='scrollbar-point'></div>" - a += "</div>" - } + a += "</div>" if (options.resize != false && options.resize != "false") { a += "<div id='" + uid + "-resize-ne' class='resize-ne'></div>" @@ -209,6 +207,11 @@ a += "<div id='" + uid + "-resize-es' class='resize-es'></div>" } document.getElementById("root").innerHTML += a + if (options.scroll != false && options.scroll != "false") { + //a += "<div id='" + uid + "-content-scrollbar' class='scrollbar'><div id='" + uid + "-content-scrollbar-point' class='scrollbar-point'></div>" + //a += "</div>" + util.scrollbar(uid,'content-scroll',document.getElementById(uid + "-content-root"),document.getElementById(uid + "-content-content")) + } //console.log(document.getElementById(uid + "-content-root").clientHeight / (document.getElementById(uid + "-content-content").clientHeight / document.getElementById(uid + "-content-root").clientHeight)) //console.log(document.getElementById(uid + "-content-scrollbar-point")) @@ -219,9 +222,12 @@ } function refresh_windows() { load_bar() + let elems = document.getElementsByClassName("window") for (let i = 0; i != elems.length; i++) { let uid = elems.item(i).id.split("-")[0] + if(null!=procs[uid] && null!=procs[uid].refresh) + procs[uid].refresh() try { document.getElementById(uid + "-content-scrollbar-point").style.height = (document.getElementById(uid + "-content-root").clientHeight / (document.getElementById(uid + "-content-content").clientHeight / document.getElementById(uid + "-content-root").clientHeight)) + "px" @@ -353,6 +359,7 @@ //if (sel == 'resize-s' || sel == 'resize-n' || ) { if(null!=procs[uid] && null!=procs[uid].refresh) procs[uid].refresh() + /* for (let iii = 0; iii != elem.parentElement.parentElement.parentElement.children.length; iii++) { //console.log(elem.parentElement.parentElement.parentElement.children.item(iii).className) if (elem.parentElement.parentElement.parentElement.children.item(iii).className == "content-root") { @@ -387,7 +394,7 @@ } break } - } + }*/ //} py = (evm.clientY) px = (evm.clientX) @@ -396,6 +403,7 @@ }) } }) + /* let temp let scrolling = false for (let ii = 0; ii != elec.length; ii++) { @@ -415,6 +423,8 @@ for (let iiiii = 0; iiiii != elec.item(ii).children.length; iiiii++) { if (elec.item(ii).children.item(iiiii).className == 'content-content') { + + //console.log(elec.item(ii).children.item(iiiii), "hi") con = elec.item(ii).children.item(iiiii) elec.item(ii).onscroll = ((ev) => { @@ -477,7 +487,7 @@ if (elem.className == 'scrollbar-point') { - } + }*/ @@ -504,9 +514,15 @@ for (let ii = 0; ii != a_p_c.length; ii++) { if (a_p_c.item(ii).id == id + "-history") { let his = a_p_c.item(ii).id - if (procs[id] == undefined) - procs[id] = new jssh(fs, "/", id, inp, his, window_create) - procs[id].ex() + if(procs[id] == undefined) + procs[id] = {} + if (procs[id].comm == undefined){ + + procs[id].comm = new jssh(fs, "/", id, inp, his, window_create) + } + //console.log(procs) + //return + procs[id].comm.ex() refresh_windows() a.parentElement.parentElement.scrollTop = a.parentElement.parentElement.scrollHeight break diff --git a/src/common.js b/src/common.js new file mode 100644 index 0000000..5606706 --- /dev/null +++ b/src/common.js @@ -0,0 +1,22 @@ +Object.prototype.clone = Array.prototype.clone = function() //https://stackoverflow.com/questions/12690107/clone-object-without-reference-javascript +{ + if (Object.prototype.toString.call(this) === '[object Array]') + { + var clone = []; + for (var i=0; i<this.length; i++) + clone[i] = this[i].clone(); + + return clone; + } + else if (typeof(this)=="object") + { + var clone = {}; + for (var prop in this) + if (this.hasOwnProperty(prop)) + clone[prop] = this[prop].clone(); + + return clone; + } + else + return this; +}
\ No newline at end of file diff --git a/src/window-utils.js b/src/window-utils.js index f45dd0f..149b9d0 100644 --- a/src/window-utils.js +++ b/src/window-utils.js @@ -21,13 +21,14 @@ let util = { //target is where the scrollbar will be placed, this element should be //larger than the root with scrollable overflow let scrolling = false - if(!procs[uid]) + if(undefined==procs[uid]) procs[uid] = {} target.innerHTML += "<div id='" + uid + "-" + minor_uid + "-content-scrollbar' class='scrollbar'><div id='" + uid + "-" + minor_uid + "-content-scrollbar-point' class='scrollbar-point'></div></div>" let thi_point = document.getElementById(uid + "-" + minor_uid + "-content-scrollbar-point") let thi_base = document.getElementById(uid + "-" + minor_uid + "-content-scrollbar") procs[uid].refresh = ()=>{ - console.log(root.clientHeight / (target.clientHeight / root.clientHeight) / root.clientHeight) + + //console.log(root.clientHeight / (target.clientHeight / root.clientHeight) / root.clientHeight) thi_point.style.display = "block" thi_base.style.display = "block" thi_point.style.height = root.clientHeight / (target.clientHeight / root.clientHeight) @@ -35,6 +36,10 @@ let util = { thi_point.style.display = "none" thi_base.style.display = "none" } + + if(thi_base.clientHeight<thi_point.offsetTop+thi_point.clientHeight){ + thi_point.style.top = thi_base.clientHeight-thi_point.clientHeight + } } console.log(root) root.onscroll = () => { |