勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

ブラウザのSafariのみスクロール関連のイベントが発火しない場合の対応方法

   2024/02/20  jQuery

jQueryで一定距離スクロールさせた場合に発火するイベントをプログラムしていたが、IE / Chrome / Firefoxだと正常に動作するのにSafariのみ動作しないという症状が発生した。jQueryの書き方によってはSafariのみスクロール距離を正常に取得できないっぽい。以下に原因と対策をメモ。

 

原因

以下のような形でスクロールした距離を取得しようとしたが、この書き方だとsafariではスクロール量を取得できない模様。

var hoge = $('body,html').scrollTop();

 

対策

以下に変更する。

var hoge = $(window).scrollTop();

 

参考サイト

http://d.hatena.ne.jp/cyokodog/20090112/jQueryPositionSize03

「位置情報の取得結果を比較してみる」というところに詳しく載っている。

 - jQuery

  関連記事

テキストエリアを選択すると中身を全選択状態にする方法
テキストエリアを選択すると中身を全選択状態にする方法

テキストエリアやテキストボックスの中に文字が書いてあり、ドラッグをしなくても、そ ...

jQueryでformの各種パーツ(テキストボックス等)の操作まとめ
jQueryでformの各種パーツ(テキストボックス等)の操作まとめ

jQueryでフォームのセレクトメニューやラジオボタン等、各種パーツを操作するこ ...

IE11でフォーム送信時に二重登録される
IE11でフォーム送信時に二重登録される

Internet Explorer11でform送信時にデータが二重登録されると ...

jQueryの「DateTimePicker」プラグインで日付や時間選択時に指定したイベントを実行させる方法
jQueryの「DateTimePicker」プラグインで日付や時間選択時に指定したイベントを実行させる方法

jQueryの「DateTimePicker」プラグインで日付や時間選択時、あら ...

jQuery UIでテキストボックスにサジェスト(入力補助)機能を実装する方法
jQuery UIでテキストボックスにサジェスト(入力補助)機能を実装する方法

メールアドレスを入力するためのテキストボックスに文字を入力すると「@yahoo. ...