有没有一种方法(使用CSS3、JS或二者之间的任何东西)可以使页面从特定滚动位置开始?
我希望我的页面在加载时不显示标题(也就是用户实际视口上方)。
有没有简单/易用的方法来实现这一点?
有没有一种方法(使用CSS3、JS或二者之间的任何东西)可以使页面从特定滚动位置开始?
我希望我的页面在加载时不显示标题(也就是用户实际视口上方)。
有没有简单/易用的方法来实现这一点?
window.scroll(x, y)
。onload
时执行此操作,即窗口应该从(0,0)开始。尝试调整(x, y)
值,直到将标题移动到满意的位置。当然,每当标题移动时,你需要更改这些值。<body onLoad="window.scroll(0, 150)">
如果您给包含在头部之后的内容的 div
元素设置了一个 id
,那么您可以通过此类URL加载页面:http://website.com/page#id
。
这将带您到 div
元素所在的位置。
您可以在页面加载时使用 window.scroll(x,y)
。
目前的答案会导致页面出现明显的“跳跃”,或需要你知道要跳转的像素数。
我希望有一种解决方案,可以跳过容器,而不管容器的大小/内容是什么,以下是我的解决方案:
HTML
<div class="skip-me">Skip this content</div>
CSS// Hide the content initially with display: none.
.skip-me {
display: none;
}
.unhide {
display: block;
}
JavaScript
// Unhide the content and jump to the right place on the page at the same time
function restoreAndSkipContent() {
var hidden = document.querySelector('.skip-me');
hidden.classList.add('unhide');
window.scroll(0, hidden.offsetHeight);
};
restoreAndSkipContent();
以下是这方面非常简单的技巧:
创建CSS偏移类并将其分配给body
.offset{
margin-top:-500px;
}
那么页面主体将会从顶部往下偏移500像素
接着将以下代码添加到页面主体中
<body class="offset" onLoad="window.scroll(0, 150)">
然后使用jQuery,在页面加载时删除偏移类。$(document).ready(function(){
$(".row").removeClass("offset");
});
<body onLoad="window.scroll(0, 150)">
时,页面在加载完成后会自动滚动,这对用户来说非常烦人。 - Alberto Fontanaoffset
类应该只在JS中首次添加 - 否则,当JS不可用时,margin-top:-500px
将保持原样,并使前500个像素的内容无法通过滚动到达...(并且对于滚动,使用vanilla JS和“老派”的事件处理,但然后使用jQuery删除类也没有太多意义 - 为什么不以相同的方式处理两者?) - CBroe当JS不可用时,margin-top:-500px将保持原样,并使前500个像素的内容无法通过滚动到达
,这就是事实。请参见500px个人资料页面作为例子。 - Uday HiwaraleHTML - 命名锚点
你也可以使用传统的锚点。使用以下语法定义一个命名锚点:
<a id="start">any text</a>
这应该在需要显示的地方定义。即使它可以出现在屏幕底部,您可能必须将锚点放置在稍低的位置。这样,我们就能确保顶部不必显示的内容被很好地隐藏。 一旦定义了页面加载时向下滚动,URL 应为 page.aspx#start 而不是 page.aspx。
<a href="#start">access within the same page</a>
<a href="page.aspx#start">access from outside the page</a>
使用javascript的scrollBy
方法。要使此方法生效,窗口滚动条的可见属性必须设置为true。因此,请确保您的页面足够长,以便垂直滚动条出现。
<html>
<head>
</head>
<body onLoad="window.scrollBy(0,100)">
<div style="height:300px;"> Some text </div>
<div style="height:900px;"> Some text 2 </div>
</body>
</html>
使用 JavaScript window.scroll
:
$(window).scroll(function(){
if ($(this).scrollTop() > 100){
$('something').hide();
}
else{
$j('something').show();
}
});
<div class="demo">
<h2>Demo</h2>
</div>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function () {
$('html, body').animate({
scrollTop: $('.demo').offset().top
}, 'slow');
});
</script>
在jQuery中有一个叫做.scroll()的函数。你可以使用该函数来使用户滚动网站时仅显示标题栏。
function ScroolPositionButtom() {
var elment = document.querySelector(".right .chat.active-chat");
elment.scrollTo(0, elment.scrollHeight);
}
这对我来说是工作。 我使用此函数针对特定类。