モバイルSafariでは、要素のtouchmove
を処理する過程で、その要素のclassName
を変更します。残念ながら、視覚的変化は、ユーザがスクロールしている間、または慣性スクロールの最後までは発生しない。JavaScriptのDOM移動が携帯端末でスクロールが終了するまで遅れる
className
をすぐに視覚的に撮影するにはどうすればよいですか?
より:どうやらこれはクラス名の変更に限定されるものではなく、一見などinnerHTML
やstyle
としてDOMへの変更、。
モバイルSafariでは、要素のtouchmove
を処理する過程で、その要素のclassName
を変更します。残念ながら、視覚的変化は、ユーザがスクロールしている間、または慣性スクロールの最後までは発生しない。JavaScriptのDOM移動が携帯端末でスクロールが終了するまで遅れる
className
をすぐに視覚的に撮影するにはどうすればよいですか?
より:どうやらこれはクラス名の変更に限定されるものではなく、一見などinnerHTML
やstyle
としてDOMへの変更、。
これは残念ながら設計によるものです。 iOSのサファリはスクロールまたはジェスチャーが終了するまですべてのDOM操作をキューに入れます。効果的に、DOMはスクロール中に凍結されます。
アップルの開発者ページでこれを参照できると思っていましたが、jQueryMobileへのリンクはhttp://jquerymobile.com/test/docs/api/events.htmlしか見つかりませんでした。
スクロール中にiOSデバイスがDOM操作をフリーズすると、スクロールが完了したら キューイングが適用されます。現在、調査中です スクロールが開始される前にDOM操作を適用する方法
希望します。
私は実際にそのサイトを構築しましたが、はい、この制限を回避する方法は、組み込みのブラウザ機能を使用してサイトをスクロールせず、偽装することです。 JSはホイールイベントとキーボードイベントをスクロールし、メインコンテナのCSSプロパティを自身の 'scrollTop'にトゥイーンします。もちろん、右側のスクロールバーはカスタムJSです。この場合、同じ内部 'scrollTop'値に同期されます。
サイト全体が1つの大きなトゥイーンにすぎず、メインのタイムラインはscrollTopの位置にあり、すべてのサブアニメーションは特定のタイミングでトリガーされます。 JSは縮小されていないので、ScrollAnimator.jsファイルを見てください。
位置を-webkit-sticky
に変更するだけです。 topを設定しないでください。通常の要素のように見えますが、固定要素のように動作します。そして、あなたはその位置をすぐに更新することができます。
これはiOSと新しいバージョンのデスクトップサファリでうまく動作します。私がヘッダーのためにしたことは、特にこのプロパティを使用するiOSのためであり、他はすべて固定を使用しています。これは、互換性のためです。このプロパティの詳細はこちら:http://updates.html5rocks.com/2012/08/Stick-your-landings-position-sticky-lands-in-WebKit – loriensleafs
これ!信じられない!私は、タッチモーブとポジションの間に何かをアニメーション化するソリューションを見つけようとしている間、髪を引っ張っています。まさに私が必要としていたものです。私は自分でこれを考え出すことはなかったでしょう。どうもありがとうございます! – beefchimi
反射に際して、私はそれがとても重いのでDOM操作がスクロールの素敵な慣性を減速させないと思う。 – Andy
悲しみ。私が試したほど、明らかに、これが当てはまるようになった。 –
どういうわけか、このサイトはその制限を克服しています。誰でも彼らが何をしたのか理解できますか? https://victoriabeckham.landrover.com/INT –