jQuery在两个类之间滚动切换
jQuery on scroll toggle between two classes
默认情况下,我有一个红色背景的导航栏。
我想做的是,当用户向下滚动超过100像素时,将背景更改为蓝色,如果他回到0像素,将背景改为默认状态。
我想通过在两个类之间切换来实现这一点,例如<div class="navigation red">
应该是默认类,如果用户向下滚动以添加<div class="navigation blue">
,如果他向后滚动以再次拥有<div class="navigation red">
。
这是我的尝试:
$(document).ready(function(){
$(window).scroll(function(){
if ($(window).scrollTop() > 100){
$('.navigation').toggleClass( "blue");
}
});
});
但这是行不通的。这是一个jsbin。
有什么办法让它发挥作用吗?
尝试以下代码:
$(document).ready(function () {
$(window).scroll(function () {
$('.navigation').toggleClass("blue", ($(window).scrollTop() > 100));
});
});
以下是jsbin
使用toggleClass()
可能是错误的解决方案。改为使用addClass
/removeClass
:
if ($(window).scrollTop() > 100){
$('.navigation').addClass( "blue");
}
else {
$('.navigation').removeClass("blue");
}
您可以像这样使用.addClass()
和removeClass()
:http://jsfiddle.net/csdtesting/qhfmw8hx/
$(window).scroll(function() {
var windowYmax = 100;
var scrolledY = $(window).scrollTop();
if (scrolledY > windowYmax) {
$('.navigation').addClass("blue");
} else {
$('.navigation').removeClass("blue");
$('.navigation').addClass("red");
}
});
.navigation {
height: 800px;
}
.navigation.red {
background: red;
}
.navigation.blue {
background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="navigation red">scroll me down and up please to see me changing colors...</div>
希望它能有所帮助!
问题是每次用户滚动时都调用toggleClass。此代码将修复此问题:
$(document).ready(function(){
$(window).scroll(function(){
if ($(window).scrollTop() > 100 && !$( ".navigation" ).hasClass( "blue" ) || $(window).scrollTop() === 0 && $( ".navigation" ).hasClass( "blue" ){
$('.navigation').toggleClass( "blue");
}
});
});
jsbin
如果要添加一个类并删除另一个类,我建议在这种情况下只使用addClass和removeClass。此外,您还可以链接这些方法。
$(document).ready(function(){
$(window).scroll(function(){
if ($(window).scrollTop() > 100){
$('.navigation').addClass('blue').removeClass('red');
} else {
$('.navigation').addClass('red').removeClass('blue');
}
});
});
这是jsbin
相关文章:
- 镜像滚动效果打开.在两个容器之间单击
- UI 路由器 - 在状态之间转换时记住滚动位置
- 在 React/Redux 中管理同级组件之间的滚动状态
- 移动Chrome和Safari之间的页面滚动不一致
- 在浏览器之间平滑滚动
- 滚动时突出显示当前部分 - 部分之间的间隙
- 在单独的.html页面之间滚动
- 如何禁用整页的自动重新对齐行为.js当滚动在两个部分的中间之间结束时
- 在Facebook iframe滚动条或页面中途剪切之间进行选择
- fullpage.js在节之间添加了2个自动滚动事件
- 视差在部分之间滚动
- jquery鼠标滚轮在触控板上水平滚动.避免deltaX和deltaY之间的冲突
- 固定位置分割防止焦点在元素之间移动时滚动
- jQuery在两个类之间滚动切换
- 在单个页面上的各个部分之间滚动动画?(仅限javascript)
- 如何同步两列之间的滚动
- 在wordpress网站的帖子之间插入谷歌广告,并进行无限滚动
- 是否有一种方法可以在两个不同的页面之间制作动画向上滚动过渡
- 滚动时在两个预设位置之间移动对象
- 处理在整个页面部分之间滚动,溢出:隐藏在主体上