用鼠标慢慢滚动到页面上的下一个锚
Javascript scroll to next anchor on page with mouse slowly
我有一个单页网站与多个锚。我引用这个小提琴示例http://jsfiddle.net/kamikazefish/t6LLybx8/201/,用于在使用鼠标滚轮时将页面推进到下一个锚点。有办法我可以控制速度,如果有人可以帮助将不胜感激。请记住,我是一个非常新的代码,如果它是写出来,不只是告诉我添加一个功能或其他东西,我会喜欢它。这是Javascript。
(function() {
var delay = false;
$(document).on('mousewheel DOMMouseScroll', function(event) {
event.preventDefault();
if(delay) return;
delay = true;
setTimeout(function(){delay = false}, 200)
var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail;
var a= document.getElementsByTagName('a');
if(wd < 0) {
for(var i = 0 ; i < a.length ; i++) {
var t = a[i].getClientRects()[0].top;
if(t >= 40) break;
}
}
else {
for(var i = a.length-1 ; i >= 0 ; i--) {
var t = a[i].getClientRects()[0].top;
if(t < -20) break;
}
}
$('html,body').animate ({
scrollTop: a[i].offsetTop
});
});
})();
你可以添加你想要动画运行的时间,像这样:
$('html,body').animate({
scrollTop: a[i].offsetTop
}, 1000);
其中1000
为ms单位的时间,如果你想让它更慢,增加这个数字
相关文章:
- 滚动到容器中的下一个元素-几乎到了
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- AngularJS&JSON-从Previous&下一个对象
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 来自文档或下一个静态父级的事件委派
- angularjs移除焦点上的活动类并添加到下一个项目
- 禁用旋转木马中的下一个按钮和上一个按钮
- 当按下一个键时,请多次按下不同的键
- jQuery鼠标滚动到下一个id
- 如何检测鼠标的下一个悬停
- 将鼠标悬停在元素上动画化下一个元素-如何删除内联JS
- 在鼠标滚轮上自动滚动到下一个锚点
- 用鼠标慢慢滚动到页面上的下一个锚
- 模拟一个鼠标下,点击,鼠标上的序列在Tampermonkey
- 停止下一个鼠标悬停事件的触发,直到内部函数完成
- 单击鼠标,通过将类名从一个元素传递到下一个元素来更改图像
- 将更改、鼠标向上、鼠标向下、鼠标退出、向上键和向下键组合到一个功能中
- 模拟一个实际的右键,而不仅仅是鼠标向下或鼠标向上