❶ 如何用js监听滚动条滚动事件
js监视滚动事件的函数是onscroll
js语法:element.onscroll = functionReference
html语法:<elementonscroll="myScript">
❷ js scroll 滚动连续多次触发事件怎么只执行一次
1: 设置一个全局变量is_running = false
2: 然后再你scroll触发的事件方法的开头加上一个if判断,如果is_running==false就先把is_running=true,然后执行方法。
3: 在执行结束的末尾,把is_running=false改回来表示执行结束,
4: 这相当于加锁和解锁的过程,在is_running==true的期间就算触发了此方法也不会真正执行的
5: 所以连续触发时只执行一次。当然你在方法执行过程中最好有异常捕获,以防执行到一半出错了,is_running 一直是true,然后永远执行不了了
❸ JS - 滚动事件(onscroll)
当浏览器滚动条滚动时会触发 onscroll 事件,通常情况下指上下滚动条滚动。
需要注意的是,浏览器一旦检测到滚动条发生滚动,就可以触发 onscroll 事件,而无需等到滚动行为结束。
下面的例子演示了一个极普遍的应用:利用 onscroll 事件检测滚动条位置,当向下滚动到一定位置时,在页面右下角会出现“返回顶部”的锚链接,以方便网站用户快速返回顶部。
❹ js scroll 滚动连续多次触发事件怎么只执行一次
1: 设置一个全局变量is_running = false
2: 然后再你scroll触发的事件方法的开头加上一个if判断,如果is_running==false就先把is_running=true,然后执行方法。
3: 在执行结束的末尾,把is_running=false改回来表示执行结束,
4: 这相当于加锁和解锁的过程,在is_running==true的期间就算触发了此方法也不会真正执行的
5: 所以连续触发时只执行一次。当然你在方法执行过程中最好有异常捕获,以防执行到一半出错了,is_running 一直是true,然后永远执行不了了
❺ 如何用js监听滚动条滚动事件
js监视滚动事件的函数是onscroll
js语法:element.onscroll = functionReference
html语法:<elementonscroll="myScript">
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8"/>
<style>
#container{
position:absolute;
height:auto;
top:0;
bottom:0;
width:auto;
left:0;
right:0;
overflow:auto;
}
#foo{
height:1000px;
width:1000px;
background-color:#777;
display:block;
}
</style>
</head>
<body>
<divid="container">
<divid="foo"></div>
</div>
<scripttype="text/javascript">
//js绑定你需要监控滚动事件的dom,也可以绑定document.body监控整个网页滚动
//也可以监控具体的dom滚动,像下面的containerId对象
document.getElementById('container').onscroll=function(){
console.log("scrolling");
};
</script>
</body>
</html>
❻ JS如何判断鼠标滚轮事件分析
我们都见到过这些效果,用鼠标滚轮实现某个表单内的数字增加减少操作,或者滚轮控制某个按钮的左右,上下滚动。这些都是通过js对鼠标滚轮的事件监听来实现的。今天这里介绍的是一点简单的js对于鼠标滚轮事件的监听。先分析原理:我们是通过判断鼠标滚动的获取一个值,然后根据这个值判断滚动的方向。然而不同浏览器有不同的获取方法,所以要分浏览器写方法。 不同浏览器不同的事件 首先,不同的浏览器有不同的滚轮事件。主要是有两种,onmousewheel(firefox不支持)和DOMMouseScroll(只有firefox支持),关于这两个事件这里不做详述,想要了解的朋友请先去了解鼠标滚轮(mousewheel)和DOMMouseScroll事件。过程中需要添加事件监听:兼容firefox采用addEventListener监听。 js返回数值判断滚轮上下 判断滚轮向上或向下在浏览器中也要考虑兼容性(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上也是不一致,但是含义一致,detail与wheelDelta只各取两个 值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。 具体的代码如下所示: <label for=wheelDelta滚动值:</label(IE/Opera)<input type=text id=wheelDelta/ <label for=detail滚动值:(Firefox)</label<input type=text id=detail/ <script type=text/javascript var scrollFunc=function(e){ e = e || window.event; var t1=document.getElementById(wheelDelta); var t2=document.getElementById(detail); if(e.wheelDelta){//IE/Opera/Chrome t1.value=e.wheelDelta; }else if(e.detail){//Firefox t2.value=e.detail;}} /*监听事件*/
❼ js的window.scroll怎么用
1、onscroll
解释:当元素的滚动条滚动时触发的事件。
onscroll事件貌似任何实体元素都可以绑定,这里的实体元素包括DOM元素、window元素、document元素。
用法即:element.onscroll=function(){};
需要注意的是,滚动条一定要出现,而且滚动条是属于这元素的,例如:
1 <div id="wrap" style="height:100px;overflow:auto;">
2 <div id="inner" style="height:200px;">content</div>
3 </div>
因为外层wrap的高度小于内层inner的高度,所以当设置overflow:auto时会出现滚动条,当拖动滚动条时就会触发wrap的onscroll事件,而不是inner的onscroll事件,即这滚动条属于wrap而不是属于inner,明白这点十分重要,对下面理解的scrollTop、scrollHeight一样道理。
2、scrollTop
解释:元素滚动条内的顶部隐藏部分的高度。
scrollTop属性只有DOM元素才有,window/document没有。
用法1:获取值 var top = element.scrollTop;//返回数字,单位像素
用法2:设置值 element.scrollTop = 200;
对上面的例子来说,控制滚动条的位置是wrap.scrollTop=xx;而不是inner.scrollTop,道理同上。
兼容性问题:获得整个文档scrollTop,IE是document.documentElement.scrollTop,FF/CH则是document.body.scrollTop.
3、scrollHeight
解释:元素滚动条内的内容高度。
scrollHeight同scrollTop属性一样,只有DOM元素才有,window/document没有。
不同的是scrollHeight是只读,不可设置。
兼容性问题:获取整个文档scrollHeight,IE/FF/CH都可以通过document.documentElement.scrollHeight或document.body.scrollHeight获得。
此外还有scrollLeft,scrollWidth,道理是一样的。
4、关于window.scroll(),window.scrollBy(),window.scrollTo()
这3个是全局函数,最新的IE/FF/CH都支持。
window.scroll(x,y)是让window滚动条滚动到那个x,y坐标。//x是水平坐标,y是垂直坐标。
window.scrollBy(-x,-y)是让window滚动条相对滚动到某个坐标,- 10即相对向左/向上滚动10像素。
window.scrollTo(x,y)和window.scroll(x,y)一样。