动态向下箭头,实现整屏翻页

一、实现效果
动态向下箭头,实现整屏翻页_第1张图片
可通过单击图标或向下滚动鼠标进行整屏滚动

二、图标的实现过程
1.最开始我使用的方法是使用图片,但想要找到刚好适合的图片比较难
2.之后我使用的是bootstrap里的图标,不过效果也不尽人意

<span style="color: rgb(192, 192, 192);font-size: 80px;" class="glyphicon glyphicon-chevron-down">span>

bootstrap的向下箭头图标
3.没办法,只好学习新技术了——html5 canvas。

 
"down"> "downCanvas" width="50" height="50">你的浏览器不支持canvas,请下载更新版本的浏览器
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;
}

注意:应该把动画放在上,而不是

上,以免影响下面的样式

三、整屏翻页效果的实现

我只在第一屏设置此效果,各位对号入座~~

 滚动鼠标:
    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, 例如滚动时的抖动问题,哈哈!

你可能感兴趣的:(css)