如何将平滑滚动添加到div

时间:2014-07-07 12:41:53

标签: javascript jquery html

我知道已经有了答案,但我搜索过,没有人在工作,我不知道为什么。

所以我想要的是用标签

顺利滚动到div

我想要的是this

所以我拿了js代码但是在我身上根本没有工作,滚动就完全失去了效果。

这是我的代码: w ^ HTML

<div class="col-lg-3 col-md-3 col-sm-3" id="some">
        <a href="#info" id="normal">
            <img src="imgs/product/normal.png" class="img-responsive">
        </a>
</div>

<!-- OTHER CONTENT -->

<div id="info">     
                Go here
</div>

和JS:

$("#some a[href^='#']").on('click', function(e) {
  // prevent default anchor click behavior
  e.preventDefault();
  // animate
  $('html, body').animate({
    scrollTop: $(this.hash).offset().top
  }, 300, function() {
    // when done, add hash to url
    // (default click behaviour)
    window.location.hash = this.hash;
  });
});

3 个答案:

答案 0 :(得分:1)

我不知道你是否复制了&gt;粘贴您的代码,但您在ID:

之前错过了引用

<div class="col-lg-3 col-md-3 col-sm-3 id="some">

这可能是一个解决方案,因为它不起作用,因为$('#some a')当时不存在。

答案 1 :(得分:0)

那是在你有一个链接之前。 BTW看看你的控制台,有没有错误信息?

将您的代码更改为:

$("#some a").on('click', function(e) {

   // prevent default anchor click behavior
   e.preventDefault();

   e.stopImmediatePropagation();
   e.stopPropagation();
   var id = $(this).attr("href");
   // animate
   $('html, body').animate({
       scrollTop: $(id).offset().top
     }, 300, function(){

       // when done, add hash to url
       // (default click behaviour)
       window.location.hash = this.hash;
     });

});

答案 2 :(得分:0)

只需使用以下代码段即可实现您在帖子中提到的内容。

$(function() {
  $('a').bind('click',function(event){
     var $anchor = $(this);
     $('html, body').stop().animate({
        scrollTop: $($anchor.attr('href')).offset().top
     }, 1000);       
      event.preventDefault();
   });
});

check DEMO