❶ 如何用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)一樣。