所以,我对此很陌生,需要一些帮助。 我有一个可用作导航栏的列表,我想在滚动到标题上方时更改其文本颜色和背景颜色,因此它始终可见。
这是代码:`
$(document).ready(function(){
$(window).scroll(function(){
var scroll = $(window).scrollTop();
if (scroll > 300) {
$(".nav").css("text-color" , "black");
}
else{
$(".nav").css("text-color" , "white");
}
})
})
/* Fara scroll-bar */
::-webkit-scrollbar {
display: none;
}
/* Fonturi */
@font-face{
font-family:myfont;
src: url("fonts/Hum521It.ttf");
}
@font-face{
font-family:myfont2;
src: url("fonts/Montserrat-Medium.ttf");
}
@font-face{
font-family:myfont3;
src: url("fonts/Oswald-Regular.ttf");
}
@font-face{
font-family:myfont4;
src: url("fonts/Slabo27px-Regular.ttf");
}
@font-face{
font-family:myfont5;
src: url("fonts/Arapey-Regular.ttf");
}
@font-face{
font-family:myfont6;
src: url("fonts/RobotoCondensed-Light.ttf");
}
@font-face{
font-family:myfont7;
src: url("fonts/RobotoCondensed-Regular.ttf");
}
@font-face{
font-family:myfont8;
src: url("fonts/Raleway-Light.ttf");
}
@font-face{
font-family:myfont9;
src: url("fonts/SourceSansPro-Regular.ttf");
}
/* Structura */
* {
box-sizing: border-box;
}
body{
background-color:white;
margin:0;
}
header{
background-color:black;
height:100vh;
}
main{
}
footer{
background-color:black;
float:bottom;
text-color:white;
width:100%;
text-align:center;
padding:30px;
}
/* Side-nav */
/* Nav-bar */
ul {
list-style-type: none;
margin: 0;
padding: 20px;
overflow: hidden;
position:fixed;
top:0;
width:100%;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.menu_white {
color: white;
}
.menu_black {
color: black;
}
/* Div-ul in care e nav-bar-ul*/
.nav {
}
/* Strike-through */
.strikethrough {
display: inline-block;
position: relative;
transition: all 0.5s cubic-bezier(.55, 0, .1, 1);
}
.strikethrough:after {
content: '';
position: absolute;
display: block;
width: 100%;
height: 2px;
box-shadow: 0 1px rgba(255,255,255,0.6);
margin-top: -0.7em;
background: white;
transform-origin: center left;
animation: strikethrough 1s 0.5s cubic-bezier(.55, 0, .1, 1) 1;
transition: transform 0.5s cubic-bezier(.55, 0, .1, 1);
}
@keyframes strikethrough {
from {
transform: scaleX(0);
}
to {
transform: scaleX(1);
}
}
.strikethrough:hover:after {
transform: scaleX(0);
transform-origin: center right;
}
/* Paragrafe */
p{
font-size:140px;
text-align:center;
text-color:white;
font-family: 'myfont2', sans-serif;
}
p2{
font-size:17px;
text-align:center;
text-color:white;
font-family: 'myfont6', sans-serif;
}
p3{
font-size:90px;
text-align:center;
text-color:white;
font-family: 'myfont8', sans-serif;
}
p4{
font-size:17px;
text-align:center;
text-color:white;
font-family: 'myfont8', sans-serif;
}
p5{
font-size:17px;
text-align:center;
text-color:white;
font-family: 'myfont9', sans-serif;
}
p6{
font-size:90px;
text-align:center;
text-color:white;
font-family: 'myfont8', sans-serif;
}
/* test */
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/mystyle.css">
</head>
<body>
<header>
<div class="nav">
<ul>
<li>
<a href="#home">
<span class="strikethrough">
<p2>Home</p2>
</span>
</a>
</li>
<li>
<a href="#news">
<span class="strikethrough">
<p2>Projects</p2>
</span>
</a>
</li>
<li>
<a href="#contact">
<span class="strikethrough">
<p2>Contact</p2>
</span>
</a>
</li>
<li style="float:right">
<a href="#about">
<span class="strikethrough">
<p2>About</p2>
</span>
</a>
</li>
</ul>
</div>
<br><br><br><br><br><br><br><br><br>
<div class="nume">
<p3><font style="color:white;padding-left:40px;">C Î R S T O I U   B O G D A N</font></p3>
</div>
<br><br><br><br><br><br><br><br>
<div class="nume2">
<p6><font style="color:white;padding-left:500px;">-  W h o   a m   I ?  - </font></p6>
</div>
</header>
<main>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
<p>Test</p>
</main>
<footer>
<div class="nume2" style="padding:15px;">
<p4><font style="color:white;text-align:center">Cîrstoiu Bogdan - 2018<br> All rights reserved</font></p4>
</div>
</footer>
<script src="/scripts/scripts.js"></script>
</body>
</html>
我想要的只是一种简单的方法,它行得通,我已经尝试过一些,但是它们却行不通。上面显示的代码中尝试这样做,但是无效。如果您有任何建议,请让我知道 。谢谢!
编辑:另外,如果有人对我如何使这种响应方式有所帮助,请让我知道或指导我学习教程!
答案 0 :(得分:0)
您可以使用导航的高度和y轴位置来计算您在滚动时添加具有所需样式的类的时间。
这样的事情。
document.addEventListener('scroll', function(){
var height = document.querySelector(".section-1").offsetHeight;
// your nav
var nav = document.querySelector("nav");
var ypos = window.pageYOffset;
if(ypos > height) {
nav.classList.add("fade-in"); //if scrolled passed
} else {
nav.classList.remove("fade-in");
}
});
fade-in
将具有您想要的background-color
。
希望有帮助。在这里阅读有关这些位置属性的更多信息,例如:link
希望会有所帮助。
答案 1 :(得分:0)
您正在尝试更改JavaScript中元素nav的颜色。您确实应该更改导航栏中嵌套的段落标签的颜色。
我做了一个简单的示例来展示所需的行为,为简单起见,我删除了字体。
解决此问题的另一种方法是使导航栏变粘。
n = high - low + 1
sum_between = n * (low + high) / 2
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll > 50) {
var element = $('.p2');
$(".p2").css("color", "black");
} else {
$(".p2").css("color", "white");
}
})
body {
background-color: white;
margin: 0;
}
header {
background-color: #6495ED;
height: 100px;
}
footer {
background-color: black;
float: bottom;
color: white;
width: 100%;
text-align: center;
padding: 30px;
}
/* Side-nav */
/* Nav-bar */
ul {
list-style-type: none;
margin: 0;
padding: 20px;
overflow: hidden;
position: fixed;
top: 0;
width: 100%;
}
li {
float: left;
}
li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.menu_white {
color: white;
}
.menu_black {
color: black;
}
.strikethrough {
display: inline-block;
position: relative;
transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
}
.strikethrough: after {
content: '';
position: absolute;
display: block;
width: 100%;
height: 2px;
box-shadow: 0 1px rgba(255, 255, 255, 0.6);
margin-top: -0.7em;
background: white;
transform-origin: center left;
animation: strikethrough 1s 0.5s cubic-bezier(0.55, 0, 0.1, 1) 1;
transition: transform 0.5s cubic-bezier(0.55, 0, 0.1, 1);
}
@keyframes strikethrough {
from {
transform: scaleX(0);
}
to {
transform: scaleX(1);
}
}
.strikethrough:hover: after {
transform: scaleX(0);
transform-origin: center right;
}
/* Paragrafe */
p {
font-size: 140px;
text-align: center;
color: black;
}
.p2 {
font-size: 17px;
text-align: center;
color: white;
}
.p3 {
font-size: 90px;
text-align: center;
color: black;
}
.p4 {
font-size: 17px;
text-align: center;
color: black;
}
.p5 {
font-size: 17px;
text-align: center;
color: black;
}
.p6 {
font-size: 90px;
text-align: center;
color: black;
}