向下滚动页面,然后向上滚动 jQuery
Scroll down the page, then up with jQuery
点击按钮后,我希望页面达到最低点,然后再回升。我认为需要某种回调,但我无法定义它。我在下面报告相关代码部分。
$(document).ready(function() {
$(".home-button").on('click', function() {
$('html, body').animate({
'scrollTop': $('footer').offset().top
}, 1500);
//then come back
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<a class="home-button">Start</a>
<!-- ... -->
<footer><p>Stop and go back</p></footer>
</body>
<html>
您在 callback
部分是正确的,只需在 callback
函数中添加另一个 animate
即可返回顶部。
$(document).ready(function() {
$(".home-button").on('click', function() {
$('html, body').animate({
'scrollTop': $('footer').offset().top
}, 1500, 'swing', function() {
$('html, body').animate({
'scrollTop': $('body').offset().top
}, 1500);
});
//then come back
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<head></head>
<body>
<a class="home-button">Start</a>
<!-- ... -->
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<footer>
<p>Stop and go back</p>
</footer>
</body>
<html>
您需要使用 setTimeout 在动画时间后返回!
$(document).ready(function() {
let sameValue = 1500;
$(".home-button").on('click', function() {
$('html, body').animate({
'scrollTop': $('footer').offset().top
}, sameValue );
//then come back
setTimeout(()=>{ $('html, body').animate({
'scrollTop': $('.home-button').offset().top
}, sameValue );},sameValue );
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<a class="home-button">Start</a>
<!-- ... -->
<div style="height:700px;background-color:red;" ></div>
<footer><p>Stop and go back</p></footer>
</body>
<html>
点击按钮后,我希望页面达到最低点,然后再回升。我认为需要某种回调,但我无法定义它。我在下面报告相关代码部分。
$(document).ready(function() {
$(".home-button").on('click', function() {
$('html, body').animate({
'scrollTop': $('footer').offset().top
}, 1500);
//then come back
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<a class="home-button">Start</a>
<!-- ... -->
<footer><p>Stop and go back</p></footer>
</body>
<html>
您在 callback
部分是正确的,只需在 callback
函数中添加另一个 animate
即可返回顶部。
$(document).ready(function() {
$(".home-button").on('click', function() {
$('html, body').animate({
'scrollTop': $('footer').offset().top
}, 1500, 'swing', function() {
$('html, body').animate({
'scrollTop': $('body').offset().top
}, 1500);
});
//then come back
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<head></head>
<body>
<a class="home-button">Start</a>
<!-- ... -->
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<footer>
<p>Stop and go back</p>
</footer>
</body>
<html>
您需要使用 setTimeout 在动画时间后返回!
$(document).ready(function() {
let sameValue = 1500;
$(".home-button").on('click', function() {
$('html, body').animate({
'scrollTop': $('footer').offset().top
}, sameValue );
//then come back
setTimeout(()=>{ $('html, body').animate({
'scrollTop': $('.home-button').offset().top
}, sameValue );},sameValue );
});
});
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<a class="home-button">Start</a>
<!-- ... -->
<div style="height:700px;background-color:red;" ></div>
<footer><p>Stop and go back</p></footer>
</body>
<html>