CSS3 使用 JavaScript 拖动转换 3d 变换

Posted

技术标签:

【中文标题】CSS3 使用 JavaScript 拖动转换 3d 变换【英文标题】:CSS3 Translate 3d Transform with JavaScript Drag 【发布时间】:2014-03-17 17:18:33 【问题描述】:
perspective:400px;
transform-style: preserve-3d;
transform:translateX(-$drawerWidth);
transition: #$transition;
window.onload = addListeners();

function addListeners()
    document.getElementById('app').addEventListener('mousedown', mouseDown, false);
    window.addEventListener('mouseup', mouseUp, false);



function mouseUp()

    window.removeEventListener('mousemove', divMove, true);


function mouseDown(e)
  window.addEventListener('mousemove', divMove, true);


function divMove(e)
  var div = document.getElementById('app');
  div.style.position = 'relative';
  div.style.left = e.clientX + 'px';

如上所述,我有一点 CSS 和一点 JS。我正在尝试拖动并显示一个抽屉。我希望拖动不仅可以通过触摸来跟踪应用画布,而且我还希望看到导航抽屉通过 1:1 的变换跟踪拖动和打开,以及应用程序的其余拖动。

想法?我知道这有点难读所以...当您拖动一个 div 时,另一个 div 开始播放它的动画 1:1 沿 x 轴拖动 +1 或 -1。

【问题讨论】:

请拨弄一下。 jsfiddle.net 如果你想实时看到拖动/变换,你还需要使用mousemove事件 【参考方案1】:

如果您希望使用 javascript 控制 CSS 动画,这是一个很好的资源。

http://css-tricks.com/controlling-css-animations-transitions-javascript/

无需深入研究,最简单的方法就是用 jQuery 替换 css 转换样式。在每次鼠标移动时更改它以描述更改。

【讨论】:

谢谢,我今天早些时候发现了这个。我会在朝着解决方案前进时进行更新...在 JSFIDDLE 中! 当然,我很乐意提供帮助。 酷!我现在真的很忙,但这是我急于与之合作的事情!不幸的是,目前的优先级较低:(

以上是关于CSS3 使用 JavaScript 拖动转换 3d 变换的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CSS3 转换字体样式?

是否可以将地图中可拖动标记的纬度和经度(使用 javascript)转换为 HTML 表单?

CSS3 动画,转换为位置

是否可以在 Javascript 中的 css3 转换期间获取目标计算的 css 属性值?

jQuery可拖动隐藏与CSS3多列

[CSS3] touch-action设置移动端拖动行为