将DIV推到页面首屏以下?使用Jquery实现?

4
有没有一种方法可以将一个
标签推到屏幕的下方,在页面加载时不显示它,除非用户向下滚动?我知道有一些叫做JQuery viewport的东西,但不确定如何使用它。我也不想用CSS将
标签隐藏起来。
2个回答

10

你不需要任何JavaScript!只需要好的 “老式” CSS。将作为 <body> 的子元素的元素设置为 position:absolute; top:100%;,然后你就会得到你想要的在屏幕下方的元素。

.below {
    position: absolute;
    top:100%;
}

此外,与使用JavaScript设置静态的上边距或外边距不同,即使在调整浏览器窗口大小后仍然有效。

以下是具有完整标记的jsFiddle:http://jsfiddle.net/ubhBL/


出于某种原因,我认为在 position: absolute 元素上设置 top: 100% 会将其推到文档底部,而不仅仅是视口底部。+1 - Jasper
@shruggernaut 你误解了。原帖中根本没有使用类似“插入”这样的词语。问题明确询问如何相对于视觉视口定位元素,而不是在DOM内重新定位。实际上,甚至不能假设DOM超出页面折叠以正确插入。我提供的解决方案(请注意,这已经是将近四年前的事情了)解决了问题:“有没有一种方法可以将一个div“推”到第一个折叠下面,这样它在页面加载时永远不会显示,除非用户向下滚动?”并且可以在不知道内容长度或视口大小的情况下完成。 - rgthree
1
有没有一种方法可以在保持元素在文档“流”中的同时完成这个操作? - nha

2

使用jQuery来设置一个topmargin-top CSS属性,使它等于viewport的高度如何:

$(function () {
    $('#my-under-the-fold-element').css({
        top : $(window).height()
    });
});

然后您只需要将元素的位置设置为绝对定位。

以下是演示:http://jsfiddle.net/CtgUB/2/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接