我已经搜索了堆栈溢出和网络,但我只是找不到答案,至少我不理解。据我对这个主题(jquery和java)的了解有限。所以基本上我想在某些功能发生后更改其中一个CSS类(#navbar a)。
我试图在脚本中实现这一点,但没有用:
$('link[href="Style.css"]').addClass('#navbar a').css('width', '20px');
这是javascript / jQuery:
<script>
window.onscroll = function() {myFunction()};
var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
navbar.style.align = 'auto';
navbar.style.width = '100%';
$('link[href="Style.css"]').addClass('#navbar a').css('width', '20px');
} else {
navbar.classList.remove("sticky");
navbar.style.width = '80%';
}
}
</script>
这是css文件/样式文件:
#navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
width: 25%;
text-decoration: none;
font-size: 35px;
padding: 20px 0px;
}
这是整个html代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width;initial-scale=1;height=device">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="Style.css">
</head>
<body style="background:#101010">
<div class="header">
<h2>FELLE</h2>
</div>
<div id="navbar">
<a class="active" href="">Hjem</a>
<a href="Historie.html">Historie</a>
<a href="Hyttefelt.html">Hyttefelt</a>
<a href="Annet.html">Annet</a>
</div>
<div class="container" align="middle">
<img src="Bilder/Felle_Butikk.jpg" alt="Felle butikk"/>
<object data="Tekster/Felle_Butikk.txt"></object>
<img src="Bilder/Solhomfjell.jpg" alt="Solhomfjell i nissedal"/>
<object data="Tekster/Solhomfjell.txt"></object>
</div>
<script>
window.onscroll = function() {myFunction()};
var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
navbar.style.align = 'auto';
navbar.style.width = '100%';
$('link[href="Style.css"]').addClass('#navbar a').css('width', '20px');
} else {
navbar.classList.remove("sticky");
navbar.style.width = '80%';
}
}
</script>
</body>
</html>
答案 0 :(得分:1)
<p slot="desc">{{ desc_01 }}</p>
$('link[href="Style.css"]').addClass('#navbar a').css('width', '20px');
您具有上面的代码,但这不会修改样式表。它修改了link元素。
由于该元素最初不可见,因此为其设置宽度没有任何作用。
您可以修改实际元素的<link href="Style.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
属性(并完全包含样式表):
style
或者您可以see this question自行更改CSS规则。