html5页面上下翻页特效,h5实现垂直上下翻页效果

这两天比较有时间就自己简单的研究了一下现在比较流行的结婚请柬h5的制作方法。

简单的编写了一下代码如下:

html部分

请柬标题

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod

tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo

consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse

cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

请柬标题2

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod

tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo

consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse

cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

请柬标题3

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod

tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,

quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo

consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse

cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non

proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

css样式

*{

margin:0;

padding:0;

}

html,body{

width:100%;

height:100%;

}

.con{

width:100%;

height:100%;

font-size:0.36rem;

position:relative;

}

h2,p{

font-size:0.16rem;

text-align:center;

}

p{

animation:text 1s linear 1;

}

h2{

animation:title 1s linear 1;

}

.fir,.sec,.thir{

width:100%;

height:100%;

/*background:#f00;*/

position:absolute;

}

.fir{

background:url(img/bg.jpg) no-repeat center center;

}

.sec{

background:url(img/bg2.jpg) no-repeat center center;

}

.thir{

background:url(img/bg3.jpg) no-repeat center center;

}

文本动画函数

@keyframes text{

0%{left:-200px;transform: rotate(0deg);}

100%{left:0;right:0;transform: rotate(360deg);}

}

标题动画函数

@keyframes title{

0%{right:-200px;transform: rotate(0deg);}

100%{right:0;transform: rotate(360deg);}

}

移动rem布局函数

// rem布局的代码

new function (){

var _self = this;

_self.width = 750;//设置默认最大宽度

_self.fontSize = 100;//默认字体大小

_self.widthProportion = function(){var p = (document.body&&document.body.clientWidthdocument.getElementsByTagName("html")[0].offsetWidth)/_self.width;return p>1?1:p<0.5?0.5:p;};

_self.changePage = function(){

document.getElementsByTagName("html")[0].setAttribute("style","font-size:"+_self.widthProportion()*_self.fontSize+"px !important");

}

_self.changePage();

window.addEventListener("resize",function(){_self.changePage();},false);

};js部分:

首先判断页面是上滑了还是下滑

var startX, startY;

var result = 0;

document.addEventListener('touchstart',function (ev) {

startX = ev.touches[0].pageX;

startY = ev.touches[0].pageY;

}, false);

document.addEventListener('touchend',function (ev) {

var endX, endY;

endX = ev.changedTouches[0].pageX;

endY = ev.changedTouches[0].pageY;

function GetSlideDirection(startX, startY, endX, endY) {

var dy = startY - endY;

var length =document.getElementsByClassName('page').length;

//var dx = endX - startX;

if(dy>0) {//向上滑动

result =result+1 ;

}else if(dy<0){//向下滑动

result= result-1;

}

将其他的页面隐藏

for(var i =0; i

document.getElementsByClassName('page')[i].style.display="none";

}

判断页码如果大于2就让result=2如果页码小于0就让页码等于0

if(result>2) {

result = 2;

}

if(result<0) {

result = 0;

}

console.log(result);

将当前的页面展示出来

document.getElementsByClassName('page')[result].style.display="block";

}

GetSlideDirection(startX, startY, endX, endY);

})