天天看點

關于iphone 上touch事件動态改變元素位置時與touch點發生偏移的問題

寫這個麼個題目好像,有點晦澀。直接來張gif圖就知道,主要是是當手指觸摸到元素時,元素的初始位置變成了left:0, top:0;

js 設定監聽事件 都是 一樣的套路 

在事件裡添加 進行位置的動态改變,首先就需要獲得手指的初始位置,手指移動的位置,手機touch 目前元素的位置;

這樣寫在安卓和電腦上是沒問題的, 但到了水果上狀況如上圖,操作後,在第一次移動時,位置變成0,再次操作位置就是和手機的運動是一樣的。

分析,初始化頁面時,position,是讀取css檔案渲染的況且是百分比定位。第二次移動時,position在元素屬性上

關于iphone 上touch事件動态改變元素位置時與touch點發生偏移的問題

由此 最直接辦法就是 給每個需要移動的 元素 用js 設定位置。

如此 當在水果上第一次觸摸拖動元素時 ,位置就不會為0。

getBoundingClientRect有個尴尬的地方就是,eles 元素和父類元素 即所在分頁吧,必須可見,才有值否則為0;

有需要的交流的可以加個好友

繼續閱讀