一、滾輪事件介紹
滾輪事件是指滑鼠滾輪被滾動時所觸發的事件。在頁面上,滾輪事件可以用來實現一些交互效果,如上下滾動網頁內容、縮放圖片等。
在JS中可以通過addEventListener方法來監聽滾輪事件,代碼如下:
let scrollFunc = function(e){ e = e || window.event; if (e.wheelDelta){//判斷瀏覽器IE,谷歌滑輪事件 if (e.wheelDelta > 0) { //當滑輪向上滾動時 } if (e.wheelDelta 0) { //當滑輪向下滾動時 } if (e.detail< 0) { //當滑輪向上滾動時 } } } //給頁面綁定滑輪滾動事件 if(document.addEventListener){ document.addEventListener('DOMMouseScroll',scrollFunc,false); }//W3C window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
二、滾輪滾動控制網頁內容
利用滾輪事件控制網頁內容滾動是比較常見的交互效果。可以通過監聽滾輪事件,判斷滾輪滾動的方向,然後對網頁內容進行相應的滾動。
實現方法是獲取頁面的scrollTop屬性,然後通過改變scrollTop的值來控制網頁滾動。例如,當滑輪向下滾動時,將scrollTop的值加上一個固定值,當滑輪向上滾動時,將scrollTop的值減去一個固定值。
代碼示例:
let scrollStep = 50; let scrollDelta = 0; function scrollPage(delta){ let scrollTop = document.documentElement.scrollTop || document.body.scrollTop; scrollTop -= delta > 0 ? scrollStep : -scrollStep; if(scrollTop < 0) scrollTop = 0; document.documentElement.scrollTop = document.body.scrollTop = scrollTop; } let scrollFunc = function(e){ e = e || window.event; if (e.wheelDelta){ scrollDelta = e.wheelDelta; } else if (e.detail){ scrollDelta = e.detail * -1; } if (scrollDelta){ scrollPage(scrollDelta); } e.preventDefault && e.preventDefault(); e.returnValue = false; } if (document.addEventListener){ document.addEventListener('DOMMouseScroll', scrollFunc, false); } window.onmousewheel = document.onmousewheel = scrollFunc;
三、滾輪控制動畫效果
除了控制網頁滾動,滾輪事件還可以用來實現一些動畫效果。例如,當用戶滑動滾輪時,圖片可以做出相應的縮放或移動效果。
實現方法是通過CSS3的transform屬性來控制元素的縮放、旋轉等效果,同時通過監聽滾輪事件,動態改變transform屬性的值達到動畫效果的實現。
代碼示例:
let scale = 1; let scaleStep = 0.1; function zoomPage(delta){ scale += delta > 0 ? -scaleStep : scaleStep; if(scale < 0.5) scale = 0.5; document.body.style.transform = 'scale(' + scale + ')'; } let scrollFunc = function(e){ e = e || window.event; let delta = e.wheelDelta || e.detail * -1; if (delta){ zoomPage(delta); } e.preventDefault && e.preventDefault(); e.returnValue = false; } if (document.addEventListener){ document.addEventListener('DOMMouseScroll', scrollFunc, false); } window.onmousewheel = document.onmousewheel = scrollFunc;
四、總結
通過對滾輪事件的使用,可以實現一些很有創意的交互效果,讓用戶的體驗更加流暢。在實際開發過程中,開發人員需要根據具體需求來選擇對應的實現方式,並且需要注意兼容性的處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152479.html