首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS3:翻译与translateX

CSS3:翻译与translateX
EN

Stack Overflow用户
提问于 2013-06-07 15:30:08
回答 1查看 4.3K关注 0票数 1

我正在查看swipe.js的源代码,这是一个跨浏览器库,用于在支持触摸的设备上创建动画幻灯片。

为了创建动画,swipe.js使用CSS3转换(如果有必要的话,它会返回Javascript动画)。因此,他们用来执行实际CSS3转换的转换函数是:

代码语言:javascript
复制
 function translate(index, dist, speed) {

    var slide = slides[index];
    var style = slide && slide.style;

    if (!style) return;

    style.webkitTransitionDuration =
    style.MozTransitionDuration =
    style.msTransitionDuration =
    style.OTransitionDuration =
    style.transitionDuration = speed + 'ms';

    style.webkitTransform = 'translate(' + dist + 'px,0)' + 'translateZ(0)';
    style.msTransform =
    style.MozTransform =
    style.OTransform = 'translateX(' + dist + 'px)';

  }

因此,基本上,为了使这个跨浏览器,他们必须为Webkit,Mozilla,Microsoft和Opera设置不同的转换属性。我不明白的是,为什么他们在webkit中使用translate函数(它需要两个参数),而其他所有东西都使用单参数translateX函数。

据我从Mozilla微软文档中可以看出,这两个引擎都支持translatetranslateX。swipe.js的作者在这里决定在非webkit浏览器上使用translateX有什么原因吗?是否有某种浏览器支持translateX,但不支持translate

EN

回答 1

Stack Overflow用户

发布于 2013-06-20 14:35:47

看起来这是有历史原因的,到了增加了对Firefox、Opera和IE的支持的时候,他们都是只支持2d转换。对3d转换的支持是几个月后在firefox中添加了,而IE10也支持它,因此实际上它仍然是Opera所必需的,但我想它是为了向后兼容性而保留的。

更新

哎呀,我还以为我读过translate3d,但在后来的版本中,它只是translate,就像你发布的一样。所以,看起来他们有translateZ,因为translate3d不再触发iOS6中的硬件加速,也许translateX也有类似的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16987787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档