我知道标题不是最具描述性的,还有更多类似问题的主题,但我找不到任何答案。事实上,我非常感谢你们,所以这就是我要做的事情。
当页面滚动到某个位置(触发器)时,我想要显示一个DIV,由 #othdiv 标记。当您进一步向下滚动到标记为#othdiv2 的下一个位置(触发器)时,此DIV会消失。
这感觉就像是一个非常简单的解决方案,但我无法弄清楚。我已经尝试过条件if语句,重复代码,删除行,新变量......叹息......请帮忙。
$(document).ready(function() {
$("#dvid").hide(); //hide your div initially
var topOfOthDiv = $("#othdiv").offset().top;
var topOfOthDiv2 = $("#othdiv2").offset().top;
$(window).scroll(function() {
if($(window).scrollTop() > topOfOthDiv) { //scrolled past the other div?
$("#dvid").show(); //reached the desired point -- show div
}
else
if($(window).scrollTop() < topOfOthDiv) { //scrolled past the other div?
$("#dvid").hide(); //reached the desired point -- show div
}
});
});
当前代码示例: http://jsfiddle.net/DnJ2z/124/
底线: 我正在尝试做类似的事情:http://mailchimp.com/2012/(注意标题[应用程序,支持,操作等])
答案 0 :(得分:4)
尝试使用&&
,如下所示:if(this and that){do something} else {do not}
<强> Working Example 强>
$(document).ready(function () {
var topOfOthDiv = $("#othdiv").offset().top;
var topOfOthDiv2 = $("#othdiv2").offset().top;
$(window).scroll(function () {
if ($(window).scrollTop() > topOfOthDiv && $(window).scrollTop() < topOfOthDiv2) {
$("#dvid").show();
} else {
$("#dvid").hide();
}
});
});
要更好地解释逻辑运算符,请查看:Logical Operators MDN
答案 1 :(得分:1)
我正在玩你的小提琴并设法让它运转起来。检查它是否是你想要的:
$(document).ready(function() {
$("#dvid").hide(); //hide your div initially
var topOfOthDiv = $("#othdiv").offset().top;
var topOfOthDiv2 = $("#othdiv2").offset().top;
$(window).scroll(function() {
if($(window).scrollTop() > topOfOthDiv && $(window).scrollTop() < topOfOthDiv2) { //scrolled past the other div?
$("#dvid").show(); //reached the desired point -- show div
}
else
if($(window).scrollTop() < topOfOthDiv || $(window).scrollTop() > topOfOthDiv2) { //scrolled past the other div?
$("#dvid").hide(); //reached the desired point -- show div
}
});
});