/**
* Created by raid on 2016/9/25.
*/
function BackTop(el, opts) {
this.opts = $.extend({}, BackTop.DEFAULTS, opts);
this.$el = $(el);
if (this.opts.mode == 'move') {
this.$el.on('click', $.proxy(this._move, this));
} else {
this.$el.on('click', $.proxy(this._go, this));
}
this.$elem = $('html, body');
this._checkPosition();
$(window).on('scroll', $.proxy(this._checkPosition, this));
}
BackTop.DEFAULTS = {
mode : 'move',
pos : $(window).height(),
dest : 0,
speed : 800,
};
BackTop.prototype._move = function () {
var opts = this.opts,
dest = opts.dest;
if ($(window).scrollTop() != dest && !this.$elem.is(":animated")) {
this.$elem.animate({
scrollTop: dest
}, opts.speed);
}
};
BackTop.prototype._go = function () {
var dest = this.opts.dest;
if ($(window).scrollTop() != dest) {
this.$elem.scrollTop(dest);
}
};
BackTop.prototype._checkPosition = function () {
var $el = this.$el;
if ($(window).scrollTop() < this.opts.pos) {
$el.fadeOut();
} else {
$el.fadeIn();
}
};
$.fn.extend({
backtop : function (opts) {
return this.each(function () {
new BackTop(this, opts)
});
}
});
js返回顶部的封装
最新推荐文章于 2022-09-06 18:52:26 发布