Ul样式仅在滚动时更改,在返回滚动/更改点时失去样式
ul style only changes on scroll, loses styling when returning to scroll/change point
我正在尝试在滚动上更改标题,到目前为止,我可以获得标题尺寸和颜色/不透明度更改,背景图像等。但是ul/nav的行为很奇怪。在加载页面时,导航具有所有适当的样式,当我向下滚动时,javascript完美地更改了样式。但是,当我向上滚动时,所有样式都被删除,直到页面刷新。下面是我的代码:
HTML:<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Some Title</title>
<meta charset="utf-8" >
<meta http-equiv="X-UA-Compatible" content="
IE=EDGE" />
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="css/main.css">
<!--
<link rel="stylesheet" href="css/nivo-slider.css" type="text/css" />
<link rel="stylesheet" href="css/default.css" type="text/css" />
-->
<!-- Fonts -->
<link href='http://fonts.googleapis.com/css?family=Allan:400,700' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Orbitron' rel='stylesheet' type='text/css'>
<!-- JavaScript-->
<script src="js/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="js/header-change.js" type="text/javascript"></script>
</head>
<body>
<header class="clearFix header">
<div class="header-container ">
<nav>
<ul class="nav">
<li>Contact</li>
<li>Portfolio</li>
<li>About</li>
</ul>
</nav>
</div>
</header>
<main></main>
</body>
JS:
$(function(){
var changeHeader = 100;
$(window).scroll(function() {
var scroll = getCurrentScroll();
if ( scroll >= changeHeader ) {
$('.header').addClass('scroll');
$('.nav').addClass('scroll');
$('.header-container').addClass('scroll');
}
else {
$('.header').removeClass('scroll');
$('.nav').removeClass('nav');
$('.header-container').removeClass('scroll');
}
});
function getCurrentScroll() {
return window.pageYOffset;
}
});
CSS: *{
margin: 0;
padding:0;
}
h1{
font-size: 56px;
padding: 20px;
font-family: 'Allan', cursive;
color: #5f2219;
}
h3{
font-family: 'Allan', cursive;
font-size: 32px;
padding-left: 20px;
color: #5f2219;
}
.header{
position: fixed;
z-index: 100;
height: 70px;
background-color: rgba(255, 255, 255, 1);
width: 100%;
opacity: 1;
}
.header.scroll{
background-color: rgba(255, 255, 255, 0.6);
height: 40px;
}
.header-container{
width:980px;
height:70px;
margin: 0 auto;
background-image: url('../images/binder_hdr.png');
background-repeat:no-repeat;
background-position: 0%75%;
}
.header-container.scroll{
width:980px;
height:40px;
margin: 0 auto;
background-image: url('../images/binder_mini_hdr.png');
background-repeat:no-repeat;
background-position: 0%;
}
.nav {
font-family: 'Orbitron', sans-serif;
list-style-type: none;
color: #383838;
line-height: 50px;
font-size: 20px;
text-align: center;
}
nav ul li{
float: right;
padding-right: 60px;
padding-top: 26px;
}
.nav.scroll {
font-family: 'Orbitron', sans-serif;
list-style-type: none;
color: #383838;
line-height: 5px;
font-size: 16px;
text-align: center;
}
.clearFix:after {
clear: both;
display: table;
content: "";
overflow: hidden;
}
任何帮助都将非常感激。我不太熟悉JS/jQuery,所以我不确定我是否有正确的一切。
您已经删除了else部分中的.nav
类。
所以你的CSS &jQuery选择器.nav
和.nav.scroll
也不能使用
你可以只控制一个类,如.scroll
,但不能切换.nav
和.scroll
:
if (...)
$('.nav').addClass('scroll');
else (...)
$('.nav').removeClass('nav');
建议:
if (...)
$('.nav').addClass('scroll');
else (...)
$('.nav').removeClass('scroll');
谢谢,爱迪生
相关文章:
- 条件滚动条样式
- 设置右侧默认滚动条的样式
- 更改页面滚动上的元素样式
- JScrollpane不会设置滚动条的样式
- JQuery:手风琴高度样式:填充导致垂直滚动条
- 滚动时导航栏样式闪烁
- 可以在 gwt 中设置本机滚动条的样式,无需定义自定义滚动条,也无需使用 ScrollPanel 或 CustomScr
- 样式 Facebook 喜欢框滚动条
- 滚动条在 Firefox 中显示的样式与 Chrome 不同
- 如何实现脸书聊天垂直滚动条样式
- 根据页面上的滚动位置进行多种样式更改
- 向幻灯片放映添加滚动显示样式
- 当位置样式为绝对时,滚动上的文本框定位问题
- 重新设计锚定标签的样式以删除不稳定的滚动
- 如何自定义twitter iframe滚动条的样式
- 创建水平滚动报纸样式的多列html
- 滚动导航链接的样式
- 根据可滚动内容的样式改变元素样式
- 更改滚动条样式
- 当向下滚动时改变样式(javascript)