如果我想使用此JavaScript命令:
window.scrollBy(0,50);
它向下滚动50px。
是否有一个简单的等价物滚动页面50vh?这不起作用
window.scrollBy(0,50vh);
我看到了这个问题here但有更简单的方法吗?
答案 0 :(得分:6)
您可以将Status: 500 Request failed
除以2
window.innerHeight
答案 1 :(得分:4)
scrollBy仅接受以像素为单位的值。
1vh = 1/100视口高度。所以你可以手动计算它。
window.scrollBy(0, valueInVh * window.innerHeight/100);
答案 2 :(得分:2)
AFAIK JavaScript DOM API仅为您提供像素值。如果你想要像素的“50vh”,你可以自己轻松计算出来:
// height in pixel
const height = window.innerHeight;
const vhPixels = height * 0.5
window.scrollBy(0, vhPixels);
答案 3 :(得分:0)
您可以在更改菜单类之前在希望下方div达到的高度创建一个不可见的固定元素。使用vh定位此固定元素,如果下部div已越过固定元素,则进行滚动功能测试。
CSS:
#fixed {
position: fixed;
top: 10vh; /*or whatever height you want*/
}
JS:
$(window).scroll(function() {
var test = $('#fixed').offset().top;
var lowerDivPosition = $('#lowerDiv').offset().top;
if (lowerDivPosition >= test) {
$(".home").removeClass("open");
};
});