【问题标题】:Setting CSS Animation Iteration Count using jQuery使用 jQuery 设置 CSS 动画迭代次数
【发布时间】:2015-04-29 21:36:58
【问题描述】:

我创建了一个名为Bootstrap Notify 的插件。我建议使用Animate.css 来控制通知的动画。有人报告了Glyphicons Pro 的问题,通知会重复 Animate.css 的动画进入和退出动画。我最近注意到这个问题的原因是因为 Animate.css 和 Glyphicons Pro 都使用了一个类似的类,称为animated

Animate.css 没有设置animation-iteration-count,所以它默认为1,而Glyphicons Pro 将animation-iteration-count 设置为infinite

我试图强制我的插件将animation-iteration-count 设置为1,这样通知就不会一遍又一遍地重复它的动画。我正在使用 jQuery 来设置通知的 css。

我尝试使用

var css = { 
        animationIterationCount: 1
    }

我也试过

var css = { 
        WebkitAnimationIterationCount : 1,
        animationIterationCount: 1
    }

然后我设置通知 css

$notify.css(css)

但是,如果我检查网站上的通知,我注意到 animation-iteration-count 没有设置。

刚刚发现如果我使用 JavaScript 而不是 jQuery 设置它,它似乎工作得很好。

例如以下作品:

$notify[0].style.WebkitAnimationIterationCount = 1;
$notify[0].style.animationIterationCount = 1;

所以我的问题是,你可以使用 jQuery 设置 animation-iteration-count 吗?如果可以,你如何设置它?

【问题讨论】:

  • 你不能只加载animate.css文件之后 Glyphicons Pro one???
  • @A.Wolff 这无关紧要,因为 animate.css 没有设置 animation-iteration-count 而是 Glyphicons Pro。因此,即使您要在其后添加 animate.css,animated 类仍将使用 Glyphicons Pro 中的 animation-iteration-count
  • 您确定$notify 返回任何匹配的元素吗?将元素添加到 DOM 后,您会调用它吗?也许,这是关于浏览器如何处理 CSS 动画的问题。在添加动画类之前,我会尝试将 CSS 属性设置为元素

标签: javascript jquery css animation


【解决方案1】:

jQuery 需要与 css 属性完全相同的名称。试试这个:

var css = { 
    'animation-iteration-count': 1
}

$notify.css(css)

最好的办法是使用单独的 CSS 文件来覆盖 Glyphicons Pro 规则,而不是使用 javascript。

.glyphicons.animate {
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
}

【讨论】:

  • css() 方法支持属性驼峰表示法,如 OP 发布的代码中一样,所以我猜 webkitAnimationIterationCount: 1, 相当于 '-webkit-animation-iteration-count': 1, 但我不确定在这种特定情况下,尽管因为供应商前缀
  • 刚试过。该插件仍在添加css 之外的其他样式,例如displaytransition,但它没有设置animation-iteration-count
  • 我试图阻止使用 css 文件,因为我的插件需要的规则数量有限。我的插件旨在使用引导程序进行主题化,我的自定义规则主要是放置和动画。
  • @RobertE.McIntosh 在样式方面,您应该始终更喜欢 CSS 解决方案。也就是说,您可以在 HTML 中使用 STYLE 元素。我不知道为什么它不能成为你的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 2013-02-10
  • 1970-01-01
相关资源
最近更新 更多