jquery - 使用 jQuery 跳过 CSS 转换

标签 jquery css-transitions

我想在某些条件下跳过 CSS 转换。我不想在样式表中添加特殊的非过渡样式,或者在 JavaScript 中复制样式表的样式。到目前为止,我找到的最好的解决方案是

if (condition) {
  $el.css({'-webkit-transition-duration': '0s'});
  setTimeout(function() {
    $el.css({'-webkit-transition-duration': ''});
  }, 0);
};
$el.addClass('transitionClass');

(为了简洁起见,我省略了非 WebKit CSS。请在 http://jsfiddle.net/TrevorBurnham/zZBhx/ 上查看它的实际效果。)

我不喜欢这个,因为

  1. 很冗长,而且
  2. 它引入了潜在的竞争条件,例如如果队列中出现另一个超时,则会在 $el 上添加或删除类。

有更好的方法吗?

最佳答案

我知道你说过你不想在 CSS 中复制整个对象的样式,但是你有没有想过为过渡添加一个特殊的类?然后你可以在 HTML 中像这样定义元素:

<div id='#yourobject' class='transition'>

当你不想转换时,只需这样做(假设是 jQuery):

$('#yourobject').removeClass('transition');
.... do some manipulation here
$('#yourobject').addClass('transition');

关于jquery - 使用 jQuery 跳过 CSS 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9891524/

相关文章:

javascript - jquery 设置 attr() 输入对象

css - 纯CSS滚动动画

css - 转换 scale() 与不同浏览器中的宽度/高度

html - 鼠标悬停之前文本模糊?

javascript - 根据天数获取开始日期和结束日期

javascript - JQuery 停止我的导航栏到下拉菜单

jquery - 如何以编程方式将链接状态更改为 :active?

javascript - python : how to get hidden html contents from a HTML page

html - 如何使用 <i> 元素悬停容器 div

html - CSS 图像叠加在悬停时淡入