如何在 Javascript 中使用百分比或像素自动滚动?
How to autoscroll with percentage or pixels in Javascript?
我有这段代码可以自动滚动到特定的 ID。
我的问题是是否有可能自动滚动到页面的某个部分而不是一个 id 像素或百分比。
感谢您的帮助。
这是我的代码
scrollTop: jQuery("#id").offset().top
}, 2000);
根据 scrollTop 的文档,它需要一个数值。这同样适用于 animate
.
中的用法
所以对于一个设置的像素值,直接省略获取元素偏移量的函数,直接把值填入即可。百分比值也是如此,但涉及一些数学。
$(document).ready(function(){
// Add smooth scrolling to all links
$(".pixel").on('click', function(event) {
event.preventDefault();
$('html, body').animate({
scrollTop: 200 //set a numeric value to scroll a set amount of pixel
}, 800, function(){
});
});
$(".percent").on('click', function(event) {
event.preventDefault();
var windowHeight = window.innerHeight;
var percent = 90;
var percentPixel = windowHeight * (percent / 100); // calculate the amount of pixel off a percentage
$('html, body').animate({
scrollTop: percentPixel
}, 800, function(){
});
});
});
body, html, .main {
height: 100%;
}
section {
min-height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class="pixel" href="#section2">Click Me to Smooth Scroll 200px</a>
<a class="percent" href="#section2">Click Me to Smooth Scroll 90%</a>
<div class="main">
<section></section>
</div>
<div class="main" id="section2">
<section style="background-color:blue"></section>
</div>
我有这段代码可以自动滚动到特定的 ID。 我的问题是是否有可能自动滚动到页面的某个部分而不是一个 id 像素或百分比。 感谢您的帮助。
这是我的代码
scrollTop: jQuery("#id").offset().top
}, 2000);
根据 scrollTop 的文档,它需要一个数值。这同样适用于 animate
.
所以对于一个设置的像素值,直接省略获取元素偏移量的函数,直接把值填入即可。百分比值也是如此,但涉及一些数学。
$(document).ready(function(){
// Add smooth scrolling to all links
$(".pixel").on('click', function(event) {
event.preventDefault();
$('html, body').animate({
scrollTop: 200 //set a numeric value to scroll a set amount of pixel
}, 800, function(){
});
});
$(".percent").on('click', function(event) {
event.preventDefault();
var windowHeight = window.innerHeight;
var percent = 90;
var percentPixel = windowHeight * (percent / 100); // calculate the amount of pixel off a percentage
$('html, body').animate({
scrollTop: percentPixel
}, 800, function(){
});
});
});
body, html, .main {
height: 100%;
}
section {
min-height: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class="pixel" href="#section2">Click Me to Smooth Scroll 200px</a>
<a class="percent" href="#section2">Click Me to Smooth Scroll 90%</a>
<div class="main">
<section></section>
</div>
<div class="main" id="section2">
<section style="background-color:blue"></section>
</div>