Current collected state Current
Observed since 20 Oct, 19:37 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Resolve like 3D badge rotation controls.
$ npm i 3d-rotater-y --save
requestAnimationFrameimport rotateCtrl from "3d-rotater-y";
/**
* RotateControl(targetDom, targetRadius);
* targetDom 需要控制的元素
* targetRadius 目标元素的半径(宽度的一半,影响手指或鼠标滑动元素时的敏感度),默认200px
returns {
rad:Number, //弧度值
onTouch:Boolean, //是否正在操作被控目标
}
*/
let targetDom = document.querySelector("#badge_stage");
let rotateCtrl = new RotateControl(targetDom);
let isTouching = false;
// 添加监听事件,目前只有一个`update`事件可供监听,并在回调内更新「徽章badgeMesh.rotation.y」
rotateCtrl.on(
"update",
({ rad, onTouch, positiveRad, speed, startRad, endRad }) => {
isTouching = onTouch;
badgeMesh && (badgeMesh.rotation.y = rad);
}
);
// 开始监听旋转控制返回的数据
rotateCtrl.listen();
/**
* rotateCtrl.reset(duration, resetRad);
* duration 过渡时间ms,默认500
* resetRad 制定重置的角度,默认0
*/
// 比如想在1000ms里,从PI开始重置到0,可以这么用!
rotateCtrl.reset(0, PI);
rotateCtrl.reset(1000, 0);
freezePage函数:手指/鼠标控制目标元素转动时,禁止页面 scrollYplayAmt函数:第一个版本,能够实现小摆动,但是停住的时机不够精准;Download counts and popularity will appear here as the collector receives them.
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 19:37 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:a4eeb34d974f824dbdf19bacc7cba186bfeefb96543f6399a9b8f94f2db8170c