首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止translate3d转变

停止translate3d转变
EN

Stack Overflow用户
提问于 2013-09-02 13:34:29
回答 1查看 1.2K关注 0票数 1

我有一个滚动的文本div,我希望用户能够暂停并继续按一下按钮。下面是我如何创建过渡的方法:

代码语言:javascript
复制
words.style.webkitTransform = "translate3d(0px, -"+(27 * (words.children.length-4))+"px, 0px)";
words.style.webkitTransition = ((27 * words.children.length)/speed)+"s all linear";

我尝试在pause函数中将转换设置为"none“,但这只会使div返回到以前的位置。这相当于执行translate3d(0px,0px,0px)。是否有一种方法可以简单地暂停当前动画,或者我是否必须以某种方式测量当前的过渡位置?

更新:这是一个小提琴手:http://jsfiddle.net/VAgXF/1/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-02 14:47:59

基于实例化编辑

Try this demo instead

在您的情况下,您可以使用WebKitCSSMatrix获取translate3d值。我不知道它的所有选择器,但是exfy,所以这段代码可以工作,因为您不更改z

代码语言:javascript
复制
var words = document.getElementById("words");
var speed = 10;
words.style.webkitTransform = "translate3d(0px, -"+(27 * (words.children.length))+"px, 0px)";
words.style.webkitTransition = ((27 * words.children.length)/speed)+"s all linear";

var paused = false;
document.getElementById("button").onclick = function() {
  if(!paused) {
    var translated3D = new WebKitCSSMatrix(window.getComputedStyle(words, null).webkitTransform);
    words.style.webkitTransform = "translate3d(" + translated3D.e + "px, " + translated3D.f + "px, " + 0 + "px)";
    paused = true;
    button.innerHTML = "Start";
  } else {
    paused = false;
    button.innerHTML = "Stop";
    words.style.webkitTransform = "translate3d(0px, -"+(27 * (words.children.length))+"px, 0px)";
    words.style.webkitTransition = ((27 * words.children.length)/speed)+"s all linear";
  }
}

尽管如此,我还是会避免使用transform3d,因为它会使问题变得复杂。

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

https://stackoverflow.com/questions/18574576

复制
相关文章

相似问题

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