我正在使用 Bootstrap 3.0 并使用 scrollspy 开发一个项目,scrollspy 运行良好,但有一些注意事项:
1-如何在页面滚动或单击导航栏中的链接之一以将我带到我指向的位置时添加时间延迟?
2- scrollspy 位置不正确(例如,当我滚动到特定位置时,我总是在它上方,相差约 60 像素)。
谢谢
我正在使用 Bootstrap 3.0 并使用 scrollspy 开发一个项目,scrollspy 运行良好,但有一些注意事项:
1-如何在页面滚动或单击导航栏中的链接之一以将我带到我指向的位置时添加时间延迟?
2- scrollspy 位置不正确(例如,当我滚动到特定位置时,我总是在它上方,相差约 60 像素)。
谢谢
对于时间延迟,当我很了解您时,请尝试以下操作:
var tmp = $.fn.scrollspy.Constructor.prototype.process;
$.fn.scrollspy.Constructor.prototype.process = function () {
console.log('ff wachten')
var that = this;
setTimeout(function(){tmp.call(that)},5000);
}
在包含 scrollspy.js 之后添加它。但是你也必须在它自己喜欢的点击事件上添加一个延迟:(来自:http ://www.jquery4u.com/jquery-functions/delay-sleep-pause-wait/ )
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
$('.navbar-nav a').click(function(){sleep(5000); console.log('slept'); return true;});
现在你有一个双重延迟,所以做一个组合:
var tmp = $.fn.scrollspy.Constructor.prototype.process;
var delay = 5000 //ms
$.fn.scrollspy.Constructor.prototype.process = function () {
console.log('ff wachten')
var that = this;
setTimeout(function(){tmp.call(that)},delay);
delay=5000;
}
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
2
选项可以通过数据属性或 JavaScript 传递。对于数据属性,将选项名称附加到 data-,如 data-offset=""。
名称 类型 默认描述 偏移数 10 计算滚动位置时从顶部偏移的像素。