CSS3在FF和Chrome之间的转换不一致
CSS3 transitions inconsistent across FF and Chrome
所以我创建了一个CSS3动画,它在不同的浏览器中表现不一致。这是一个快速而肮脏的概述,我在最后包含了一个JSFiddle链接。
这是CSS:
.cloned_object {
position:absolute;
background-color:white;
width: 700px;
height: 640px;
margin: 0; /*for centering purposes*/
-webkit-transition: width 1s, height 1s, top 1s, left 1s, margin 1s;
-moz-transition: width 1s, height 1s, top 1s, left 1s, margin 1s;
-ms-transition: width 1s, height 1s, top 1s, left 1s, margin 1s ;
transition: width 1s, height 1s, top 1s, left 1s, margin 1s;
}
JS函数:
$('.content_cell').on('click', function(event) {
// if the user is on a browser older then IE9
if ($.browser.msie && $.browser.version.substr(0,1)<10) {
var $clonedElement = $( this ).clone(true).attr('class','cloned_object content_cell').appendTo('#mainContentTable');
$clonedElement.css({left:$(this).position().left,
top:$(this).position().top,
opacity:1.0}) ;
selectedPos = $(this).position();
var currentPos = $('#invitedToChatCell').position();
$clonedElement.animate({
height:640, width:700,
//position:'absolute',
left:currentPos.left,
top:currentPos.top,
opacity:1.0
}, 500, function(){ $('.cloned_object > ul').toggle(); });
} else {
var currentPos = $('#invitedToChatCell').position();
var $clonedElement = $( this ).clone(true).attr('class', 'content_cell').appendTo('#mainContentTable');
$clonedElement.css({left:$(this).position().left,
top:$(this).position().top}) ;
$clonedElement.addClass('cloned_object');
$clonedElement.css({'margin-left':-$(this).position().left+125,
'margin-top':-$(this).position().top,
}) ;
selectedPos = $(this).position();
$('.cloned_object > ul').toggle();
}
event.stopPropagation();
});
我真的不知道为什么不同的浏览器会有所不同。我希望有人能告诉我发生了什么…
这是jsFiddle链接。如果你在两个浏览器中都运行它,你会看到动画的位置是不同的。在FF,它看起来像是盒子长大了,这就是我想要的。在铬,这是非常奇怪的。。。
您的转换明确要求为"顶部"answers"左侧"设置动画。他们必须从某个地方开始,所以他们从零开始。这是一个奇怪的情况,因为"克隆元素"样式并不是赋予元素"顶部"answers"左侧"值的样式,而是您的代码将它们直接放在元素上。
不过,您也设置了边距的动画;Chrome似乎没有太多注意到这一点。如果我把"top"answers"left"属性从转换中去掉,它会让它的行为更像Firefox。
在元素存在的同时对其进行转换的概念让我有点困惑。我希望有人能给出更好的答案。
相关文章:
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- Android和JavaScript解析API之间不一致
- Javascript的行为与PHP包含文件不一致
- jQuery addClass/removeClass转换不是平滑的,而是断断续续的
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 点击链接行为不一致
- 为什么d3.js饼图转换不起作用
- Passport.js`isAuthenticated()`不一致的行为;当它应该是真的时候是假的
- 为什么从JSON文本到类型的转换不包括函数
- 与显示不一致
- CSS 转换不会在没有 setTimeout 的情况下运行
- Ext 4.2.1 模型日期解析在浏览器之间不一致
- 通过 Dropbox API 上传时的文件内容不一致
- JavaScript - 对象属性不一致
- Javascript 混淆了 null、instanceof 和 typeof 的语法不一致
- localeCompare 显示使用前导变音字符对单词进行排序时不一致的行为
- SVG 对象部分上的 JQuery click() 不一致
- 使用forEach和.shift()时结果不一致
- CSS3在FF和Chrome之间的转换不一致
- D3快速链式转换不一致