1. html 中添加一个返回顶部的按钮,本例中采用了一个绝对定位的div,(position:fixed),背景色给了一定的透明度,并加入一个向上的箭头icon。
2. 绑定window 的scroll事件,即发生scroll事件,则进行按钮的显示隐藏的操作判断。
判断方法是:滚动条垂直高度大于某个值,则显示按钮(show());否则则隐藏按钮(hide());
3. 绑定点击返回顶部按钮的事件,给予一个动画,scroll到顶部(可以以body标签的位置作为参考)
例码如下:
html:
<div class="backToTop" title = "Back to top" style="display:none"><a href="#"><i class="angle up huge icon"></i></a></div>
css:
.backToTop { background:rgba(0,120,255,0.7); position:fixed; bottom:6%; right:7%; }
.backToTop a {display: block;line-height: 55px; height: 55px;}
js:
function goToTop(options){
var opts = {
bottomDistance:60,//距页面下边距离
rightDistance:100,//距页面右边距离
startline:20,//出现回到顶部按钮的滚动条scrollTop距离
duration:200,//回到顶部的速度时间
targetObg:"body"//目标位置
};
var $window=$(window);
var $this = options;
clearTimeout(goToTopTime);
var goToTopTime=setTimeout(function(){
var shouldvisible=( $window.scrollTop() >= opts.startline )? true : false;
if (shouldvisible){
$this.stop().show();
}else{
$this.stop().hide();
}
// $this.css({
// position: ‘fixed‘,
// bottom: opts.bottomDistance,
// right: opts.rightDistance
// });
},30);
$this.click(function(event){
$(‘html,body‘).stop().animate( { scrollTop: $(opts.targetObg).offset().top}, opts.duration);
$this.blur();
event.preventDefault();
event.stopPropagation();
});
};
var backToTop = function(){
var $backToTop = $(".backToTop");
goToTop($backToTop);
$(window).bind(‘scroll resize‘,function(){
goToTop($backToTop);
});
};