我是jQuery的新手,我正在尝试在我的web项目上实现平滑滚动到div。出于某种原因,当我创建一个新的基本html测试页面并为滚动添加js时,它可以工作。但是当我将完全相同的代码导入到我的主项目中时,它实际上并没有滚动,而是在稍微停顿后直接跳转到预期的div。我不知道它为什么会在测试页面上工作,而不是在我的实际项目中。有没有人有什么想法会导致它这样做?任何帮助将非常感激!感谢。
我在头部定义了以下脚本:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script src="js/script.js"></script>
HTML:
<div id="mainContent">
<section id="splash">
<div class="banner">
</div>
<div id="intro">
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<a href="#productInfo">LEARN MORE</a>
</div>
</section>
<div id="productInfo">
</div>
并在script.js中:
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function () {
window.location.hash = target;
});
});
});
答案 0 :(得分:0)
以下是代码,
HTML:
<section id="splash">
<div class="banner"></div>
<div id="mainContent">
<div id="intro">
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<a href="#productInfo">LEARN MORE</a>
</div>
</div>
</section>
<div id="productInfo">test tests</div>
CSS:
#productInfo { background:gray; color:#000; margin-top:400px; padding:10px; height:1000px;}
jQuery的:
$(document).ready(function(){
$('a[href^="#"]').on('click',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function () {
window.location.hash = target;
});
});
});