javascript - 滚动时在两个像素值之间显示 div
问题描述
我正在尝试显示 3 个 div(顺序和滚动时),并且每个 div 仅在两个像素值之间显示,但是我的脚本有一些我不明白的地方:
我想展示的是:
- div-1 仅在 200 到 500 像素之间可见
- div-2 仅在 900 到 1200 像素之间可见
- div-3 仅在 1600 到 1900 像素之间可见
我在这里做错了什么?
演示(JSFiddle)
另一方面,有没有更简单、更优雅的方法来做到这一点?
提前致谢!
脚本:
$(window).scroll(function() {
if ($(this).scrollTop() > 200) {
//if (document.body.scrollTop > 200 || document.documentElement.scrollTop < 500) {
$('#div-1').fadeIn();
}
else {
$('#div-1').fadeOut();
};
if ($(this).scrollTop() > 900) {
//if (document.body.scrollTop > 900 || document.documentElement.scrollTop < 1200) {
$('#div-2').fadeIn();
}
else {
$('#div-2').fadeOut();
};
if ($(this).scrollTop() > 1600) {
//if (document.body.scrollTop > 1600 || document.documentElement.scrollTop < 1900) {
$('#div-3').fadeIn();
}
else {
$('#div-3').fadeOut();
};
});
HTML:
<div id="div-1">Radio</div>
<div id="div-2">Blog</div>
<div id="div-3">Store</div>
<div id="content"></div>
CSS:
#div-1,#div-2,#div-3 {
display:none;
position:fixed;
width:200px;
height:60px;
margin:0 auto;
text-align:center;
font-size:20px;
line-height:60px
}
#div-1{background:#ff0;color:#000}
#div-2{background:#000;color:#fff}
#div-3{background:green;color:#fff}
#content{text-align:center;height:2500px}
解决方案
你只是失踪了&&
。
if ($(this).scrollTop() > 200 && $(this).scrollTop() < 500) {
// ...
}
if ($(this).scrollTop() > 900 && $(this).scrollTop() < 1200) {
// ...
}
if ($(this).scrollTop() > 1600 && $(this).scrollTop() < 1900) {
// ...
}
“如果滚动大于 200 并且同时滚动小于 500,则显示 div-1”...
这是一个工作示例:JSFiddle
推荐阅读
- python - 为什么“result = list_data.remove(element_value)”错误?
- reactjs - 它实际上是未安装的 React 组件中的内存泄漏吗?
- gcc - 软件流水线的真实示例代码
- flutter - 当设备具有 Chrome 以外的默认浏览器时,Flutter ChromeSafariBrowser 无法启动
- java - 对象到泛型类型转换
- python - 没有现成的服务副本 - azure aks
- github - 如何为 GitHub 存储库中的部分代码着色?
- c - 不能在代码中间定义和声明数组吗?
- github - GitHub 是否会在一段时间后删除没有活动的存储库?
- discord - On_message 命令不允许其他命令工作