-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathd.js
More file actions
1 lines (1 loc) · 2.36 KB
/
d.js
File metadata and controls
1 lines (1 loc) · 2.36 KB
1
window.$=function(a){return document.getElementById(a)};var g=10,h=30,j=10,k=5,l="yellow",m="#FFFF66",n="",o="#FAF0E6",p={left:0,right:0},q=!1,r="leftstart",s="rightstart",t;function u(a){obj=$(a);var b=a=0;if(obj&&obj.offsetParent){a=obj.offsetLeft;for(b=obj.offsetTop;obj=obj.offsetParent;)a+=obj.offsetLeft,b+=obj.offsetTop}return{x:a,y:b}}function v(a,b,c){var d=a.scrollTop,e=a.scrollLeft;a.scrollTop+=c;a.scrollLeft+=b;e=a.scrollLeft-e;d=a.scrollTop-d;return Math.abs(b)>k&&e===0||Math.abs(c)>k&&d===0?(a.style.backgroundColor=o,!0):(p[a.id]+=1,a.style.backgroundColor=n,!1)}function w(a){for(;a&&a.tagName!=="DIV";)a=a.parentElement||a.parentNode;return a}function x(a,b,c){q=!0;var d=$(a),e=$(b),f=w(d),e=w(e),d=u(a).y-f.scrollTop,d=u(b).y-e.scrollTop-d,f=f.scrollLeft-e.scrollLeft;if(d===0&&f===0)clearTimeout(t),q=!1;else if(c<=1)v(e,f,d),q=!1;else{c=Math.floor(Math.abs(d)/c);actualMinStep=Math.min(g,Math.abs(d));var c=Math.abs(c)<g?actualMinStep*(d>0?1:d<0?-1:0):c*(d>0?1:d<0?-1:0),e=v(e,f,c),E=Math.floor(d/c)-1;e?(clearTimeout(t),q=!1):t=setTimeout(function(){return x(a,b,E)},j)}}var y=[];function z(a,b){var c=$(a);if(c!==null)c.style.backgroundColor=b,b!==n&&y.push(a)}function A(a){a=a||window.event;return a.target||a.srcElement}var B=["deletion","insertion","change","move","move-change","unchanged"],C=["deleted","inserted","change","same","same","same"];function D(a){if(typeof a==="string")this.appendChild(document.createTextNode(a));else if(typeof a==="object")if(a.i){var b=document.createElement("a"),c={tid:a.i,id:a.i+this.m,"class":B[a.c],title:C[a.c]},d;for(d in c)b.setAttribute(d,c[d]);b.innerHTML=a.s;this.appendChild(b);b.onmouseover=function(a){var a=A(a),b=a.id,c=a.getAttribute("tid");w(a).id==="left"?(r=b,s=c):(r=c,s=b);for(i=0;i<y.length;i+=1)z(y[i],n);y=[];z(b,l);z(c,l);z("ignore",m);z("ignore",m);x(b,c,h)}}else b=document.createElement("span"),b.setAttribute("class",B[a.c]),b.setAttribute("title",C[a.c]),b.innerHTML=a.s,this.appendChild(b);else throw"render data type err";}window.onload=function(){var a=JSON.parse($("data").innerText);$("leftstart").parentNode.m=-1;a.left.forEach(D,$("leftstart").parentNode);$("rightstart").parentNode.m=1;a.right.forEach(D,$("rightstart").parentNode);[$("left"),$("right")].forEach(function(a){a.onscroll=function(a){a=A(a);a.style.backgroundColor=n;!q&&p[a.id]===0&&(a.id==="left"?x(r,s,1):x(s,r,1));p[a.id]>0&&(p[a.id]-=1)}})};