我有这个旋转木马,使用-webkit-transform:rotateX(以度为单位旋转);在3D中旋转.它有10个窗格,这意味着每36个窗格都有一个窗格居中.
现在,我正在尝试创建一个在touchend事件上调用的“snap to”效果,将最近的窗格设置在前面.
我的问题是,从一个任意的旋转值,比如-1820度,我该如何计算哪个窗格,或者更确切地说,最近的窗格在多大程度上?
希望有道理.一个提示将非常感激.
最佳答案
如果我很好地解答你的问题,你应该使用模数运算符,它基本上是除法余数,根据wg3schools定义为百分号%.
原文链接:https://www.f2er.com/js/429540.html例:
5%2等于1
在你的情况下,你可以做类似的事情
var initialAngle= getAngle(); //let's say it's 1820
var closestPane= initialAngle%36; //which gives you 20.
所以现在你知道你的角度重置到前一个角度的位置(我们称之为A).
如果进行额外的简单操作(36-20 = 16),您也知道距离以下角度的距离.
angle before ---- A ---- angle after
20deg 16deg
希望这可以帮助