{"_id":"3d-rotater-y","_rev":"1-aea13c60a48b8308061fd8e3c93a7db6","name":"3d-rotater-y","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"3d-rotater-y","version":"1.0.0","description":"resolve like 3D badge rotation controls","repository":{"type":"git","url":"git+https://github.com/Moveharder/3dRotateYControl.git"},"bugs":{"url":"https://github.com/Moveharder/3dRotateYControl/issues"},"homepage":"https://github.com/Moveharder/3dRotateYControl#readme","_id":"3d-rotater-y@1.0.0","_nodeVersion":"14.12.0","_npmVersion":"7.20.1","dist":{"integrity":"sha512-WAzof1Q7QBESqTDOeYOUvhTRV/KsQum0NjlyCWx+5xrCs9tYPUZezoMyRwUUOiznwk5ehMH9ZBSdzJlFWpvXOA==","shasum":"ee527249dacbbd5473a772ffbd7fd1736acc122a","tarball":"https://registry.npmjs.org/3d-rotater-y/-/3d-rotater-y-1.0.0.tgz","fileCount":3,"unpackedSize":11734,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGrfmL7HWnEfeKf0OcD5w9OXw9y3bVSv2pv1UYIYz5dNAiEAvWxDf3sUceigChGvpfrRgCcciejUdObkuR/ZROLWjxU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2/W9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqkxg//Vg1n6PvdUP/eAUkVapvz8pt6z8P5fA7FrwkyPj6sFo5vtsj7\r\nPRsIj4ND3+rDOkhnDE3knrEvy2oyVaKSISGrrUwZTJwqg6UWpa6UqIS/xBjJ\r\nzuis9aIB9komOwQLpj9it1jnr9JAquQYrPj5A0aWu4Sv4m75aP3moPyhXHZI\r\n+nJxUfQNd3foQh6lfEWywXIyr6BlX+tNZVBe7wtZvDRORvu3B0gWY8njelAF\r\nNQ8gKBbjCGvY5DBJS6aQuVer/S/xlSbUdjDwIVrGzU6DIYtmw1mg6OibFyZ8\r\n+JX74hHQuk1edrhML6r4ZaKu1aBLvK2FWgYApAvzPJB4CS+Y7dCxaUdpDi6C\r\nPTfyIA3uRhSy159ueK6g4yqIAOAkKoifwSIFXiuYaEIUtBmkN2x5USWvyIVn\r\nUhbXn3H8iqi6HcIdp6G022vP5Dy+p7iLCZC18QlbbQ1bt47Et4mniKyBhFt+\r\nx62b2cOJLpqU95uTXOSYMNprOl9HkYTrMNKvGd7WrvZC8bxebodTH37xcSKJ\r\nFurjKuBoWZF+zutCXzoMU1OeFMZ2H9lMVGJmjHjC4ouOANqOYQwU7x0lNvKG\r\nppdGwL0cHCZCZytCVDRaf+L3hZgMMawvqZlhm6SokPJDxdD60rr93sojzRAu\r\nAY+NfxqrLZUc+OTQQfqgTM+QJ/EWgWHGrHU=\r\n=vwXi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"spartaattack","email":"wcmailone@163.com"},"directories":{},"maintainers":[{"name":"spartaattack","email":"wcmailone@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/3d-rotater-y_1.0.0_1658582460824_0.8713650730922837"},"_hasShrinkwrap":false},"1.0.2":{"name":"3d-rotater-y","version":"1.0.2","description":"Resolve like 3D badge rotation controls.","repository":{"type":"git","url":"git+https://github.com/Moveharder/3dRotateYControl.git"},"author":{"name":"Believer"},"license":"ISC","homepage":"https://3d-badge-wchub.vercel.app/","bugs":{"url":"https://github.com/Moveharder/3dRotateYControl/issues"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["3d","threejs","badge","control"],"_id":"3d-rotater-y@1.0.2","_nodeVersion":"14.12.0","_npmVersion":"7.20.1","dist":{"integrity":"sha512-89vmu5R8ZZ0dAP0X1wdx8k+Xb3RWpNrQvnsJj2ZBXFOBAJQl6gqULfNb/FB18s1Up97Ujg1sC9OePPAxMzJ55g==","shasum":"ba16f79b59cfd7e3dcae49527fe1f51c44894d8a","tarball":"https://registry.npmjs.org/3d-rotater-y/-/3d-rotater-y-1.0.2.tgz","fileCount":3,"unpackedSize":12207,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCe6otnXe1kSgyex57eqScdr4mwXGFoT1S4hp1beA92swIgdBEkJF+etT/8CHo3qNUJ6oZF2Q4Zf9683ckS6cAowwU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi30nRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqiMQ//Vamf1DiIHrFfS4QbCZaHIUsn796tX2wdyf3s/ML9pzMojSlC\r\nm9ih1TAxYEen0kCY0OlfDDBJ4JZB7rRV0jNpH4qZSM/1bj1zN/7gcHTocYnW\r\nkbU9miAaWJiOStV+ODqghQwvX+BD/JXEW5NVQJSyXaiLDU045dF60KuuLK0x\r\nKSotzhxj2aM+T6eKwFR0qNFjJx07RJWU4K9BKA1Qh1RvnNZcuHZUHOGryP0L\r\n1d2DIx5Y9FVmPrg+hSrLtV3cu7yn/QeWDoW4PX5DhZYee3tDc8iNEIiG3HKN\r\noUYneoBJopqmz6iGCHCMawbWiLx2RqWHUEEhFjr5LHoIMAzuYmhwnASUOFy7\r\n7gexAdWJKx4FcHczcc4OI6WBAMPl2KULqpWCRi57sgyXyCa1tegEr8lhd8wf\r\nLEbCXfdoBvnXI1TxXb096aktzMdmEU0Kg5Zm9qMeQCMiK/Bt9DOCwwkv4QpV\r\nlT6LnWOAhncgwryjiFrTf1BQMlcwDEDu4kuVhxerFSh0zF+ZBwYemMXhONTf\r\notdnw0+lYh2RnO1GiO/vZ7vT91/VM/DfxCJtDRL6NQl481cmTWkXdMLtExFx\r\nZV2kemkR2zRLjeO0Mxp+PnKuuHdzyE9m4/h/yqhfM4NogepAVvSP0BeHB8s1\r\nC1cSrTFuQm7cJhn2CuJBvWk8HOGKskfeDvY=\r\n=a9qF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"spartaattack","email":"wcmailone@163.com"},"directories":{},"maintainers":[{"name":"spartaattack","email":"wcmailone@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/3d-rotater-y_1.0.2_1658800593572_0.6617533309979049"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-23T13:21:00.824Z","1.0.0":"2022-07-23T13:21:01.035Z","modified":"2022-07-26T01:56:33.819Z","1.0.2":"2022-07-26T01:56:33.748Z"},"maintainers":[{"name":"spartaattack","email":"wcmailone@163.com"}],"description":"Resolve like 3D badge rotation controls.","homepage":"https://3d-badge-wchub.vercel.app/","repository":{"type":"git","url":"git+https://github.com/Moveharder/3dRotateYControl.git"},"bugs":{"url":"https://github.com/Moveharder/3dRotateYControl/issues"},"readme":"### 针对 3D 徽章的预览提供简单的控制能力：通过手指或鼠标控制徽章旋转角度、松手后自动保持水平位置。\n\n# Install\n\n> $ npm i 3d-rotater-y --save\n\n# 3d-rotater-y\n\n# Features\n\n- 🚀 动画更新基于`requestAnimationFrame`\n- 🧭 仅支持 Y 轴方向旋转控制；\n- 🪆 需要附带“根据不同范围内的旋转角度，能够自动过渡到水平位置”的惯性/重力感旋转效果；(从平面视角来看，需要达到\\[0,90)，松手后回到 0 弧度位置；(90,180\\]，松手后回到 PI 弧度位置的旋转过度效果）\n- 👬 同时支持 PC 和移动端；\n- 从指定角度开始归零的旋转过渡动画；\n- 支持初始化时制定任意展示角度；\n- 点击/双击回到初始角度；\n\n# Usage\n\n#### basic\n\n```\nimport rotateCtrl from \"3d-rotater-y\";\n\n/**\n* RotateControl(targetDom, targetRadius);\n* targetDom 需要控制的元素\n* targetRadius 目标元素的半径（宽度的一半，影响手指或鼠标滑动元素时的敏感度），默认200px\n\n  returns {\n    rad:Number, //弧度值\n    onTouch:Boolean, //是否正在操作被控目标\n}\n*/\n\nlet targetDom = document.querySelector(\"#badge_stage\");\nlet rotateCtrl = new RotateControl(targetDom);\nlet isTouching = false;\n// 添加监听事件，目前只有一个`update`事件可供监听，并在回调内更新「徽章badgeMesh.rotation.y」\nrotateCtrl.on(\n  \"update\",\n  ({ rad, onTouch, positiveRad, speed, startRad, endRad }) => {\n    isTouching = onTouch;\n    badgeMesh && (badgeMesh.rotation.y = rad);\n  }\n);\n\n// 开始监听旋转控制返回的数据\nrotateCtrl.listen();\n```\n\n#### Advance\n\n```\n/**\n* rotateCtrl.reset(duration, resetRad);\n* duration 过渡时间ms，默认500\n* resetRad 制定重置的角度，默认0\n*/\n\n// 比如想在1000ms里，从PI开始重置到0，可以这么用！\nrotateCtrl.reset(0, PI);\nrotateCtrl.reset(1000, 0);\n```\n\n#### Todos\n\n- 模拟 Apple Watch 徽章松手后的**_摆动->停止_**的过渡效果\n- 完成`freezePage`函数：手指/鼠标控制目标元素转动时，禁止页面 scrollY\n- 删除`playAmt`函数：第一个版本，能够实现小摆动，但是停住的时机不够精准；\n","readmeFilename":"README.md","keywords":["3d","threejs","badge","control"],"author":{"name":"Believer"},"license":"ISC"}