2017-03-21 15 views
1

overflow-y:autoを持つ親要素とoverflow-x:autoを持つ子要素があります。モバイルデバイス(IOS)のサイトスクロールJS

問題:子要素でtouchmoveを起動すると、同時に親要素をスクロールできません。そのことはIOSデバイス(iphone、ipad ..)にのみ現れます。 Androidはうまくいく。

アイデア?解決

+0

私は同様の動作を行い、このhttp://iscrolljs.com/を使って私の魅力のように働きました – axrami

答えて

0

問題:IOSはそうCSSで、身体のバウンドを防ぐために必要なため、また

touch_start(e){ this.startY = e.touches[0].clientY; }

touch_move(e){ let parent_scroll = document.getElementsByClassName('parent')[0].scrollTop; if(e.touches[0].clientY > this.startY){ document.getElementsByClassName('parent')[0].scrollTop = parent_scroll - Math.abs(e.touches[0].clientY - this.startY); }else{ document.getElementsByClassName('parent')[0].scrollTop = parent_scroll + Math.abs(e.touches[0].clientY - this.startY); } this.startY = e.touches[0].clientY; }

上の子要素は、その後、イベントリスナonTouchStart、onTouchMoveを、追加

html, body{ position: fixed; overflow: hidden; }

とCSSに追加する各スクロール要素の怠惰なスクロール用:

-webkit-overflow-scrolling: touch;

利益!多分この解決策は誰かを助けるでしょう。

関連する問題