javascript”;具有超时的切换效果”;窃听是因为一个“;不透明度:0〃;
javascript "toggle effect with timeout" bugging because an "opacity:0"
我开发了一个小javascript来为对象添加切换效果(是的,我知道jquery会这样做,但我不想为此加载jquery)。
我已经完成了以下代码:
function nice_toggling(button_id, container_id) {
var container_div = document.getElementById(container_id)
var left_margin = container_div.style.marginLeft
// create the css classes so no extra css be necessary
var css_clases = document.createElement('style');
css_clases.type = 'text/css';
css_clases.innerHTML = '.hidden1 {display: none;} .hidden2 {opacity: 0}';
document.getElementsByTagName('head')[0].appendChild(css_clases);
container_div.className = 'hidden1 hidden2'
container_div.style.height= '0px'
// This avoids displaying the div
setTimeout(function () {
container_div.style.transition='all .10s linear'
}, 50);
document.getElementById(button_id).onclick=function () {
if (container_div.className.indexOf('hidden1') > -1) {
container_div.style.marginLeft= left_margin
container_div.className = container_div.className.replace(/hidden1/g,'')
setTimeout(function () {
container_div.className = container_div.className.replace(/hidden2/g,'')
container_div.style.height = 'auto'
}, 5);
} else {
container_div.className = container_div.className+' hidden2'
setTimeout(function () {
container_div.className = container_div.className+' hidden1'
setTimeout(function () {
container_div.style.height= '0px'
container_div.style.zIndex = '-1'
}, 290);
}, 5);
}
}
}
它工作得很好,只是在我的网站上,我使用了一个div,它在nice_toggling
函数处理的容器后面有链接。正因为如此,无法点击div的第一个链接。
我在jsfinddle 上重新创建了一个最小的工作示例
有趣的是,当我设置{opacity: 1}
时,代码运行良好!(当然,我们可以看到"隐藏文本")
我真的很想了解为什么这个代码不起作用,以及是否有更好的解决方案,只设置不透明度。我想避免用户点击"隐藏链接"。
我尝试设置margin-left: -1000px
,但代码不太好,"切换效果"有点难看。
谢谢你的帮助!
您需要将"overflow:hidden"添加到hidden2类中。即使高度为0,内容仍然与容器重叠并与链接重叠。
这与溢出无关,您的默认css覆盖了您的hidden1类
#rss-filters {display: block;}
这一行否定了javascript添加的hidden1类。
相关文章:
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何更改文本框控件的不透明度值
- 如何将一个函数附加到一个不存在的元素上
- 在js中访问元素时不透明度和样式未定义,但在css中定义
- Greenstock不透明度动画从0到1再返回
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- 如何在html画布上替换ByImage()而不是drawImage()(忽略不透明度)
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- 同一事物的两个函数,一个崩溃,另一个不崩溃,为什么
- 选中复选框时降低父级的不透明度
- 如何使用画布更改图像的不透明度,然后将其加载到画布中的另一个图像上?-HTML
- 将一个图像放在另一个图像上方,不具有不透明度
- 已检查使用 JS 更改另一个元素的不透明度
- javascript”;具有超时的切换效果”;窃听是因为一个“;不透明度:0〃;
- Javascript的风格.不透明度从字符串I'm给出中删除一个0
- 我有一个jQuery代码,其中不透明度随着光标的下降而上升.我该如何反转
- 如何设置一个geojson对象或图层的不透明度?
- 改变不透明度的其他图像/链接按钮,除了一个选择