如何使用javascript按类隐藏元素(平滑转换)?
我有一组div共享相同的类(optionClass)。显示器设置为块。当用户单击它们时,执行以下javascript函数,显示更改为none如何使用javascript按类隐藏元素(平滑转换)?,javascript,css-transitions,fadeout,Javascript,Css Transitions,Fadeout,我有一组div共享相同的类(optionClass)。显示器设置为块。当用户单击它们时,执行以下javascript函数,显示更改为none function hideBlockElementsByClass(className) { var elements = document.getElementsByClassName(className); for(i in elements) { elements[i].style.display = "non
function hideBlockElementsByClass(className)
{
var elements = document.getElementsByClassName(className);
for(i in elements)
{
elements[i].style.display = "none";
}
}
“显示块”和“无”之间的过渡非常粗糙,我想做一个更平滑的过渡。实现这一目标的最佳策略是什么?试试这种方法
HTML
<div class = "image" onclick = "eff()"></div>
脚本
function eff() {
var k = document.getElementsByClassName("image");
k[0].className = "transition";
}
试试这个方法
HTML
<div class = "image" onclick = "eff()"></div>
脚本
function eff() {
var k = document.getElementsByClassName("image");
k[0].className = "transition";
}
而Sridhar提供了一个很好的CSS3解决方案,其他方面提到Jquery 在这里,您可以找到一个纯javascript/CSS解决方案:
而Sridhar提供了一个很好的CSS3解决方案,其他方面提到Jquery 在这里,您可以找到一个纯javascript/CSS解决方案: 使用CSS3:
.className {
opacity: 0;
visibility: hidden;
-webkit-transition: visibility 0.2s linear,
opacity 0.2s linear;
-moz-transition: visibility 0.2s linear,
opacity 0.2s linear;
-o-transition: visibility 0.2s linear,
opacity 0.2s linear;
}
.className:hover {
visibility: visible;
opacity: 1;
}
使用CSS3:
.className {
opacity: 0;
visibility: hidden;
-webkit-transition: visibility 0.2s linear,
opacity 0.2s linear;
-moz-transition: visibility 0.2s linear,
opacity 0.2s linear;
-o-transition: visibility 0.2s linear,
opacity 0.2s linear;
}
.className:hover {
visibility: visible;
opacity: 1;
}
在普通javascript中尝试:(可以在IE10、chrome、firefox、safari、android和ios上使用)
函数hideBlockElementsByClass(类名){
var elements=document.getElementsByClassName(className);
console.log(elements.length)
对于(var i=0;i
在普通javascript中尝试:(适用于IE10、chrome、firefox、safari、android和ios)
函数hideBlockElementsByClass(类名){
var elements=document.getElementsByClassName(className);
console.log(elements.length)
对于(var i=0;i < /代码>您可以尝试转换<代码>不透明度属性,而不是<代码>显示< /代码>(并且显然也相应地更改JS)。您考虑过jQuery?$(''*元素[I] ID))fadeOut(“慢”);人们忘记了Javascript是如何工作的,所有这些简单的Jquery解决方案。在我看来,在JQuery之前先学习Javascript,所以让我们给他一个他问的Javascript答案;)我现在需要纯javascript/css解决方案。使用jQuery只需$(“.optionClass”).fadeOut(1000);您可以尝试转换<代码>不透明度>代码>属性,而不是<代码>显示< /代码>(并且显然也相应地改变了JS)。您考虑过jQuery?$(''*元素[i]?id)):fadeOut(“慢”);人们忘记了Javascript是如何工作的,所有这些简单的Jquery解决方案。在我看来,在JQuery之前先学习Javascript,所以让我们给他一个他问的Javascript答案;)我现在需要纯javascript/css解决方案。使用jQuery只需$(“.optionClass”).fadeOut(1000);对于纯javascript,您提供的链接非常棒。感谢对于纯javascript,您提供的链接非常棒。感谢简单但有效!谢谢只需要替换元素[i].style.display=“无”;到元素[i].className+=“className”;并将该类添加到css中,效果良好。简单但有效!谢谢只需要替换元素[i].style.display=“无”;到元素[i].className+=“className”;并将该类添加到css中,效果良好。