我正在尝试创建一个包含隐藏文本的页面,只有当有人滚动时才会显示。
当某人滚动经过一个div
时,该文本应该消失,而新的文本将显示出来。
我只能找到垂直或水平滚动等解决方案。
我已经使用jsFiddle创建了一个simpler version,但是无论我向JS部分添加什么代码,似乎都不起作用。
以下是CSS:
body {
background-color: #f8f8f8;
margin: 5px;
font-family: arial, sans-serif;
}
div#mainText {
width: 960px;
margin: o auto;
padding: 10px;
background-color: #f8f8f8;
font-size: 1em;
}
h1 {
text-transform:uppercase;
color: gray;
}
h2 {
font-family:"Times New Roman", Times, serif;
font-size:2.5em;
}
.partOne
{
color: gray;
display:none;
}
.partTwo
{
color: gray;
display:none;
}
.partThree
{
color: gray;
display:none;
}
.kicker
{
color: gray;
display:none;
}
以下是HTML:
<h1 id="preHead">Catchy Title</h1>
<h2 id="headline">Headline goes here</h2>
<P></p>
<p id="introBlurb">A very compelling blurb here. Praesent volutpat rhoncus purus, ullamcorper dapibus ante pulvinar non. Maecenas fringilla justo nec justo blandit non rhoncus nunc elementum.</p>
<div class="partOne">
<p>Part one here. This appears on first scroll event.</p>
</div>
<div class="partTwo">
<p>Part two here. This appears on second scroll event.</p>
</div>
<div class="kicker">
<p>Kicker here. This appears on 3rd scroll event.</p>
</div>
JavaScript/Jquery:
$(window).scroll(function () {
$("kicker").css("display");
});
到目前为止还没什么效果。任何帮助都非常感谢。
1条答案
按热度按时间c9x0cxw01#
你的例子不够长,所以我在第一个元素中添加了一些额外的文本。主要的问题是你的jQuery。你调用了
$('kicker').css('display')
,但它不起作用。选择器
'kicker'
需要更改为'.kicker'
,因为它是一个类,我将.css('display')
更改为.show()
,这样就可以正常工作了。工作示例:http://jsfiddle.net/x8tzg/24/
注意:如果您想要侦测何时到达某个卷动点,您可以在
scroll
事件中加入程式码,以检查$(window).scrollTop()
与$(compareElement).offset().top
的比较,如下所述:是的。