我在页面中间有一个带有display.none的元素。我希望当我更改显示以阻止页面滚动到该位置时。这可能吗?
答案 0 :(得分:1)
您可以尝试使用ScrollTo
方法 - MDN ScrollTo
window.scrollTo(500,0); // (500,0) are the co-ordinates for the ScrollTo method
或者您可以在Jquery ScrollTop
中尝试scrollTop方法$( "div.demo" ).scrollTop( 300 );
答案 1 :(得分:1)
尝试window.scrollTo(x-coord,y-coord )
x-coord is the pixel along the horizontal axis of the document that you want displayed in the upper left.
y-coord is the pixel along the vertical axis of the document that you want displayed in the upper left.
https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollTo
答案 2 :(得分:1)
假设您在某些时候使用javascript从" display:none"更改该元素。到"显示:块"你可以使用一些javascript同时滚动到那个元素。
编辑:我刚刚快速建立了它,它肯定有效。
说明:atSomePoint只是触发从display:none到display:block的更改的事件。我正在使用.show()来将这个元素从隐藏变为阻塞,但显然有很多方法可以做到。滚动部分接下来。我们正在采用页面的主体并为其设置动画;去哪儿?好吧,到元素的位置。所以我们使用' scrollTop'进行动画制作。使用' .offset()。top'来设置$(el)从顶部开始。 500就是动画花了多长时间和“摇摆”。是动画类型(缓和),甚至没有必要。此外,如果您对stop()感到好奇,那么只会停止正在执行的任何其他当前动画。它仍然可以解决这个问题。
(function() {
$(el).atSomePoint, function() {
$(this).show();
$('html, body').stop().animate({
'scrollTop': $(el).offset().top
}, 500, 'swing');
});
});