嗨,伙计们!新来的!希望将来能为社区贡献一笔相当可观的金额。但首先,我需要一个我认为相当简单的东西!如何使用jQuery更改SVG形状的颜色?
我一直都是关于网页的设计方面,所以主要集中在HTML和CSS。我最近才开始学习JavaScript/jQuery,所以请耐心等待,哈哈!
我在使用jQuery改变SVG形状的颜色时遇到了一些麻烦。基本的想法是,当用户向下滚动页面时,某些元素会改变颜色。 HTML元素会按预期更改,但SVG属性不会。我读过一些关于SVG DOM与HTML DOM不同的东西,但是不能真正理解它吗?一个小的解释以及任何帮助都不会被忽略!
这里是我的HTML:
<header>
<div id="headercontainer">
<object id="logo" type="image/svg+xml" data="images/kennyheardlogo.svg"></object>
<nav><a id="homelink" href="index.html">HOME</a> | <a id="aboutlink" href="index.html">ABOUT</a> | <a id="worklink" href="index.html">WORK</a> | <a id="sociallink" href="index.html">SOCIAL</a></nav>
</div>
</header>
这里是我的CSS:
header {
position: fixed;
z-index: 1;
width: 100%;
height: 150px;
background-color: #ffffff;
-webkit-box-shadow: 0px 5px 10px 0px rgba(0,0,0,0.5);
-moz-box-shadow: 0px 5px 10px 0px rgba(0,0,0,0.5);
box-shadow: 0px 5px 10px 0px rgba(0,0,0,0.5);
opacity: 0.8;
-webkit-transition: background-color 0.5s ease;
-moz-transition: background-color 0.5s ease;
transition: background-color 0.5s ease;
}
.headerfade {
background-color: #000000;
}
nav {
position: absolute;
top: 65px;
right: 40px;
width: 480px;
height: auto;
color: #000000;
text-align: center;
letter-spacing: 10px;
font-size: 10px;
}
nav, nav a {
-webkit-transition: color 0.5s ease;
-moz-transition: color 0.5s ease;
transition: color 0.5s ease;
}
.navfade {
color: #ffffff !important;
}
#icon {
fill: #000000;
}
.iconfade {
fill: #ffffff;
}
#letterk, #letterh {
fill: #ffffff;
}
#text path {
fill: #000000;
}
这里是我的jQuery:
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 350) {
$("header").addClass("headerfade");
$("nav, nav a").addClass("navfade");
$("#icon").addClass("iconfade");
} else {
$("header").removeClass("headerfade");
$("nav, nav a").removeClass("navfade");
$("#icon").removeClass("iconfade");
}
});
的“#icon”的初始颜色是黑色,但是当用户从页面顶部滚动350px时,我想将颜色更改为白色。这就是我对“标题”和“导航”元素所做的完美工作。那么,有什么想法?
我希望我没有遗漏一些尴尬明显的东西,哈哈!
感谢您提供任何帮助,伙计们!
因此,当向下滚动时,添加/删除类别适用于标题和导航栏,但对#icon不起作用?当你向下滚动时,你有没有检查过该课程是否添加到#icon中? – artm 2014-09-02 00:12:09
确切的说,是的,它不适用于#icon。我已经使用Safari的JavaScript分析器进行了检查,并将该类添加到标题和导航栏中,但不添加到SVG文件中的#icon。 – 2014-09-02 00:18:27
我认为问题在于你使用的是'object'元素而不是'svg'元素。尝试使用所有'svg'代码并将其放入DOM – haxxxton 2014-09-02 00:22:30