【问题标题】:jQuery - get difference in angle of parent for CSS counter-rotation of childjQuery - 为孩子的 CSS 反向旋转获取父母的角度差异
【发布时间】:2014-11-22 14:16:39
【问题描述】:

我正在使用 jQuery-ui 插件可旋转:
https://github.com/godswearhats/jquery-ui-rotatable

我的目标是有一个可旋转的父元素,并且子元素是反向旋转的,所以子元素看起来是不旋转的。

标记:

<div class="prop"> // Rotatable element
    <div class="controls"> // Counter-rotated element
        <span class="forward">Forward</span>
        <span class="back">Back</span>
    </div>
</div>

JS:

$('.prop').rotatable({
    stop: function (element, ui) {
        console.log(ui.angle.stop);
    }
});

将 .prop 顺时针旋转一圈并停止每隔一段时间的日志:

0.8878111523002155
2.09755867669314
2.6773906348383703
3.3422210195600486
4.164313303696719
4.679676340815534
5.244536132588575
-0.6508896063585539
-0.19499934637089922
0.2217151122145471 

问题是:

angle 与度数 (360) 有何不同?以及如何计算孩子的 (.controls) 反向旋转,使其看起来固定?

我假设在 .rotate() 的“停止”回调中应用 css 转换是一个合适的解决方案,但我当然愿意接受任何其他建议。

到目前为止我有:

function getCounterRotation(angle){

    return Math.floor(360 - angle * 6 * 10);

}

谢谢!

【问题讨论】:

  • 数学正弦,余弦?只是大声思考......
  • 另外,它甚至需要反旋转。将非旋转项目绝对定位为共享容器内的兄弟如何?
  • 根据您的更新,我猜它使用的是弧度,而不是度数。

标签: javascript jquery jquery-ui rotation


【解决方案1】:

我做了一个你可以在这里使用的例子:

http://jsfiddle.net/zajo6Lyx/1/

    stop: function(event, ui) {
        $('.controls').css('transform','rotate(' + -ui.angle.stop + 'rad)');
        $('.controls').css('-moz-transform','rotate(' + -ui.angle.stop + 'rad)');
        $('.controls').css('-webkit-transform','rotate(' + -ui.angle.stop + 'rad)');
        $('.controls').css('-o-transform','rotate(' + -ui.angle.stop + 'rad)');
    },

如果你想阻止它,你应该使用这个代码:

        rotate: function(event, ui) {
            $('.controls').css('transform','rotate(' + -ui.angle.current + 'rad)');
            $('.controls').css('-moz-transform','rotate(' + -ui.angle.current + 'rad)');
            $('.controls').css('-webkit-transform','rotate(' + -ui.angle.current + 'rad)');
            $('.controls').css('-o-transform','rotate(' + -ui.angle.current + 'rad)');
        },

【讨论】:

  • 太棒了,谢谢!没想到这么简单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 2019-09-16
  • 2015-08-30
  • 2013-06-04
  • 2018-01-29
  • 2013-04-10
相关资源
最近更新 更多