html - 如何使单击按钮的效果持续 0.5 秒?

标签 html css css-animations

我想做

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>

关于html - 如何使单击按钮的效果持续 0.5 秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59593585/

相关文章:

html - img 更改父 div 的位置

javascript - 命名 html blob url 以便于引用

css - 如何淡出第一个背景图像?

javascript - 如果之前滚动过页面,则拖动时的 Angular ui-sortable 偏移量

html - 当用户滚动到页面部分时触发 CSS 动画

javascript - 停止在 css 上旋转动画

php - 使表单适合屏幕 Bootstrap

html - 在 Rails link_to 中添加 span 标签

css - 了解这些列表选择器的差异

html - 为什么我的网站链接不显示预览?