javascript阻止scroll事件多次执行的思路及实现

 更新时间:2013年11月08日 17:34:55   投稿:whsnow  
阻止scroll事件多次执行主要是为了解决一些常见网页特效在js解析时预期与效果不同,感兴趣的朋友可以了解下

写这个主要是为了解决一些常见网页特效在js解析时预期与效果不同。

原始代码 :

复制代码 代码如下:

//测试代码
window.onscroll = function(){
alert("haha");
}

装在script标签内 鼠标滑动之后一直惦记 提示框才可以,所以很不方便 ,
而且 目的是鼠标滑动后 只执行一次事件,这个效果显然和实际不符合吧。

//代码改进--增加延时器。
既然scroll事件是一个连续触发事件,那我设置一个延迟器,在用户滑动鼠标的时间后执行该函数 ,书不是就可以只执行一次啦 。
复制代码 代码如下:

//测试代码:
function haha(){
alert("haha");
}
window.onscroll = function(){
setTimeout(haha,500);
}

结果发现该死的 还是和上面一样 要弹出很多的警告框--可见 scroll事件像队列一样排成一行 ,按顺序执行 ,所以此路不通,另想办法啊。

通过条件控制事件执行 ,这个是个不错的方法
复制代码 代码如下:

function haha(){
alert("haha");
}
var tur = true; //创建条件
window.onscroll = function(){
if(tur){ setTimeout(haha,500); tur = false; }
else
{}
}

庆幸的是,鼠标滚动执行一次代码 ,问题是 当再次滚动鼠标之后 ,事件再也不执行了。
原因就是条件被设置为false 所以后续的事件永远不执行了。

思路就是 条件判断+延迟执行 就可以解决这个问题。在事件执行之初,复活变量。
复制代码 代码如下:

var tur = true;
function haha(){alert("haha"); tur = true; }

window.onscroll = function(){
if(tur){ setTimeout(haha,1000); tur = false;
}else{ }
}

相关文章

  • 详解基于Wepy开发小程序插件(推荐)

    详解基于Wepy开发小程序插件(推荐)

    这篇文章主要介绍了详解基于Wepy开发小程序插件(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-08-08
  • echarts实现地图定时切换散点与多图表级联联动详解

    echarts实现地图定时切换散点与多图表级联联动详解

    这篇文章主要给大家介绍了关于echarts实现地图定时切换散点与多图表级联联动的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • d3.js实现立体柱图的方法详解

    d3.js实现立体柱图的方法详解

    这篇文章主要给大家介绍了利用d3.js实现立体柱图的方法,文中给出了详细的介绍和示例代码供大家参考学习,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Openlayers实现根据半径绘制圆形

    Openlayers实现根据半径绘制圆形

    这篇文章主要介绍了利用Openlayers实现绘制三个圆形,绘制完成之后,三个圆心连接起来,然后标记出每两个圆心之间的距离,感兴趣的可以了解一下
    2022-08-08
  • Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解

    Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解

    这篇文章主要介绍了Bootstrap简单实用的表单验证插件BootstrapValidator用法,结合实例形式详细分析了Bootstrap表单验证插件BootstrapValidator基本功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • vue组件创建的三种方式小结

    vue组件创建的三种方式小结

    这篇文章主要介绍了vue组件创建的三种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • js实现的切换面板实例代码

    js实现的切换面板实例代码

    切换面板具备功能:鼠标划过不同的题目会有不同的图片和解说,可以连接到不同的网站,实例代码如下,感兴趣的朋友可以参考下哈
    2013-06-06
  • Bootstrap实现的标签页内容切换显示效果示例

    Bootstrap实现的标签页内容切换显示效果示例

    这篇文章主要介绍了Bootstrap实现的标签页内容切换显示效果,结合完整实例形式分析了基于Bootstrap实现的标签页内容切换显示功能相关操作技巧,非常简单实用,需要的朋友可以参考下
    2017-05-05
  • swiper动态改变滑动内容的实现方法

    swiper动态改变滑动内容的实现方法

    假设当前显示的是1,往左滑动一个递减1,往右滑动一个递增1。下面通过实例代码给大家讲解swiper动态改变滑动内容的实现方法,感兴趣的朋友一起看看吧
    2018-01-01
  • 老生常谈JavaScript面向对象基础与this指向问题

    老生常谈JavaScript面向对象基础与this指向问题

    下面小编就为大家带来一篇老生常谈JavaScript面向对象基础与this指向问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论