纯js实现PC端H5上下翻页

个人blog,欢迎关注加收藏


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			
			html,body{
				height:100%;
			}
			body,ul,li,a,p,div{padding:0px; margin:0px; font-size:14px;}
			#wrap{
				overflow: hidden;
				width:100%;
			}
			#main{
				height:2944px;
				top:0;
				position: relative;
			}
			.page{
				width:100%;
				margin:0;
			}
			#page1{
				background:#E4E6CE;
			}
			#page2{
				background:#6CE26C;
			}
			#page3{
				background:#BF4938;
			}
			#page4{
				background:#2932E1;
			}
			</style>
			<script src="js/jquery-1.8.3.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="wrap">
			<div id="main">
				<div id="page1" class="page"></div>
				<div id="page2" class="page"></div>
				<div id="page3" class="page"></div>
				<div id="page4" class="page"></div>
			</div>
		</div>
		<script type="text/javascript">
			var wrap = document.getElementById("wrap");
			var main = document.getElementById("main");
			var hei = document.body.clientHeight;
			wrap.style.height = hei + "px";
			var obj = document.getElementsByTagName("div");
			for(var i=0;i<obj.length;i++){
				if(obj[i].className == 'page'){
					 obj[i].style.height = hei + "px";
				}
			}
			//如果不加时间控制,滚动会过度灵敏,一次翻好几屏
			var startTime = 0, //翻屏起始时间  
				endTime = 0,  
				now = 0;     
			//浏览器兼容      
			if ((navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)){   
				document.addEventListener("DOMMouseScroll",scrollFun,false);        
			}  
			else if (document.addEventListener) {  
				document.addEventListener("mousewheel",scrollFun,false);  
			}  
			else if (document.attachEvent) {  
				document.attachEvent("onmousewheel",scrollFun);   
			}  
			else{  
				document.onmousewheel = scrollFun;  
			}  

			//滚动事件处理函数
			function scrollFun(event){
				startTime = new Date().getTime();  
				var delta = event.detail || (-event.wheelDelta);  
				//mousewheel事件中的 “event.wheelDelta” 属性值:返回的如果是正值说明滚轮是向上滚动
				//DOMMouseScroll事件中的 “event.detail” 属性值:返回的如果是负值说明滚轮是向上滚动
				if ((endTime - startTime) < -1000){
					if(delta>0 && parseInt(main.offsetTop) > -(hei*3)){
						//向下滚动
						now = now - hei;
						toPage(now);
				} 
					if(delta<0 && parseInt(main.offsetTop) < 0){
						//向上滚动
							now = now + hei;
							toPage(now);
					}
					 endTime = new Date().getTime();  
				}
				   else{  
						event.preventDefault();    
					}    
			}
			 function toPage(now){        
				 $("#main").animate({top:(now+'px')},1000);     //jquery实现动画效果
				 //setTimeout("main.style.top = now + 'px'",1000);     javascript 实现动画效果
			}   
		</script>
	</body>
	
</html>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值