我有一个非常基本的HTML网站,其中包含一些锚标记。单击时,每个锚点都会引导到另一个锚点,使用此功能进行一些平滑滚动:
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault(); var target = this.hash; var $target = $(target);
$('html, body').stop().animate(
{
'scrollTop': $target.offset().top - 300
},
900,
'swing',
function () {
window.location.hash = target - 300 ;
}
);
});
});
锚点之间的差距将非常大,我试图找出一种方法来获得变化的速度 - 当点击一个锚点,开始变慢,而不是加速,当接近下一个锚点变慢在它停止之前再次下降。
无法在其上找到任何JQuery文档,有人有建议吗?
答案 0 :(得分:0)
我相信您会想要使用缓动函数来处理这个问题。默认情况下,jQuery只处理swing
缓动,您已将其传递到animate
函数中。但是,您可以使用插件包含其他缓动功能。
George Smith有一个可供帮助的轻量级js插件,名为jquery.easing.1.3.js。我认为easeInOutQuart
听起来与你正在寻找的东西最接近
答案 1 :(得分:0)