我创建了一个非常简单的javascript函数,当我将鼠标悬停在某些单词上时,具有某个id
的元素变得透明。这对我的img
代码工作正常,但div
具有相同ID但不会改变?
这是我的javascript:
function revealCategory1() {
document.getElementById('c2').style.opacity="0.3";
document.getElementById('c3').style.opacity="0.3";
document.getElementById('c4').style.opacity="0.3";
}
function revealCategory2() {
document.getElementById('c1').style.opacity="0.3";
document.getElementById('c3').style.opacity="0.3";
document.getElementById('c4').style.opacity="0.3";
}
function revealCategory3() {
document.getElem..............etc
function resetReveal() {
document.getElementById('c1').style.opacity="1";
document.getElementById('c2').style.opacity="1";
document.getElementById('c3').style.opacity="1";
document.getElementById('c4').style.opacity="1";
}
这个html正在调用:
<div class="bars">
<span class="categories" id="c1" onMouseOver="revealCategory1()" onMouseOut="resetReveal()">VIDEO</span>
<span class="categories" id="c2" onMouseOver="revealCategory2()" onMouseOut="resetReveal()">ANIMATION</span>
<span class="categories" id="c3" onMouseOver="revealCategory3()" onMouseOut="resetReveal()">DESIGN</span>
<span class="categories" id="c4" onMouseOver="revealCategory4()" onMouseOut="resetReveal()">WEB-DESIGN</span>
</div>
在页面上,这是完全正常的。图像变得透明。
<div class="logocontainer" >
<img class="logo" id="c1" src="images/DOSED-C1.png" />
<img class="logo" id="c2" src="images/DOSED-C2.png" />
<img class="logo" id="c3" src="images/DOSED-C3.png" />
<img class="logo" id="c4" src="images/DOSED-C4.png" />
</div>
但这不是,div
不透明。
<div class="maincontent">
<div id="c1" class="content" >VIDEO PIECE 1</div>
<div id="c2" class="content" >ANIMATION PIECE 1</div>
<div id="c3" class="content" >DESIGN PIECE 1</div>
<div id="c4" class="content" >WEB-DESIGN PIECE 1</div>
</div>
答案 0 :(得分:1)
您不能拥有两个(或更多)具有相同ID的元素。
让图片ID命名不同。即:
<img class="logo" id="c1_image" src="images/DOSED-C1.png" />
然后,对两个ID执行操作:
function resetReveal() {
document.getElementById('c1').style.opacity="1";
document.getElementById('c1_image').style.opacity="1";
另外,请从<spans>
元素的.bars
中删除这些ID。他们现在什么都不做。
<span class="categories" onMouseOver="revealCategory1()" onMouseOut="resetReveal()">VIDEO</span>
答案 1 :(得分:0)
很抱歉这么说,但这是一个非常常见的错误,但所有ID必须是唯一的。它的名称标签可以复制。
另一个想法是使用一个类元素和document.getElementsByClassName方法,然后回过头来返回挑选出你想要的那些元素的数组,对于那些不允许使用name标签的元素来说这是一个很好的元素。 / p>