全屏滚动的实现

什么是全屏滚动?

所谓全屏滚动,就是网页的一个模块占据一屏的宽高,多个模块上下拼接在一起,当滑动鼠标滚轮,或点击导航按钮时,可以平滑到对应的页面

全屏滚动实现的主要思想:

响应鼠标事件,页面通过CSS的动画效果,进行移动。

HTML:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <style>
	  #main{
		overflow-x:hidden;overflow-y:hidden;width:100%;position:absolute;
	  }
  </style>
 </head>
 <body>
 <div id="wrap">  
	<div id="main">  
		<div id="page1" class="page" style="background-color:red"></div>  
		<div id="page2" class="page" style="background-color:blue"></div>  
		<div id="page3" class="page" style="background-color:yellow"></div>  
		<div id="page4" class="page" style="background-color:green"></div>  
	</div>      
</div>  
<script src="jquery.min.js"></script>
<script src="screen.scroll.js"></script>
 <script type="text/javascript">
	(function(){
		var navHeight = $(window).height();
		$(".page").height(navHeight);
	})();
 </script>
 </body>
 
</html>

 

JS

 

var page_index = 0;
var page_id = new Array();
page_id[0] = "page1"; 
page_id[1] = "page2";
page_id[2] = "page3";
page_id[3] = "page4";
var screen_height = $(window).height();
var doScroll = true;
var speed = 1000;
(function(){
	var oDiv = document.getElementById('main');

	function onMouseWheel(ev) {/*当鼠标滚轮事件发生时,执行一些操作*/
		var ev = ev || window.event;
		var down = true; // 定义一个标志,当滚轮向下滚时,执行一些操作
			down = ev.wheelDelta?ev.wheelDelta<0:ev.detail>0;
		if(doScroll){
			if(down){
			if(page_index!=3){
				doScroll = false;
				page_index++;
				$("#main").animate({top:-page_index*screen_height},speed,function() {
                doScroll = true;
            });//当响应向下滚动事件的时候,将doScroll设置成false,控制在这次响应过程中,不再响应其他滚轮事件,当这次事件执行结束后(1000ms后),再讲doScroll恢复成true,准备响应下次滚动。
			}
			}else{
				if(page_index!=0){
					doScroll = false;
					page_index--;
					$("#main").animate({top:-page_index*screen_height},speed,function() {
                doScroll = true;
            });
				}
			}
			if(ev.preventDefault){/*FF 和 Chrome*/
				ev.preventDefault();// 阻止默认事件
			}
		}
		
		return false;
	}
	addEvent(oDiv,'mousewheel',onMouseWheel);
	addEvent(oDiv,'DOMMouseScroll',onMouseWheel);

})();
function addEvent(obj,xEvent,fn) {
	if(obj.attachEvent){
		obj.attachEvent('on'+xEvent,fn);
	}else{
		obj.addEventListener(xEvent,fn,false);
	}
}

记得引用JQuery

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值