纯js全屏切换效果

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<link rel="stylesheet" href="css/main.css">
		<link rel="stylesheet" href="css/home.css" />
		<style>
			html,body{
				height: 100%;
				margin: 0;
				padding: 0;
			}
			#wrap{
				overflow: hidden;
			}
			#main{
				position: relative;
				top: 0;
				transition: 0.5s;
			}
			.page{
				width: 100%;
			}
			#page1{
				background-color: red;
			}
			#page2{
				background-color: #f90;
			}
			#page3{
				background-color: yellow;
			}
			#page4{
				background-color: green;
			}
			.btnToggle{
				position: fixed;
				bottom: 40px;
				left: 50%;
				transform: rotate(90deg);
				cursor: pointer;
			}
			.btnToggle span{
				font-size: 34px;
				color: #fff;
			}
		</style>
	</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 class="btnToggle"><span>&gt;</span></div>
			</div>
			
		</div>
		
		<script type="text/javascript">
			var wrap = document.getElementById('wrap');
			var main = document.getElementById("main");
			var btnToggle = document.getElementsByClassName('btnToggle')[0];
			var startTime = 0;
			var endTime = 0;
			var now = 0;
			//获取网站可视区域的高,并给最外层的div
			var height = document.body.clientHeight;
			wrap.style.height = height + "px";
			//给里面的每个div都给可视区域的高
			var page = document.getElementsByClassName('page');
			for(var i = 0; i < page.length; i++){
				page[i].style.height = height + "px";
			}
				window.onmousewheel = function(e){
					startTime = new Date().getTime();
					if(endTime - startTime < -600){
						//鼠标向上移动
						if (e.wheelDelta > 0 && parseInt(main.offsetTop) < 0) {
						   now = now + height;
						   setTimeout("main.style.top = now +'px'",20);
						   //鼠标向下移动
						} else if(e.wheelDelta < 0 && parseInt(main.offsetTop) +  (height * 3) > 0){
							now = now - height;
							setTimeout("main.style.top = now +'px'",20);
						}
						endTime = startTime;
					}
				}
				btnToggle.onclick = function(){
					if(parseInt(main.offsetTop) + (height * 3) > 0){
						now = now - height;
						setTimeout("main.style.top = now +'px'",20);
					}else{
						now = 0;
						setTimeout("main.style.top = 0 +'px'",20);
					}
				}
				
				
		</script>
	</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值