【发布时间】:2017-11-01 18:56:03
【问题描述】:
我的解决方案:
我将 display 样式更改为 visibility 样式,因为此解决方案最适合我的网页。谷歌搜索“显示块覆盖动画”可以找到许多其他解决方案。接受的答案是给我关键字以便我可以使用 Google 的答案。
原帖:
我使用 CSS 动画而不是 JQuery 动画制作了 fadeIn 和 fadeOut 函数来为不透明度设置动画。
单击图像应使弹出窗口淡入,图像淡出超过 300 毫秒。
单击正文中的任何位置应使弹出窗口淡出,图像淡出超过 300 毫秒。
目前fadeOut有效,但fadeIn似乎忽略了过渡时间,立即出现。为什么fadeIn无效?
JavaScript:
function fadeIn(elem) {
elem.css("display", "block");
elem.css("opacity", 1);
}
function fadeOut(elem) {
elem.css("opacity", 0);
setTimeout(function() {
elem.css("display", "none");
}, 300);
}
$("body").on("click", function(ev) {
if (ev.target != $("#btn")[0] && $("#popup").is(":visible")) {
fadeIn($("#btn"));
fadeOut($("#popup"));
}
});
$("#btn").on("click", function(ev) {
fadeIn($("#popup"));
fadeOut($("#btn"));
});
CSS:
#btn {
position: absolute;
top: 100px;
left: 10px;
transition: 0.3s;
opacity: 1;
}
#popup {
position: absolute;
background-color: black;
display: none;
color: red;
z-index: 1;
padding: 0 1em;
transition: 0.3s;
opacity: 0;
}
【问题讨论】:
标签: javascript html css