Skip to content

Instantly share code, notes, and snippets.

@beiweiqiang
Created July 13, 2017 14:35
Show Gist options
  • Save beiweiqiang/a2014b64e5606904ec341e5d953f9ead to your computer and use it in GitHub Desktop.
Save beiweiqiang/a2014b64e5606904ec341e5d953f9ead to your computer and use it in GitHub Desktop.
平滑滚动
; (function (window, $) {
'use strict';
var $scrollTo;
var timer = null;
var scrollTop = 0;
window.onscroll = function () {
scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
};
$scrollTo = function (target) {
var destOffsetTop = 0;
if (typeof target == 'string') {
destOffsetTop = target;
} else if (typeof target.offset == 'function') {
var destOffsetTopObj = target.offset();
destOffsetTop = destOffsetTopObj.top;
} else if (target.top != undefined) {
destOffsetTop = target.top;
} else {
throw 'param target error!';
}
clearInterval(timer);
timer = setInterval(function () {
var now = scrollTop;
var speed = (destOffsetTop - now) / 10;
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
if (scrollTop == destOffsetTop) {
clearInterval(timer);
}
document.documentElement.scrollTop = scrollTop + speed;
document.body.scrollTop = scrollTop + speed;
}, 30);
};
if ($ != undefined) {
$.fn.scrollTo = $.scrollTo = $scrollTo;
}
window.$scrollTo = $scrollTo; //支持$scrollTo('300px');纯js用法
})(window, window.jQuery || window.Zepto || undefined);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment