日期:2014-05-16  浏览次数:20363 次

$(window).resize() 时,鼠标释放后再执行
使用jquery绑定$(window).resize() 事件时,由于处理的代码比较多,所以在改变窗口大小时,会特别卡,而且容浏览器容易假死。

想在改变窗口时,释放鼠标后,再执行resize绑定的事件,不知道行不行,知道的朋友请帮忙一下。
------解决方案--------------------

var rt;
$(window).resize(function(){
clearTimeout(rt);
rt = setTimeout(function(){
alert("执行代码");
},500);
});

------解决方案--------------------
你要跟我說不行,我跟你急...
是男人,就一定要行.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
/* 兼容ie678 */
html,body{height:100%;overflow:visible;}
</style>
<title>test</title>
<script type="text/javascript">
var idt;
var n = 0;
window.onresize = function() {
clearTimeout(idt);
idt = setTimeout(function() {
n++;
document.getElementById('d').innerHTML += n + ',';
}, 10);
}
</script>
</head>
<body>
<div id="d" style="width:1000px;height:1200px;background:#f6f6f6;"></div>
</body>
</html>

------解决方案--------------------
引用:
Quote: 引用:


var rt;
$(window).resize(function(){
clearTimeout(rt);
rt = setTimeout(function(){
alert("执行代码");
},500);
});


你好,延迟执行,这个我也看到其它的网友说过,但并不是最佳的解决方案,因为你不知道用户什么时候松手,谢谢


对于一般情况  延迟节流就可以算是比较好的解决方法了(知不知道用户何时松手不重要,重要的是延迟可以保证只在用户松手的时候执行resize绑定的函数)~~~
------解决方案--------------------
resize类似定时器,只要窗口不断变化就会不断执行。你想以释放鼠标来判断是不行的。因为改变窗口大小并不一定是拖动鼠标来改变,还有单击、快捷键。