如何使Javascript中的CSS正常工作
How to get CSS in Javascript working correctly
我在使用某些javascript时遇到了一些问题。
这个想法是让我的菜单背景透明,并带有白色链接。然后,当滚动100时,背景从透明变为纯白,文本链接从白色变为#222,文本链接上的悬停状态变回白色。
//Fade in header
jQuery(window).on("scroll", function () {
if (jQuery(this).scrollTop() > 100) {
jQuery("body.home header, body.page header").css("background-color","#fff");
jQuery("body.home header, body.page header").css("box-shadow","0px 2px 4px -2px rgba(0, 0, 0, 0.15)");
jQuery("body.home header, body.page header").css("transition","1s");
jQuery(".nav-menu ul li a").css("color","#222");
jQuery(".nav-menu ul li a:hover").css("color","#fff");
}
else {
jQuery("body.home header, body.page header").css("background-color","transparent");
jQuery("body.home .nav-menu ul li a, body.page .nav-menu ul li a").css("color","#fff");
jQuery("body.home header, body.page header").css("box-shadow","none");
}
});
它没有按预期工作。
首先,可以看到白色背景,直到发生某种形式的滚动事件。然后它变为透明,然后在100之后再次变为实心。
第二个问题是,在纯白背景的更改状态下,悬停时锚文本的颜色不会改变。
这种效果可以在我的博客上看到,它更容易链接到博客,而不是试图描述。
这是一堆不需要太多工作的代码!只要在卷轴上添加一个类,就会容易得多。
例如
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 100) {
$("header").addClass("white");
} else {
$("header").removeClass("white");
}
});
.white {
background:#fff;
}
.white a {
color:#222;
}
正如@GavinThomas所说,你真的应该使用CSS类来设置"透明"状态,并且只使用jQuery来打开/关闭该类。
也就是说,假设类white
使背景为白色,并且默认情况下头部是透明的,这就是CSS的外观。当然,你需要添加你已经拥有的所有样式。
header {
background-color: transparent;
transition: 1s;
}
.nav-menu ul li a, body.page .nav-menu ul li a {
color: #fff;
}
header.white {
background-color: #fff;
box-shadow: 0px 2px 4px -2px rgba(0, 0, 0, 0.15);
}
header.white .nav-menu ul li a{
color: #222;
}
header.white .nav-menu ul li a:hover {
color: #fff;
}
正如@GavinThomas所说
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 100) {
$("header").addClass("white");
} else {
$("header").removeClass("white");
}
});
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)