如何使用javascript切换元素的不透明度
How to toggle the opacity of Elements using javascript
我有一个div,它有14个子div和一些内容。现在我需要的是,在加载时,它应该显示不透明度为1的所有14个div,但当我将鼠标悬停在其中一个div上时,其他div的不透明度应该降低50%。只有当前的一个应该具有完全不透明度。类似地,当我现在将鼠标移到另一个div上时,除了当前的div,其他div的不透明度应该降低50%。
我怎么能使用javascript做到这一点,而且我不想使用任何库(jquery)。
更新:成功了!:)
/*onmouseover*/
function showCurrentDimOthers(el) {
var otherElements = document.getElementById("see_all_content_holder").childNodes;
for (var o = 0; o < otherElements.length; o++) {
otherElements[o].style.opacity = 0.5;
otherElements[o].style.filter = 'alpha(opacity=5)';
}
el.style.opacity = 1.0;
el.style.filter = 'alpha(opacity=10)';
}
/*onmouseout*/
function dimCurrent(el) {
el.style.opacity = 0.5;
el.style.filter = 'alpha(opacity=5)';
}
为什么这么复杂?据我所见,CSS已经足够了:
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
ul:hover li {
opacity: 0.5;
}
ul li:hover {
opacity: 1;
}
http://jsfiddle.net/fkAyb/
您可以通过以下方式更改不透明度:
document.getElementById('someid').style.opacity = '0.5';
其余部分使用onmouseover和onmouseout事件。
一个我没有尝试过的想法:
- 给每个div一个id,例如"div-1"、"div-2"
- 将它们全部存储在一个数组中
- 监听onmouseover事件,循环数组并更改数组中与当前Id不同的所有元素的不透明度
- 监听onmouseout事件并将所有不透明度恢复为1
如果还不够清楚,请告诉我。
相关文章:
- 在js中访问元素时不透明度和样式未定义,但在css中定义
- 更改整个类的不透明度元素
- 悬停父元素时如何更改子元素的不透明度
- 如何使用Javascript获得元素的不透明度
- 降低非悬停元素的不透明度
- IE 9 在子元素上具有不透明度,我无法使用捕获来阻止它
- 已检查使用 JS 更改另一个元素的不透明度
- 如何使用 javascript 动态更改元素的不透明度
- 逐渐降低不透明度,因为元素是通过jQuery UI .draggable()拖动的
- jQuery 绑定以切换元素的不透明度
- 如何正确评估“if”语句的元素可见性不透明度隐藏性
- 如果元素的不透明度=1 不起作用
- 当用户向下滚动页面时增加元素不透明度
- 当选择元素上方的元素(不透明度:0.001)时,元素后面的 rails/css/突出显示文本
- 使用Jquery更改拖动过程中元素的不透明度
- Raphael js - 在组上动画不透明度,同时保留单个元素的不透明度
- 基于窗口宽度滚动时淡入元素不透明度
- 不透明度为0的fadeIn()元素
- 我已经将背景颜色设置为白色,但是父元素的不透明度如何影响它
- 如何使用javascript切换元素的不透明度