jquery - 当用户在框外单击时,如何创建平滑的边框强调?
问题描述
当用户在框外单击时,我试图强调一个框(这是一个错误框)。
我一直在尝试使用 jquery 制作动画,然后也尝试使用 css 转换,但它们并没有得到我想要的平滑结果。我只想简单地强调用户重新关注警报。就像任何 Windows 或 Apple 警报一样,您单击警报旁边的某个位置,它会发出声音并强调该框。
一旦用户在外面点击,我尝试transition:border linear 0.2s;
然后用 jquery 创建一个边框。
popup = $("#popup");
$(window).on("click", function(e) {
if (e.target.id != "popup") {
popup.css("border", "red solid 2px");
setTimeout(function() {
popup.css("border", "none");
}, 250);
}
})
#popup {
display: block;
position: fixed;
left: 50px;
top: 50px;
padding: 20px;
background-color: black;
color: white;
border: white 1px solid;
transition: border linear 0.2s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="popup">Example.</div>
如果有人有一个平稳的解决方案,可以提供柔和的重点或链接到我可以找到方法的地方,那将不胜感激。一如既往,感谢您的任何帮助或建议!
解决方案
我建议使用轮廓而不是边框。
popup = $("#popup");
$(window).on("click", function(e) {
if (e.target.id != "popup") {
popup.css("outline-width", "10px");
setTimeout(function() {
popup.css("outline-width", "inherit");
}, 250);
}
})
#popup {
display: block;
position: fixed;
left: 50px;
top: 50px;
padding: 20px;
color: #fff;
background-color: black;
outline: solid 0px red;
transition: outline 0.2s linear;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="popup">Example.</div>
推荐阅读
- python - 在不覆盖整个字典的情况下合并字典?
- tensorflow.js - 所有输入和输出的权重是否共享?
- mysql - 当金额相同时,MySQL按相同类别的数量排序不起作用
- javascript - 有没有办法在一个 onClick 事件中发送道具和功能?
- postgresql - 以“x 天前”格式返回 Postgres 时间戳
- python - 如何用另一个张量切片 PyTorch 张量?
- python - 任何人都知道 Python 正则表达式可以将 2 位年份解析为 4 位数字,例如 77 到 1977 年和 04 到 2004 年?
- ios - 如何将 UIImageVIew 实时移动到 UILabel 的位置?
- java - 在 if 语句中比较 AssertNull
- php - 如何测试一个对象是用 PHP 工厂的正确构造函数参数创建的?