一、滾輪事件介紹
滾輪事件是指滑鼠滾輪被滾動時所觸發的事件。在頁面上,滾輪事件可以用來實現一些交互效果,如上下滾動網頁內容、縮放圖片等。
在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
微信掃一掃
支付寶掃一掃