首頁 web前端 js教程 div层的移动及性能优化_javascript技巧

div层的移动及性能优化_javascript技巧

May 16, 2016 pm 06:16 PM
效能最佳化

同样如果一个页面结构很复杂或者电脑配置不好的话也会出现这种情况。为了弄清变慢的原因,我们做了几个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);
}
};
}
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Go 框架的效能優化與橫向擴展技術? Go 框架的效能優化與橫向擴展技術? Jun 03, 2024 pm 07:27 PM

Go 框架的效能優化與橫向擴展技術?

利用 C++ 優化火箭引擎性能 利用 C++ 優化火箭引擎性能 Jun 01, 2024 pm 04:14 PM

利用 C++ 優化火箭引擎性能

優化之道:探尋java框架的效能提升之旅 優化之道:探尋java框架的效能提升之旅 Jun 01, 2024 pm 07:07 PM

優化之道:探尋java框架的效能提升之旅

C++ 效能最佳化指南:探索提高程式碼執行效率的秘訣 C++ 效能最佳化指南:探索提高程式碼執行效率的秘訣 Jun 01, 2024 pm 05:13 PM

C++ 效能最佳化指南:探索提高程式碼執行效率的秘訣

先進的C++效能最佳化技術有哪些? 先進的C++效能最佳化技術有哪些? May 08, 2024 pm 09:18 PM

先進的C++效能最佳化技術有哪些?

Java 中如何使用輪廓分析來優化效能? Java 中如何使用輪廓分析來優化效能? Jun 01, 2024 pm 02:08 PM

Java 中如何使用輪廓分析來優化效能?

程式效能優化有哪些常見的方法? 程式效能優化有哪些常見的方法? May 09, 2024 am 09:57 AM

程式效能優化有哪些常見的方法?

如何使用C++優化Web應用程式的效能? 如何使用C++優化Web應用程式的效能? Jun 02, 2024 pm 05:58 PM

如何使用C++優化Web應用程式的效能?

See all articles