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

首頁(yè) > 編程 > JavaScript > 正文

div層的移動(dòng)及性能優(yōu)化

2019-11-21 00:08:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
同樣如果一個(gè)頁(yè)面結(jié)構(gòu)很復(fù)雜或者電腦配置不好的話也會(huì)出現(xiàn)這種情況。為了弄清變慢的原因,我們做了幾個(gè)demo對(duì)比,最后發(fā)現(xiàn)在mousemove事件上加上定時(shí)器能改進(jìn)這個(gè)體驗(yàn)。

整個(gè)代碼的關(guān)鍵地方在于當(dāng)鼠標(biāo)按下時(shí)開(kāi)始了的計(jì)時(shí)器,這樣Onmousemove事件會(huì)每隔30ms執(zhí)行一次,然后在鼠標(biāo)松下的時(shí)候清除計(jì)時(shí)器。

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

這樣可以減輕瀏覽器繪制div層的負(fù)擔(dān),不至于拖動(dòng)時(shí)每時(shí)每刻都在移動(dòng),其實(shí)太短了人眼也感覺(jué)不到變化,延遲間隔可以自己根據(jù)體驗(yàn)設(shè)置。
復(fù)制代碼 代碼如下:

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;
//當(dāng)鼠標(biāo)按下時(shí),定時(shí)器開(kāi)始工作,每隔50ms執(zhí)行一次mousemove事件
timer=setInterval(function(){flag=true;},30);
};
//拖動(dòng);
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";
}
}
};
//停止拖動(dòng);
source.onmouseup=function (e){
if(moveable) {
moveable = false;
clearInterval(timer);
//alert(i);
}
};
//停止拖動(dòng);
source.onmouseout=function (e){
if(moveable) {
moveable = false;
clearInterval(timer);
//alert(i);
}
};
}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 和静县| 酉阳| 阿瓦提县| 冀州市| 余庆县| 门头沟区| 萝北县| 漠河县| 无为县| 通道| 江城| 梁河县| 陆良县| 高要市| 甘南县| 东光县| 乐昌市| 滦平县| 高唐县| 灵石县| 华蓥市| 临漳县| 荆州市| 晴隆县| 宣威市| 合阳县| 贵港市| 紫金县| 陆川县| 镇雄县| 开化县| 乐亭县| 康保县| 洛隆县| 湖南省| 云龙县| 罗源县| 应城市| 三都| 罗甸县| 柞水县|