如何解决结合onClick弹出窗口和fadeIn
| 现在,我有一个非常简单的onClick弹出函数,用于根据ID对特定的div设置setVisibility:<script language=\"JavaScript\">
function setVisibility(id,visibility) {
document.getElementById(id).style.display = visibility;
}
</script>
和html:
<a onclick=\"setVisibility(\'popup1\',\'block\');\">
<div id=\"popup1\">Content<a onclick=\"setVisibility(\'popup1\',\'none\');\"></div>
我想做的是为此添加一个简单的fadeIn(也许是淡出)。
我自己能做的就是在脚本中设置特定的标签。.但是我正在从事的项目将有数十个特定于ID的弹出窗口,因此您可以看到它如何变得凌乱。
如果有人可以帮助淡入淡出上面的脚本,我将不胜感激。谢谢!
解决方法
使用
.fadeIn()
。
$(\"#popup1\").fadeIn(\"slow\");
更多信息在这里:
http://api.jquery.com/fadeIn/
, 如果您只想淡入/淡出某个元素,则不一定需要使用jQuery。您可以用以下fadeIn
和fadeOut
函数调用代替问题中的setVisibility
函数。
function setOpacity(id,value) {
var obj = document.getElementById(id);
obj.style.opacity = value;
obj.style.filter = \'alpha(opacity=\' + value*100 + \')\'; // lte IE8
}
function fadeIn(id) {
for (var i=0; i<1; i+=0.1) {
setTimeout(\'setOpacity(\"\'+id+\'\",\'+i+\')\',(i*10)*100);
}
}
function fadeOut(id) {
for (var i=0; i<1; i+=0.1) {
setTimeout(\'setOpacity(\"\'+id+\'\",((1-i)*10)*100);
}
}
如果希望在不透明度达到0时完全隐藏元素(即display:none
),则可能需要修改setOpacity
函数。
但是,就目前情况而言,该代码相当麻烦,在HTML中内联分配了事件。如果由于任何原因无法使用JavaScript,则该页面可能会破裂,或看起来看起来很混乱/混乱。通过在页面加载时分配行为/事件,应该使这一点不引人注目。然后,您可以避免在初始事件调用中显式传递元素ID。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。