添加'X'视口高度滚动的数量
Jquery add CSS class after 'X' amount of viewport height scrolled
所以我有这个jQuery函数,在滚动600px的视口高度后为元素添加/删除CSS类。
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 600) {
$(".cta_box").addClass('fadeout');
} else {
$(".cta_box").removeClass('fadeout');
}
});
我想调整它,而不是基于像素值工作,它工作的视图高度css测量"VH",但等效的结果是什么问题在这种情况下。
可以通过$(window).height()
获得window
的高度。
例如,假设你必须滚动一半的屏幕(高度为150vh),你必须检测当40%已经滚动:
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 0.4 * $(window).height()) {
$(".cta_box").addClass('fadeout');
} else {
$(".cta_box").removeClass('fadeout');
}
});
body{
margin: 0;
height: 150vh;
}
.cta_box {
height: 100%;
background: green;
}
.cta_box.fadeout {
background: grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cta_box"></div>
使用窗口高度的百分比来比较
$(window).scroll(function() {
var height = $(window).height(),
scroll = $(window).scrollTop()
limit = 0.6; //implies 60 vh or 60% of viewport height
if (scroll >= height*limit) {
$(".clearHeader").addClass("darkHeader");
} else {
$(".clearHeader").removeClass("darkHeader");
}
});
,更好的做法是只在调整窗口大小时更新一些变量,以避免一直进行计算
var limit = 0.6, //implies 60 vh or 60% of viewport height
scrollLimit = 0;
$(window).resize(function(){
scrollLimit = $(window).height() * limit;
}).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= scrollLimit ) {
$(".clearHeader").addClass("darkHeader");
} else {
$(".clearHeader").removeClass("darkHeader");
}
}).trigger('resize').trigger('scroll'); // trigger both events on start to force initial setup
试试这样
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 500) {
$(".clearHeader").addClass("darkHeader");
} else {
$(".clearHeader").removeClass("darkHeader");
}
});
要获取视口高度,可以使用$(window).innerHeight():
$(window).scroll(function() {
var scroll = $(window).innerHeight();
if (scroll >= 600) {
$(".cta_box").addClass('fadeout');
} else {
$(".cta_box").removeClass('fadeout');
}
});
希望对你有帮助。
狮子座。相关文章:
- 将视口底部滚动到元素底部
- CSS3:当页面向下滚动到第一个视口时,是否可以在元素上触发转换
- 查找's在可见屏幕(视口)的中间,滚动时
- 滚动到视口的中心
- 如何将“切换滑块内容”的顶部滚动到视口的中心
- 当任何块级元素的视口较窄时,添加水平滚动条
- 更改滚动显示.js视口
- 如何为 jpg 文件创建响应式视口,供用户缩放、滚动和点击
- 如何实现这种自动调整到您的视口的滚动效果
- 如何使用视口宽度单位考虑滚动条
- angular js设置动画以滚动到视口顶部
- 滚动HTML5画布视口进行打印
- Java脚本在桌面上正常工作(没有水平滚动),但在移动设备上远远超出了视口
- 单击按钮时水平滚动(视口+向左滚动)
- 自动滚动嵌入窗口只有一次时,进入视口.无法向上滚动
- 添加'X'视口高度滚动的数量
- 如何滚动到元素并在到达视口顶部时停止
- 将最后滚动的标题粘贴到视口顶部
- 禁用元素大于视口的水平滚动
- 每次项目滚动到视口时触发事件