-webkit转换在后面跟着jQuery转换时没有效果
-webkit-transition has no effect when followed by transition with jQuery
问题
我正在为类似于这个答案的转换设置转换。在Chrome上,我发现当我用转换将css -webkit-transition
设置在transition
之前时,转换的转换不起作用(转换立即发生,而不是超过5秒-见稍后的演示(:
$img.css('-webkit-transition', '-webkit-transform 5s');
$img.css('transition', 'transform 5s');//move this line before the previous line and it works
解决方案
但以下内容确实有效:
将第二行移到第一行之前。
把第二行注释掉。
使用JavaScript(我希望这与jQuery代码完全相同,但它有效(:
img.style.setProperty("-webkit-transition", "-webkit-transform 5s"); img.style.setProperty("transition", "transform 5s");
使用css类,然后使用
addClass
:.transformStyle { -webkit-transition: -webkit-transform 5s; transition: transform 5s; ....
演示
您可以在此处看到这些不同案例的演示。
信息
当我在Chrome开发工具中查看jQuery案例的element.style时,我得到了:
-webkit-transform: perspective(400px) rotateX(30deg);
(根本没有过渡风格(。
对于带有注释行的jQuery,我得到:
-webkit-transition: -webkit-transform 5s;
transition: -webkit-transform 5s;
-webkit-transform: perspective(400px) rotateX(30deg);
对于JavaScript,我得到:
-webkit-transition: -webkit-transform 5s;
transition: -webkit-transform 5s;
-webkit-transform: perspective(400px) rotateX(60deg);
因此,当我在jQuery中注释掉这一行时,transform
似乎被设置为-webkit-transform
,这在JavaScript中也会发生,尽管我明确地将其设置为仅transform
。
问题
jQuery案例发生了什么?为什么设置
$img.css('transition', 'transform 5s');
会导致根本没有转换。为什么在-webkit-transition
线之前移动这条线会导致事情突然发生变化?为什么JavaScript的transform会自动设置为"-webkit transform"?
要么是我遗漏了什么,要么是Chrome/jQuery/JavaScript在暗中做什么。我有一个变通办法,那就是使用JavaScript,但我很想知道发生了什么,以防webkit/jQuery在其他地方突然出现。我环顾四周,在MDN页面上查看了转换,但没有发现任何内容。
根据您的第一个链接
p {
-webkit-transform: translate(-100%, 0);
-moz-transform: translate(-100%, 0);
-ms-transform: translate(-100%, 0);
-o-transform: translate(-100%, 0);
transform: translate(-100%, 0);
-webkit-transition: -webkit-transform 1s ease-in; /* Changed here */
-moz-transition: -moz-transform 1s ease-in;
-o-transition: -o-transform 1s ease-in;
transition: transform 1s ease-in;
}
a:hover + p {
-webkit-transform: translate(0, 0);
-moz-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
你不能直接在css中使用转换,因为你需要通过一些事件来更改它,即悬停,然后你也可以使用javascript在代码中获得转换。
上面的css将很好地工作,因为它改变了悬停时的转换事件。
- 如何在剑道UI中创建类转换效果
- 有没有一种方法可以从隐藏的可见性(CSS,JS)中获得淡入效果
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 有没有一种简单的方法可以将整数转换为等效文本.即:1变为1
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 有没有一种方法可以在three.js中自定义纹理之间的转换
- 是否有将基于字符串的JSON转换为Mongoose Schema对象实例的本地功能
- 这个javascript代码有什么错误,它有将数字转换为单词的功能
- 将一个html表转换为json对象并将其发送到php页面,该表有一个输入字段
- 在JavaScript中,有没有一种方法可以解析JSON,将数字转换为字符串
- 是否有一种功能齐全的范式语言可以转换为JavaScript
- 有没有办法将包含 es6 的字符串转换为 es5
- 正在将无序列表转换为选择..但有一个转折
- 有没有一种简单的转换方法可以将chrome消息传递转换为safari消息传递语法
- 转换效果不起作用jquery
- Codrops页面转换.如何创建单独的按钮,而不是列表项目的效果
- 当我尝试添加文本效果时,有东西阻止了JavaScript的运行'手风琴'在html文档中
- 如何开始新的速度.js只有当第一个结束时才有效果
- Vue.js转换和效果执行无序
- 时刻.js转换没有效果