【问题标题】:How to use .animate() to override jqm listview theme styling如何使用 .animate() 覆盖 jqm listview 主题样式
【发布时间】:2013-10-08 01:58:05
【问题描述】:

我有一个 jqm 列表视图。当用户单击列表视图中的其中一个 li 时,我想为 li 设置动画,使其背景颜色慢慢变为红色。

我似乎无法完成这项工作,尽管我可以使用.addClass(".red") 立即将 li 的背景色变为红色。这种方法可以工作,但我想为 addClass() 建立一个较慢的持续时间,这也不起作用。

查看this fiddle 了解这两种方法

【问题讨论】:

  • 也许其中一些答案可以帮助stackoverflow.com/questions/190560/…
  • @Tim,感谢您指出我在最初搜索时错过的那些答案。许多答案都是旧的(2-5 年),并指向 jQuery 彩色动画插件。据我了解,jQuery UI 多年来一直支持彩色动画,并且不再支持该插件。无论如何,jQuery 的 .animate() 应该可以工作,但由于某种原因,彩色动画似乎无法在 jqm 列表视图中工作,如小提琴所示。
  • 这听起来可能很简单,但是您是否考虑过在 <li> 元素上使用 CSS 过渡?可能不是您正在寻找的答案,但可能有用。

标签: jquery-ui jquery-mobile


【解决方案1】:

来自jQuery docs

所有动画属性都应动画为单个数值, 除非如下所述;大多数非数字属性不能 使用基本 jQuery 功能(例如,宽度、高度、 或 left 可以设置动画,但 background-color 不能设置,除非 使用 jQuery.Color() 插件)。

您可以使用 CSS3 过渡:

.red {

    background-color:red;
    -webkit-transition:background-color 2s;
    -moz-transition:background-color 2s;
    -o-transition:background-color 2s;
    transition:background-color 2s
}

这是JSFiddle

【讨论】:

  • 我想我误读了文档。 . .我遇到了很多 JQ 彩色动画示例,我认为这是可能的。原来他们都在使用 jQuery.Color()。正如您所指出的,(以及上面的@Terry)CSS 翻译可以解决这个问题。起初我想不出一个反转动画的好方法,但后来我发现了this SO question,它填补了我的知识空白。谢谢!
  • 很高兴你搞清楚了!
猜你喜欢
  • 2020-12-04
  • 2019-05-21
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多