链接滚动到顶部不起作用

时间:2013-03-03 19:06:03

标签: javascript html

我无法弄清楚为什么这不给我一个动画。它像它应该的那样进入页面顶部,但没有动画。有人可以帮我找出原因吗?

这里是id javascript代码

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript">
$(document).ready(function() {

    $('.scrollup').click(function(){
    $("html, body").animate({ scrollTop: target_top }, 600);
    return false;
    });

});
</script>

</head>

<body id="top">

这是我需要执行滚动的链接。

<td><a href="#top" class="scrollup">Back to Top</a></td>

再次,它会转到页面顶部,但没有动画。

这里编辑的是整个html文件。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700' rel='stylesheet' type='text/css'>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript">
$(document).ready(function() {

    $('.scrollup').click(function(){
    $("html, body").animate({ scrollTop: 0 }, 600);
    return false;
    });

});
</script>

</head>

<body id="top">
<div id="header">
    <div class="container">
      <div id="title">Name</div>
        <div id="tagline">Web Designer + Programmer</div>
      <div id="navbar">
            <table>
                <tbody>
                    <tr>
                        <td><a href="#services">Services</a></td><td><a href="#about">About</a></td><td><a href="#contact">Contact</a></td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</div>

<div id="services">
    <div class="container">
        <div id="servicescontent"></div>
    </div>
</div>

<div id="about">
    <div class="container">
        <div id="aboutcontent"></div>
    </div>
</div>

<div id="services2">
    <div class="container">
        <div id="services2content"></div>
    </div>
</div>

<div id="contact">
    <div class="container">
        <div id="contactinfo"></div>
    </div>
</div>

<div id="footer">
    <div class="container">
        <div id="copyright">Copyright 2013</div>
        <div id="footernavbar">
            <table style="font-size: 16px;">
                <tbody>
                    <tr>
                        <td><a href="#about">About</a></td><td><a href="#services">Services</a></td><td><a href="#top" class="scrollup">Back to Top</a></td>
                    </tr>
                </tbody>
            </table>
        </div></div>
    </div>
</div>

</body>
</html>

2 个答案:

答案 0 :(得分:3)

它不是target_top,它是0

$("html, body").animate({ scrollTop: 0 }, "slow");

这应该可以解决问题。

答案 1 :(得分:2)

@skidadon是正确的,0可能会解决它。但是你也有一些格式不正确的脚本标签。您需要一个单独的标记用于Jquery,另一个标记用于您正在运行的代码。在事件处理程序的顶部使用event.preventDefault()也可能有所帮助。这是对代码的简单编辑:

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {
                $('.scrollup').click(function(event){
                    event.preventDefault();
                    $("html, body").animate({ scrollTop: 0 }, 600);
                });
        });
    </script>
</head>
<body id="top">

    <div style="height: 900px">
        Some content
    </div>
    <div>
        <a href="#" class="scrollup">go to top</a>
    </div>
</body>
</html>

希望有所帮助。