css实现快速回到顶部效果
来源:V
发布时间:2020-05-20 09:57:53
阅读量:1803
背景:
现在的网站基本上都是长页面,多的有四五屏,少的话也有两三屏,页面太长有的时候为了提升用户体验,会在页面右边出现一个回到顶部的按钮,这样能快速回到顶部,以免在滑动页面出现视觉屏幕,回到顶部一般有四种方式。
1、通过锚链接回到顶部,需要将body加入一个名为top的标记
1 | <a href= "#top" target= "_self" >回到顶部</a>
|
2、通过JavaScript的scroll回到顶部,控制水平和垂直方向
1 | <a href= "javascript:scroll(0,0)" >JavaScript回到顶部<s/a>
|
3、通过JavaScript控制,缓慢向上滑动,不过不够平滑
1 | <a onclick= "goScrollTop()" >JavaScript缓慢向上滑动</a>
|
1 2 3 4 5 6 7 8 9 10 11 | function goScrollTop() {
//把内容滚动指定的像素数(第一个参数是向右滚动的像素数,第二个参数是向下滚动的像素数)
//向上是负数,向下是正数
window.scrollBy( 0 , -100 );
//延时递归调用,模拟滚动向上效果
scrolldelay = setTimeout( 'goScrollTop()' , 100 );
//获取scrollTop值,声明了DTD的标准网页取document.documentElement.scrollTop,否则取document.body.scrollTop;因为二者只有一个会生效,另一个就恒为 0 ,所以取和值可以得到网页的真正的scrollTop值
var sTop = document.documentElement.scrollTop + document.body.scrollTop;
//判断当页面到达顶部,取消延时代码(否则页面滚动到顶部会无法再向下正常浏览页面)
if (sTop == 0 ) clearTimeout(scrolldelay);
}
|
4、当滚动条滚动到一定位置的时候显示,滚动条向上回滚的时候隐藏向上的回到顶部按钮,这种方式是最常用的方式
1 2 3 | <div class= "goTop" >
<span>Go</span>
</div>
|
jQuery代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function goTop(min_height) {
$( ".goTop" ).click(
function () {
$( 'html,body' ).animate({
scrollTop: 0
}, 700);
});
min_height=min_height?min_height:400;
$(window).scroll( function () {
var s = $(window).scrollTop();
if (s > min_height) {
$( ".goTop" ).fadeIn(100);
} else {
$( ".goTop" ).fadeOut(200);
}
});
}
$( function () {
goTop();
});
|
css代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | .goTop {
height : 40px ;
width : 40px ;
background : red ;
border-radius: 50px ;
position : fixed ;
top : 90% ;
right : 3% ;
display : none ;
}
.goTop span {
color : #fff ;
position : absolute ;
top : 12px ;
left : 8px ;
}
|