左上角的徽标滚动到屏幕顶部

时间:2014-11-18 02:11:20

标签: javascript jquery html

我正在尝试在导航栏的左上角添加一些文字。点击后,我希望页面自动滚动回到页面顶部

HTML:

  <nav class="navbar navbar-default navbar-fixed-top">
    <a id="logo" href=".navbar">LOGO HERE</a>
    <ul id="nav_pills" class="nav nav-pills" role="tablist">
      <li role="presentation">
        <a id="test" href="#services">Services</a>
      </li>
      <li role="presentation">
        <a href="#about">About</a>
      </li>
      <li role="presentation">
        <a href="#portfolio">Portfolio</a>
      </li>
      <li role="presentation">
        <a href="#team">Team</a>
      </li>
      <li role="presentation">
        <a href="#contact">Contact</a>
      </li>
    </ul>
  </nav>

我的JS到目前为止:

$(document).ready(function() {
    // easing scroll bluhd
    var hrefObjects = $("li a");
    hrefObjects.push($(".welcome-btn"));
    hrefObjects.push($("#logo"));
    hrefObjects.each(function() {
        $(this).on("click", function(e) {
            var mode = "easeInOutQuart";
            e.preventDefault();
            $('html, body').animate({
                scrollTop: $(this.hash).offset().top
            }, 750, mode);
        });
    })
});

我目前收到此错误,我不知道如何解决此问题。

Uncaught TypeError: Cannot read property 'top' of undefined

2 个答案:

答案 0 :(得分:1)

.push()不是有效的jQuery函数。 hrefObjects是一个jQuery对象,而不是一个数组。

简化为:

$(document).ready(function() {
    $("li a, .welcome-btn, #logo").on("click", null, function(e) {
        $('html, body').animate({ scrollTop: 0 }, 750, "easeInOutQuart");
        return false; // prevents default
    });
});

答案 1 :(得分:1)

使用jQuery animate()方法,这很容易做到。这是一个如何做到这一点的例子 - 非常简单。

&#13;
&#13;
$(document).ready(function(){
	
	//Click event to scroll to top
	$('.scrollToTop').click(function(){
		$('html, body').animate({scrollTop : 0},800);
		return false;
	});
	
});
&#13;
.scrollToTop{
	font-weight: bold;
	text-decoration: none;
	position:fixed;
	top:0;
	left:40px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<a href="#" class="scrollToTop">Company Name</a>

Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>Bla<br>
&#13;
&#13;
&#13;

希望这会有所帮助,如果我可以帮助你,请在下面发表评论。