jquery 实现返回顶部功能

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);

    });

};

相关文章
相关标签/搜索