最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2010年11月16日 23:00:24   作者:  
層的移動本來很簡單,用jquery插件或者自己寫一個也不難,但是最近一個ipad項目里,發(fā)現(xiàn)用手移動div會感覺很卡,體驗很差(可能是ipad的配置根不上pc)。
同樣如果一個頁面結(jié)構(gòu)很復(fù)雜或者電腦配置不好的話也會出現(xiàn)這種情況。為了弄清變慢的原因,我們做了幾個demo對比,最后發(fā)現(xiàn)在mousemove事件上加上定時器能改進這個體驗。

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

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

這樣可以減輕瀏覽器繪制div層的負擔(dān),不至于拖動時每時每刻都在移動,其實太短了人眼也感覺不到變化,延遲間隔可以自己根據(jù)體驗設(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)按下時,定時器開始工作,每隔50ms執(zhí)行一次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);
}
};
}

相關(guān)文章

  • javascript getElementByTagName的使用

    javascript getElementByTagName的使用

    javascript getElementByTagName當(dāng)鼠標(biāo)放上去時將超鏈接的顏色設(shè)為藍色的。
    2009-06-06
  • js實現(xiàn)簡單分頁導(dǎo)航欄效果

    js實現(xiàn)簡單分頁導(dǎo)航欄效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)簡單分頁導(dǎo)航欄效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 微信小程序?qū)崿F(xiàn)登錄遮罩效果

    微信小程序?qū)崿F(xiàn)登錄遮罩效果

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)登錄遮罩效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Web 開發(fā)中Ajax的Session 超時處理方法

    Web 開發(fā)中Ajax的Session 超時處理方法

    下面小編就為大家?guī)硪黄猈eb 開發(fā)中Ajax的Session 超時處理方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 網(wǎng)頁中右鍵功能的實現(xiàn)方法之contextMenu的使用

    網(wǎng)頁中右鍵功能的實現(xiàn)方法之contextMenu的使用

    本文介紹一種網(wǎng)頁中實現(xiàn)右鍵功能的方案–contextMenu,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • javascript倒計時效果實現(xiàn)

    javascript倒計時效果實現(xiàn)

    這篇文章為大家分享了javascript倒計時效果實現(xiàn)代碼段,現(xiàn)今團購網(wǎng)、電商網(wǎng)、門戶網(wǎng)等,常使用時間記錄重要的時刻,如時間顯示、倒計時差、限時搶購等,特別是雙十一活動,需要的朋友可以參考下
    2015-11-11
  • 原生JS下拉加載插件分享

    原生JS下拉加載插件分享

    本文主要分享了原生JS下拉加載插件的實現(xiàn)代碼。具有一定的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • JS使用正則表達式找出最長連續(xù)子串長度

    JS使用正則表達式找出最長連續(xù)子串長度

    這篇文章主要介紹了js 正則找出最長連續(xù)子串長度的實現(xiàn)代碼,需要的朋友可以參考下
    2017-10-10
  • 利用ES6實現(xiàn)單例模式及其應(yīng)用詳解

    利用ES6實現(xiàn)單例模式及其應(yīng)用詳解

    單例是在程序設(shè)計非常基礎(chǔ)的東西,這篇文章主要給大家介紹了關(guān)于利用ES6實現(xiàn)單例模式及其應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • 使用javascript做時間倒數(shù)讀秒功能的實例

    使用javascript做時間倒數(shù)讀秒功能的實例

    今天小編就為大家分享一篇關(guān)于使用javascript做時間倒數(shù)讀秒功能的實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論

沙河市| 娄烦县| 湟源县| 垫江县| 万源市| 县级市| 颍上县| 股票| 龙州县| 大港区| 谢通门县| 竹溪县| 琼中| 庆元县| 睢宁县| 积石山| 石门县| 阿图什市| 庄河市| 临清市| 布尔津县| 兴义市| 桃源县| 永善县| 北海市| 法库县| 晋州市| 博兴县| 安庆市| 濮阳市| 鲁山县| 高要市| 余姚市| 丰顺县| 伊吾县| 石城县| 新营市| 富锦市| 莆田市| 洱源县| 土默特左旗|