JS基礎_滾輪的事件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#box1{
width: 100px;
height: 100px;
background-color: red;
}
</style>
<script type="text/javascript">
window.onload = function(){
//獲取id為box1的div
var box1 = document.getElementById("box1");
//為box1繫結一個滑鼠滾輪滾動的事件
/*
* onmousewheel滑鼠滾輪滾動的事件,會在滾輪滾動時觸發,
* 但是火狐不支援該屬性
*
* 在火狐中需要使用 DOMMouseScroll 來繫結滾動事件
* 注意該事件需要通過addEventListener()函式來繫結
*/
box1.onmousewheel = function(event){
event = event || window.event;
//event.wheelDelta 可以獲取滑鼠滾輪滾動的方向
//向上滾 120 向下滾 -120
//wheelDelta這個值我們不看大小,只看正負
//alert(event.wheelDelta);
//wheelDelta這個屬性火狐中不支援
//在火狐中使用event.detail來獲取滾動的方向
//向上滾 -3 向下滾 3
//alert(event.detail);
/*
* 當滑鼠滾輪向下滾動時,box1變長
* 當滾輪向上滾動時,box1變短
*/
//判斷滑鼠滾輪滾動的方向
if(event.wheelDelta > 0 || event.detail < 0){
//向上滾,box1變短
box1.style.height = box1.clientHeight - 10 + "px";
}else{
//向下滾,box1變長
box1.style.height = box1.clientHeight + 10 + "px";
}
/*
* 使用addEventListener()方法繫結響應函式,取消預設行為時不能使用return false
* 需要使用event來取消預設行為event.preventDefault();
* 但是IE8不支援event.preventDefault();這個玩意,如果直接呼叫會報錯
*/
event.preventDefault && event.preventDefault();
/*
* 當滾輪滾動時,如果瀏覽器有滾動條,滾動條會隨之滾動,
* 這是瀏覽器的預設行為,如果不希望發生,則可以取消預設行為
*/
return false;
};
//為火狐繫結滾輪事件
bind(box1,"DOMMouseScroll",box1.onmousewheel);
};
function bind(obj , eventStr , callback){
if(obj.addEventListener){
//大部分瀏覽器相容的方式
obj.addEventListener(eventStr , callback , false);
}else{
/*
* this是誰由呼叫方式決定
* callback.call(obj)
*/
//IE8及以下
obj.attachEvent("on"+eventStr , function(){
//在匿名函式中呼叫回撥函式
callback.call(obj);
});
}
}
</script>
</head>
<body style="height: 2000px;">
<div id="box1"></div>
</body>
</html>
相關文章
- JS基礎 ---事件JS事件
- Javascript滑鼠滾輪事件相容寫法JavaScript事件
- 理解 Node.js 的事件輪詢Node.js事件
- 這就是Js的事件輪詢啦JS事件
- 禁用input輸入框的滑鼠滾輪事件詳解事件
- 前端基礎之原生js事件繫結案例前端JS事件
- js 滾輪控制圖片縮放大小和拖動JS
- JS基礎入門篇(二十)—事件物件以及案例(二)JS事件物件
- 前端基礎功能,原生js實現輪播圖例項教程前端JS
- js、jQuery實現文字上下無縫輪播、滾動效果JSjQuery
- 【JS基礎】DOM,BOM,事件繫結,ajax,跨域,儲存JS事件跨域
- js基礎JS
- js 基礎JS
- Vue.js的基礎Vue.js
- 【web前端基礎 | JS基礎】物件Web前端JS物件
- JS·基礎(一)JS
- js基礎文件JS
- 造了個滾輪控制元件輪子控制元件
- JavaScript基礎之事件eventJavaScript事件
- javascript事件基礎知識JavaScript事件
- C#基礎教程:事件C#事件
- JS基礎知識(覆蓋JS基礎面試題)JS面試題
- 【JavaScript】JS的堅實基礎JavaScriptJS
- 用Python的PyAutoGUI庫控制滑鼠滾輪PythonGUI
- Nuxt.js基礎UXJS
- JS01_基礎JS
- js基礎知識JS
- html css 基礎 jsHTMLCSSJS
- JS基礎面試JS面試
- js基礎複習JS
- css實現滾動輪播CSS
- 【重溫基礎】20.事件事件
- node基礎(1)---eventloop事件環OOP事件
- 前端基礎 — Web事件總結前端Web事件
- JQuery4:滑鼠事件和滾動事件jQuery事件
- 關於node.js的基礎Node.js
- jQuery基礎與js的區別jQueryJS
- 虛擬滾動的輪子是如何造成的?