当div出现在视口中时滚动到顶部

时间:2013-10-17 15:20:39

标签: jquery html css

很难找到这项技术的在线资源。

在我的JSFiddle中,用户可以使用'next'或'prev'来循环显示全屏div。用户还可以滚动以转到下一个或上一个div。

我的问题是,如果用户滚动,那么他们很难将全屏div与视口对齐,所以我更喜欢当用户在屏幕上有大部分div时它将自动滚动以对齐顶部div与视口。

在我的JSFiddle中我添加了一个脚本,它检测一个元素是否在视口中,哪个有效,但我无法弄清楚如何添加一个if语句,当div进入视口时,使用.scrollTo将div与屏幕顶部对齐。

1 个答案:

答案 0 :(得分:0)

您可以使用jQuery inview

然后运行scrollTo:

$(elm).bind('inview', function(event, visible) {
  if (visible) {
    scrollTo();
  } else {
  }
});

也可能希望在调整窗口大小时运行它:

var timerDelay = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout (timer);
    timer = setTimeout(callback, ms);
  };
})();



$(window).resize(function() {
   timerDelay(function(){

   //run inview function

   }, 500);
 });