You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery控制CSS动画的时长(animation-duration)?

可以用jQuery修改CSS定义的动画时长(animation-duration)吗?

当然可以,有两种常用实现方式,你可以根据需求选择:

1. 直接修改元素内联样式(针对单个/部分元素)

这种方式适合给特定元素动态调整动画时长的场景,比如鼠标悬停时修改、离开时恢复。用jQuery的.css()方法就能直接设置元素的动画时长属性(要兼顾浏览器前缀版本):

// 给所有.hvr-pulse-grow元素绑定hover事件
$('.hvr-pulse-grow').hover(
  // 鼠标进入时设置新动画时长
  function() {
    $(this).css({
      '-webkit-animation-duration': '0.5s',
      'animation-duration': '0.5s'
    });
  },
  // 鼠标离开时恢复原CSS时长(可选操作)
  function() {
    $(this).css({
      '-webkit-animation-duration': '',
      'animation-duration': ''
    });
  }
);

如果要针对focus或active状态调整,也可以结合.focus()、.blur()、.mousedown()这类对应事件来设置样式。

2. 动态修改全局样式表(批量生效)

要是想让所有匹配.hvr-pulse-grow:hover/.focus/.active的元素(包括之后动态添加到页面的元素)都用新时长,推荐直接添加全局样式规则:

// 用jQuery创建并插入新样式
$('<style>')
  .text(`
    .hvr-pulse-grow:hover, .hvr-pulse-grow:focus, .hvr-pulse-grow:active {
      -webkit-animation-duration: 0.5s !important;
      animation-duration: 0.5s !important;
    }
  `)
  .appendTo('head');

这里的!important是为了确保新规则能覆盖原CSS定义——如果原规则优先级和新规则一致,后加载的样式会生效;加!important能进一步提升优先级。

注意事项

  • 必须同时设置带浏览器前缀的属性(比如-webkit-animation-duration)和标准属性,保证兼容性;
  • 如果原CSS规则用了!important,内联样式或新样式规则也得加!important才能覆盖;
  • 内联样式优先级高于普通类选择器样式,所以第一种方法会直接覆盖原CSS的动画时长。

内容的提问来源于stack exchange,提问作者Komskie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:16:20