当前位置:首页 > 技术博客 > JQuery > jq scroll()和resize() 的优化

jq scroll()和resize() 的优化

6年前 (2019-04-24)JQuery736

在最近的一个项目中我使用到了jq中的scroll()和resize()方法来检测用户滚动/调整浏览器窗口并运行相关代码。可以注意到scroll()、resize()在各种浏览器的性能消耗不一。

   #IE、Safari、Chrome在调整窗口变化中一直在执行resize事件

   #Opera则在这个过程中发生了很多次resize事件,但在结束调整时执行。

   #Firefox则是只在调整结束后才执行事件。

 我们想要的明显是在结束调整之后才执行事件。幸运的是我们可以通过以下几种方法来调整:

调整运行时间

创建一个在你发生调整时需要执行的任意代码的函数。

可以运行函数并给它设置一个超过时间执行,从而达到在某一段时间内执行一次函数


我们对滚动监听的处理:

(function($) {
    var scrollTimer; 
    function scrollFunction() {
        // 处理函数
    };
    
    $(window).scroll(function() {
        clearTimeout(scrollTimer);
        scrollTimer = setTimeout(scrollFunction, 100);//我们可以适当调整时间间隔
    });
})(jQuery);


同样的,我们对resize()也可以做同样的处理

(function($) {
    var resizeTimer; 
    function resizeFunction() {
        // 处理函数
    };
    
    $(window).resize(function() {
        clearTimeout(resizeTimer);
        resizeTimer = setTimeout(resizeFunction, 100);//我们可以适当调整时间间隔
    });
    resizeFunction();//首次运行
})(jQuery);


版权声明:本文由 LzxBlog 发布,如需转载请注明出处。

本文链接:https://www.liuzhixi.cn/html/42.html

标签: jQuery

相关文章

Jq滚动条控制视频自动播放和自动暂停

Jq滚动条控制视频自动播放和自动暂停

项目需要根据用户窗口判断是否在视频窗口,入口在视频窗口则播放,否则暂停。       &n...

关注列表缩放滚动效果

关注列表缩放滚动效果

使用jQuery和css3制作响应式的关注列表上下垂直滚动效果,可动态添加数据,带关注按钮事件。修改data数组添加或删除数据即可实现。<head>...

jQuery动态数据流程步骤条特效

jQuery动态数据流程步骤条特效

jQuery动态数据流程步骤条特效,事先设置好需要走的流程步骤,然后根据状态进行判断走到哪一步,审批意见是什么,支持动态数据配置。<html>&nb...

jQuery html5背景视频插件

jQuery html5背景视频插件

vidbacking是一款响应式的,跨平台的html5视频背景插件。该视频背景插件允许你在页面中的某个div后整个页面中使用HTML5视频作为背景使用方法在页面...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。