html - 如何使单击按钮的效果为 0.5 秒?
问题描述
我要实现
background-color: green;
border: 5px solid green;
对于一个按钮,点击后只有 0.5 秒的效果,为点击设置动画。我该怎么做?
解决方案
您需要使用一些 JavaScript 来检测点击并更改样式。您可以使用 CSS 动画,但您仍然需要 JavaScript 来触发它,所以我不确定是否值得努力让它在 CSS 中工作:
function setStyles(el, styles) {
Object.entries(styles).map(
([property, value]) => el.style[property] = value
)
}
const btn = document.querySelector("button")
btn.addEventListener("click", () => {
// capture original styles
const origStyles = {
background: btn.style.background,
border: btn.style.border,
}
// set temp styles
setStyles(btn, {
background: "green",
border: "5px solid green",
})
// reset original styles after 0.5 seconds
window.setTimeout(() => setStyles(btn, origStyles), 500)
})
<button>Click Me</button>
推荐阅读
- c++ - 如何在 C++ 中使用 Goertzel 库和 FastLED 制作 Arduino LED 音频可视化器
- php - 曾经有效的 PHP-FPM 解决方案现在为所有子页面返回 404,索引页面仍然有效
- reactjs - React + Material-UI:列表应该有一个唯一的“关键”道具
- javascript - nodejs中两个数组之间的项目搜索
- c# - 如何按时间间隔有选择地接收 Azure 服务总线消息?
- java - NetBeans 中与 Maven 的跨项目依赖关系
- c++ - 有关矩阵的代码错误导致分段错误(核心转储)
- ng-bootstrap - 当使用 enter 键打开新的 NgbDropdowns 时,如何关闭先前打开的 NgbDropdowns?
- haskell - 如何在 Haskell 中定义一系列类型相关的函数
- intellij-idea - IntelliJ 使用 $MODULE_WORKING_DIR$ 运行 Scalatest?