亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個關于圓(角度)的JS動畫問題

一個關于圓(角度)的JS動畫問題

繁星coding 2018-09-12 13:21:48
現在我通過重力感應API 的得到 longitude,將手機平放在桌面時,將其進行旋轉,其值是0增加到360。當到達360時,再轉就會突變成0.由于我是通過得到前后兩次的旋轉角度的差值,進行過渡動畫。 可當到達360在轉到0時, 前后兩者的差值就會發生突變,造成過渡動畫突變(旋轉一周后再回到正常的位置)。我的過渡動畫是通過 transform: rotateY() 進行過渡的,因此有什么方法可以解決這種突變呢(即讓360與0之間的轉換平順)?// 我的過渡方法:①第一次進入頁面時,記錄當前的 longitude值為 initLon②手機旋轉時,獲取longitude值為 curLon,然后 disLon = curLon - initLon 得到差值,然后進行過渡運算。因此360與0之間的突變會導致動畫過渡問題
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

function calcDisLon(initLon, curLon) {

  return (curLon + 360 + 180 - initLon) % 360 - 180; // [-180, 180)

}


console.log(calcDisLon(359, 1)); // 2

console.log(calcDisLon(1, 359)); // -2

假設每次執行動畫的間隔足夠短,不會出現角度值實際變化量的絕對值大于等于 180° 的情況

那么我們以 180° 為分界線,增量大于 180° 則認為其實際值為負,因而減去 360°

否則返回原先的值


查看完整回答
反對 回復 2018-10-23
  • 1 回答
  • 0 關注
  • 473 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號