如何添加时间延迟并修复Bootstrap 3.0 scrollspy的位置?

时间:2013-09-12 19:14:02

标签: twitter-bootstrap twitter-bootstrap-3

我正在开发一个使用Bootstrap 3.0并使用scrollspy的项目,这个卷轴工作正常,但有一些注意事项:

1-如何在页面滚动或点击导航栏中的某个链接时添加时间延迟,将我带到我指向的位置?

2- scrollspy位置不正确(例如,当我滚动到特定位置时,我总是高于它,差异大约为60px)。

感谢

1 个答案:

答案 0 :(得分:0)

延迟时间,当我理解你的时候,尝试类似的事情:

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要偏移的像素数   在计算滚动位置时最高。