如何控制js导航滚动的速度
How to control the speed of js nav scrolling
嘿,伙计们,我发现这个非常有用的java脚本粘边导航,它工作得很好!我不太了解js,我只是想知道是否有办法减慢滚动速度?
function redrawDotNav(){
var topNavHeight = 50;
var numDivs = $('section').length;
$('#dotNav li a').removeClass('active').parent('li').removeClass('active');
$('section').each(function(i,item){
var ele = $(item), nextTop;
console.log(ele.next().html());
if (typeof ele.next().offset() != "undefined") {
nextTop = ele.next().offset().top;
}
else {
nextTop = $(document).height();
}
if (ele.offset() !== null) {
thisTop = ele.offset().top - ((nextTop - ele.offset().top) / numDivs);
}
else {
thisTop = 0;
}
var docTop = $(document).scrollTop()+topNavHeight;
if(docTop >= thisTop && (docTop < nextTop)){
$('#dotNav li').eq(i).addClass('active');
}
});
}
$('#dotNav li').click(function(){
var id = $(this).find('a').attr("href"),
posi,
ele,
padding = $('.navbar-fixed-top').height();
ele = $(id);
posi = ($(ele).offset()||0).top - padding;
$('html, body').animate({scrollTop:posi}, 'slow');
return false;
});
演示在JavaScript代码中这样做:
$('html, body').animate({scrollTop:posi}, 'slow');
你可以把'slow'改成'fast',看看有什么不同。
点击这里了解animate
函数的更多信息
可以通过持续时间精确控制animate
上的速度。下面是函数签名:
animate(params, [duration], [easing], [callback])
字符串fast
和slow
分别表示200ms和600ms的持续时间。默认速度为400ms。您可以通过将nnn替换为您想要的精确毫秒速度来调整您的速度。
$('html, body').animate({scrollTop:posi}, nnn);
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 如何在定位导航后向下滚动页面
- fullpage.js和物化.js;使用实体侧导航禁用鼠标滚动
- 如何创建可以向下滚动的导航
- 缩小并更改滚动时的背景导航栏
- 当用户已经向下滚动页面时,我如何导航到锚标记
- 具有子菜单和平滑滚动的粘性导航
- 如何让左侧导航跟随用户向下滚动页面
- JQuery 滚动列表框模仿键盘导航
- 导航栏在向下滚动时会更改背景,但在向上滚动时不会更改回来
- 在离子滚动时隐藏离子导航栏
- 导航到新页面不会滚动到顶部
- 猫头鹰旋转木马需要滚动效果的导航悬停
- AngularJS指令:将jQuery导航滚动变成指令
- 使用主导航滚动网站问题
- 导航滚动到子链接时需要使用相同的颜色
- 一个页面的网站hashbang导航滚动
- 导航滚动与javascript
- 如何控制js导航滚动的速度
- 离开画布的导航滚动问题