切屏动画原理
以四图全屏切屏为例,首先需要制作一个大的div宽高分别为100%,即全屏显示。然后制作4个子元素,依次放入4张图片,并且设置图片的宽高同父级的一样。如下图:

将父级元素整体向上移动一屏之后,将显示出第2张图片,依次方法显示第3、第4张图片即现实切屏。如下图:

代码如下:
<!DOCTYPE html><html> <head> <title>切屏动画</title> <meta charset="utf-8" /> <style type="text/css"> html,body{ width:100%; height:100%; margin:0px; overflow:hidden; } #mainDiv{ position:relative; left:0px; top:0px; width:100%; height:100%; transition:all 1s ease; } #mainDiv div{ width:100%; height:100%; background-repeat:no-repeat; background-position:center; background-size:cover; } .page1{ background-image:url("/res/htmlclassics/full/images/131.jpg"); } .page2{ background-image:url("/res/htmlclassics/full/images/132.jpg"); } .page3{ background-image:url("/res/htmlclassics/full/images/133.jpg"); } .page4{ background-image:url("/res/htmlclassics/full/images/134.jpg"); } .btn_list{ position:fixed; top:30%; right:50px; } ul{ list-style-type:none; } li{ width:20px; height:20px; margin-top:10px; border-radius:20px; background-color:#3D3D3D; cursor:pointer; } #li0{ background-color:#10508D; } </style> <script type="text/javascript"> var index = 0;//当前显示第几屏。0代表第1屏 window.onload = function(){ //为li添加鼠标点击事件 for(var i=0;i<=3;i++){ document.getElementById("li"+i).onclick = function(){ index = this.id.replace("li","");//通过id获取当前显示第几屏 pageAnimate(); } } //窗口大小重置 window.onresize = function(){ //暂时去掉mainDiv的过渡动画 document.getElementById("mainDiv").style.transition = "all 0s ease"; pageAnimate();//切屏 //重新加上mainDiv的过渡动画 window.setTimeout(function(){ document.getElementById("mainDiv").style.transition = "all 1s ease"; },10); } } //设置显示哪一屏,并设置右浮动按扭显示样式 function pageAnimate(){ var offsetHeight = document.body.offsetHeight; document.getElementById("mainDiv").style.top = -(offsetHeight * index)+"px"; //设置右则浮动按扭的显示样式 for(var i=0;i<=3;i++){ document.getElementById("li"+i).style.backgroundColor = "#3D3D3D"; } document.getElementById("li"+index).style.backgroundColor = "#10508D"; } </script> </head> <body> <div id="mainDiv"> <div class="page1"></div> <div class="page2"></div> <div class="page3"></div> <div class="page4"></div> </div> <div class="btn_list"> <ul> <li id="li0"></li> <li id="li1"></li> <li id="li2"></li> <li id="li3"></li> </ul> </div> </body></html>