jQuery scrolltop首先进入页面底部

时间:2018-04-23 16:03:18

标签: jquery

当我点击锚标签时,滚动条会直接进入页面底部,然后进入所需位置。它应该直接进入元素$(".accordion-title[data-name='" + name + "']")

$(".cast-roles a").click(function(event) {
    var name = $(this).attr("data-name");

    event.preventDefault();

    var scrollval =  $(".accordion-title[data-name='" + name + "']").offset().top - 100;

    $("html,body").animate({
        scrollTop:scrollval},1000);
    });
});

我不知道我哪里出错了。我该如何解决?

1 个答案:

答案 0 :(得分:1)

正如您可以看到它下方的代码段工作正常



$(document).ready(function(){
		$(".cast-roles a").click(function(event) {
      var name = $(this).attr("data-name");

      event.preventDefault();

      var scrollval =  $(".accordion-title[data-name='" + name + "']").offset().top - 100;

      $("html,body").animate({
          scrollTop:scrollval},1000);
    });
});

.accordion-title{
  height : 500px;
  width : 100vw;
  background-color : #000;
  color : #FFF;
  margin-top : 500px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cast-roles">
  <a data-name="redirection">Button</a>
</div>
<div class="accordion-title" data-name="redirection">
  Test
</div>
&#13;
&#13;
&#13;

我刚刚看到一个错误,但我认为你复制然后粘贴了

时忘记了这一行
$(document).ready(function(){

在您的代码中,您关闭了文档就绪函数,但没有在JS代码之上编写它

$(".cast-roles a").click(function(event) {
var name = $(this).attr("data-name");

event.preventDefault();

var scrollval =  $(".accordion-title[data-name='" + name + "']").offset().top - 100;

$("html,body").animate({
    scrollTop:scrollval},1000);
***});***
});

对不起,如果我的英语不好运,祝你好运,希望我帮助你