国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

div層的移動及性能優化

2024-07-21 02:04:41
字體:
來源:轉載
供稿:網友

層的移動本來很簡單,用jquery插件或者自己寫一個也不難,但是最近一個ipad項目里,發現用手移動div會感覺很卡,體驗很差(可能是ipad的配置根不上pc)。

同樣如果一個頁面結構很復雜或者電腦配置不好的話也會出現這種情況。為了弄清變慢的原因,我們做了幾個demo對比,最后發現在mousemove事件上加上定時器能改進這個體驗。

整個代碼的關鍵地方在于當鼠標按下時開始了的計時器,這樣Onmousemove事件會每隔30ms執行一次,然后在鼠標松下的時候清除計時器。

timer=setInterval(function(){flag=true;},30);

這樣可以減輕瀏覽器繪制div層的負擔,不至于拖動時每時每刻都在移動,其實太短了人眼也感覺不到變化,延遲間隔可以自己根據體驗設置。

function Endrag(source,target){source=typeof(source)=="object" ? source:document.getElementById(source);target=typeof(target)=="object" ? target:document.getElementById(target);var x0=0,y0=0,x1=0,y1=0,moveable=false,index=100;var timer,flag=false;var i=0;source.onmousedown=function(e){e = e ? e : (window.event ? window.event : null);x0 = e.clientX ;y0 = e.clientY ;x1 = isNaN(parseInt(source.style.left))?0:parseInt(source.style.left);y1 = isNaN(parseInt(source.style.top))?0:parseInt(source.style.top);moveable = true;//當鼠標按下時,定時器開始工作,每隔50ms執行一次mousemove事件timer=setInterval(function(){flag=true;},30);};//拖動;source.onmousemove=function(e){e = e ? e : (window.event ? window.event : null);if(moveable){if(flag){i++;flag=false;target.style.left = (e.clientX + x1 - x0 ) + "px";target.style.top = (e.clientY + y1 - y0 ) + "px";}}};//停止拖動;source.onmouseup=function (e){if(moveable) {moveable = false;clearInterval(timer);//alert(i);}};//停止拖動;source.onmouseout=function (e){if(moveable) {moveable = false;clearInterval(timer);//alert(i);}};} 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 明溪县| 厦门市| 新巴尔虎右旗| 襄汾县| 鄂托克旗| 衡水市| 灵武市| 西贡区| 三门县| 修武县| 台北县| 合川市| 长宁县| 边坝县| 会东县| 万宁市| 通化县| 张北县| 美姑县| 清苑县| 英山县| 定远县| 吕梁市| 新昌县| 铅山县| 仁寿县| 昌黎县| 广德县| 惠安县| 汾西县| 唐河县| 二连浩特市| 万载县| 遂溪县| 璧山县| 莎车县| 太原市| 西昌市| 余庆县| 丰顺县| 台北县|