一、实现效果
可通过单击图标或向下滚动鼠标进行整屏滚动
二、图标的实现过程
1.最开始我使用的方法是使用图片,但想要找到刚好适合的图片比较难
2.之后我使用的是bootstrap里的图标,不过效果也不尽人意
<span style="color: rgb(192, 192, 192);font-size: 80px;" class="glyphicon glyphicon-chevron-down"></span>
3.没办法,只好学习新技术了——html5 canvas。
<div id="down">
<canvas id="downCanvas" width="50" height="50">你的浏览器不支持canvas,请下载更新版本的浏览器
</canvas>
</div>
function drawDown() {
var c = document.getElementById("downCanvas"),
cxt = c.getContext("2d");
cxt.beginPath();
cxt.moveTo(5, 20);
cxt.lineTo(25, 45);
cxt.lineTo(45, 20);
cxt.lineWidth = 5;
cxt.strokeStyle = "gray";
cxt.lineCap = 'round';
cxt.lineJoin = "round";
cxt.stroke();
cxt.moveTo(5, 5);
cxt.lineTo(25, 30);
cxt.lineTo(45, 5);
cxt.lineWidth = 5;
cxt.strokeStyle = "gray";
cxt.lineCap = 'round';
cxt.lineJoin = "round";
cxt.stroke();
}
drawDown()
三、动态效果的实现
@-moz-keyframes myMove {
0% {padding-top:30px;}
100% {padding-top:50px;}
}
@-webkit-keyframes myMove {
0% {padding-top:30px;}
100% {padding-top:50px;}
}
@-o-keyframes myMove {
0% {padding-top:30px;}
100% {padding-top:50px;}
}
@keyframes myMove {
0% {padding-top:30px;}
100% {padding-top:50px;}
}
#down {
text-align: center;
height: 150px;
-moz-animation: myMove 1s linear infinite alternate;
-webkit-animation: myMove 1s linear infinite alternate;
-o-animation: myMove 1s linear infinite alternate;
animation: myMove 1s linear infinite alternate;
}
注意:应该把动画放在<span>
上,而不是<div>
上,以免影响下面的样式
三、整屏翻页效果的实现
我只在第一屏设置此效果,各位对号入座~~
滚动鼠标:
var absHeight = $(window).height();
var scrollTop = 0;
$(window).scroll(function () {
var st = $(window).scrollTop();
if (st > 0) {
$("#backToTop").css("display", "block");
} else {
$("#backToTop").css("display", "none");
}
//下滚且在第一屏
if (st > scrollTop && scrollTop === 0) {
$("html,body").animate({scrollTop : scrollTop + absHeight}, 1000);
}
//上滚且在第二屏
if (st < scrollTop && scrollTop === absHeight) {
$("html,body").animate({scrollTop : scrollTop - absHeight}, 1000);
}
//关键代码:判断鼠标中键的滚动方向
scrollTop = st;
});
点击图标:
$("#backToTop").click(function () {
$("html,body").animate({scrollTop : absHeight}, 1000);
});
注意:
1.$(document).height():整个网页的高度
$(window).height():浏览器可视窗口的高度
$(window).scrollTop():随着滚动条下拉被隐藏的部分的高度
当滚动条拉到最底时,有:
$(document).height()=$(window).height()+$(window).scrollTop();
2.$("html,body"):$("html")兼容IE和Firefox,$("body")兼容chrome和opera(自己试出来的~~)
简单的实现了这个功能,不过还有很多small bug, 例如滚动时的抖动问题,哈哈!