滾輪滾動事件


滾輪滾動事件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			#box1{
				width: 100px;
				height: 100px;
				background-color: skyblue;
			}
		</style>
		<script type="text/javascript">
			window.onload=function(){
				// 當鼠標滾輪向下滾動時,box1變長
				// 當滾輪向上滾動時,box1變短
				
				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.datail來獲取滾動
				   // 向上滾-3 向下滾3
				   
				   // alert(event.detail);
				   
				   
				   // 判斷鼠標滾輪滾動的方向
				   if(event.wheelDelta > 0 || event.detail <0){
					   // alert("向上")
					   box1.style.height=box1.clientHeight-10+"px";
				   }else{
					    box1.style.height=box1.clientHeight+10+"px";
				   }
				   
				   /*
				   當滾輪滾動時,如果瀏覽器有滾動條,滾動條會隨之滾動
				   這是瀏覽起的默認行為  如果不希望發生  可以取消
				   */
				  return false;
				  
				  // 使用addEventListener()方法綁定響應函數,取消默認行為時不能使用return return false;
				  // 需要使用event來取笑默認行為 event.preventDefault();
				  // IE8不支持event.preventDefault();
				  event.preventDefault&&event.preventDefault();
				}
				
				bind(box1,"DOMMouseScroll",function(){
					alert(1);
				})
			}
			function bind(obj,eventStr,callback){
				if(obj.addEventListener){
					// 大部分瀏覽器兼容的方式
					obj.addEventListener(eventStr,callback,false);
				}else{
					/*
					this是誰由調用方式決定的
					callbank.call(obj)
					*/
					// IE8及以下
					obj.attachEvent("on"+eventStr,function(){
						// 在匿名函數中調用回掉函數
						callback.call(obj);
					});
				}
			}
			
		</script>
	</head>
	<body>
		<div id="box1"></div>
	</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM