• ベストアンサー

javascriptでスクロールの上下を検知

$(window).scrollイベントで、「上にスクロールした時」や「下にスクロールした時」という ことをjavascriptで検知できるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5129/13396)
回答No.1

scrollイベント発生時に、前回の位置との差を取って上下を判断したらいいのではないでしょうか。 var nowPosition = 0; $(function() { $(window).scroll(function(){ diffPosition = nowPosition - $(window).scrollTop(); nowPosition = $(window).scrollTop(); if(diffPosition > 0){ // 下にスクロール }else{ // 上にスクロール } }); });

webama_fk
質問者

お礼

t_ohta 様 やはり現在地との差で判別となりますかね。 ご丁寧にサンプルまで表示して頂きありがとうございます。 勉強になります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

イベントオブジェクトを参照すれば、どういう値を取れるのか、あるいは、どういうメソッドが提供されているかを確認できますよ。 $(window).on("scroll",function(e){  console.log(e); });

webama_fk
質問者

お礼

そういう調べ方もできるのですね。 ご返信ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 子要素のスクロールが親要素に伝播しないようにしたい

    スクロールバーを持つ子要素 と その親要素であるwindow があり、 子要素のスクロール位置が一番上にある状態で、上に向かってホイールスクロールすると親要素windowのスクロールバーが動いてしまいます。 また、その逆に 子要素のスクロール位置が一番下にある状態で、下に向かってホイールスクロールすると親要素windowのスクロールバーが動いてしまいます。 この挙動をやめたいのですがどのようにすればよいでしょうか。 具体的にはFacebookの右上(外側のサイドバーの上)にあるフレンドのアクティビティを表示している領域の様な動作にしたいです。 下記コードでは実現出来ませんでした。 $("#sample").on('scroll mousewheel', function(event) { event.stopPropagation(); }); ライブラリはjqueryを使っています。 よろしくお願いします。

  • IEのみスクロールイベントで要素がちらつきます

    スクロールイベントで要素を追尾する処理をJavaScriptで記述しました。 他のブラウザでは綺麗に追尾してくれているのですが IE(ver9)だけ要素がちらつきながら追尾します。 スムーズにしたいのですが以下のソースのどこがいけないのでしょうか? 解決方法を教えて下さい。 [HTML] <a id="pageTopButton" href="#">ページ上部へ</a> [CSS] #pageTopButton { width: 100px; position: relative; } [JavaScript(jQuery)] /////初期設定 var viewWindowBottom = $(window).scrollTop() + $(window).height(); $("#pageTopButton").css("top", (viewWindowBottom - ($("#pageTopButton").height())) + "px"); ////画面をスクロール時のイベント $(window).scroll(function(){ var viewWindowBottom = $(window).scrollTop() + $(window).height(); $("#pageTopButton").css("top", (viewWindowBottom - ($("#pageTopButton").height())) + "px"); });

  • スクロールに沿ってjavascriptで背景画像を

    現在webサイトを作成しています。ページのメインビジュアルを「.mainVisual」というclassを作成し背景画像を指定して表示しています。 この背景画像を画面スクロールした際に、下に動くように以下のjavascriptを実装しています。 $(function() { $(window).scroll(function(){ var y = $(this).scrollTop(); $('.mainVisual').css('background-position-y', '0 ' + parseInt( +y / 10 ) + 'px'); }); }); この状態で動くのですが、今回新たに背景画像の元々の表示位置を「background-position」で調整したいと考えています。(単純に画像が下に下がるので、事前に画像の位置を上に上げておきたい) cssの記載で位置の調整はできるのですが、スクロールしてjavascriptが実装されると「background-position」の値が0pxになってしまい、背景画像の指定位置が元に戻ってしまいます。 こちら既に指定指定した「background-position」の値を残しつつ、jsでスクロールに併せて要素を動かすにはどのようにすればよいでしょうか。 わかりにく説明と、ひどく初心者の質問で大変に恐縮ですが、どなたかご教授いただけませんでしょうか。 よろしくお願いいたします。

  • JavaScriptで、ブラウザのスクロール?

    JavaScriptで、ページを表示後に一番下にスクロールするように動作させたいのですが どうすればよいでしょうか? ブラウザはIE6.0を使っております。 JavaScriptはあまり使わないのですが、ブラウザによって動作が異なったり動作しない場合があると 思いますが、上のようなスクリプトは簡単にできるものでしょうか?

  • Javascriptで開いたWindowのスクロール

    <SCRIPT language="JavaScript"><!-- function openWin2() { window.open("http://www.OOOO/hanbai.htm","通信販売法","width=636,height=250,menubar=no,location=no,left=10,top=30") } // --></SCRIPT> <SCRIPT language="JavaScript"><!-- function openWin1() { window.open("http://www.OOOO/souryou.htm","送料について","width=579,height=240,scrollbars=no,location=no,menubar=no,left=10,top=30") } // --></SCRIPT> 上記の文で、「送料について」はスクロールバーがなくて OKなのですが、 「通信販売法」は、スクロールバーを出したいのですが、 上の文では、スクロールバーは出てきません。 (表示サイズで途切れてしまう) どう直せば、スクロールバーが出てきますでしょうか??

  • 自動的にスクロールするようにするには

    文章が自動的にスクロールするようにしたいので本を見ながらやってみたらできたのですが・・・ 下がる速度が思ってたほど遅いです。個人的にはもっと高速で下に下がって欲しいのですが超低速で下がっていきます。どうすれば早くなるか教えてください。それともこれ以上早くは下がってくれないとか? <html> <body> <head> <title></title> </head> <body> <script language="javascript"> <!-- count = 0; var timerlD; function Scroll(){ count += 1; if( count < 600) { scroll(0, count ); } else{ cleartimeout( timerlD ); count = 0; return; } timerlD = setTimeout( "Scroll()", 1 ); } //--> </script> ここに自動的にスクロールする文章を打ってます。 gooに投稿できる文字数の関係で消しました。 <!--最後にスクロールON! --> <script language="javascript"> Scroll(); </script> </body> </html>

  • JavaScript スクロール制御

    javascriptの動作についてご教授下さい。 ウィンドウ画面が横1275px 縦925pxで パージ内容が横長の横2350px 縦925pxの ページ全体を横軸スクロールで表示可能なサイトで、 <img>タグで画像を非表示(配置はセンター付近)し、 ある画像リンクへの文字列をクリックでjavascriptから その<img>を非表示から表示に切り替えています。 (ページイメージ)                        |リンク文字位置|               |img位置| 横2350px----------------------------------------------------→ で、今回の質問なのですが、リンク文字はページ右辺に配置しており javascriptからimgを可視化するとスクロールが初期位置(横0)に戻ってしまいます。 スクロール位置はそのままで画像の可視化・非可視化を切り替えたいのですが、ムリなのでしょうか?? いちよう可視化後に scroll()でスクロールの位置を指定していても スクロールが初期位置(横0)に戻ってしまいます。↓↓↓ この現象はJavaScriptの仕様なのでしょうか?? 横長のページであることと、リンク文字の配置は仕様として 変更できないものとお願いいたします。 環境 WinXP SP3 IE8(8.06) 画像切り替えソース //引数urlの画像をimgで表示する関数 function visi(url) {  //imgのプロパティを取得  var jpg = document.getElementById('jpg_link');  jpg.style.visibility = "visible"; jpg.style.display = "block"; jpg.src = url;  //scroll(1500,0); ← 1500まで行くが初期位置に戻る・・・ }

  • javascriptでスクロール

    下記のhtmlソースでjavascriptでスクロールしてトップに戻るリンクを作ったんですが、WinのIEではスクリプトが効かずnoscript内の通常のアンカーが有効になってしまいます。 Firefoxではjavascriptの有効無効を判断して思った通りに動きます。WinIEでもjavascriptが有効のときはスクロールし、無効の時は通常のアンカーになるようにするにはどうすればいいのでしょうか? WinIEはセキュリティの設定でjavascriptを有効にしてあります。 <script language=javascript> <!-- document.write('<a href="javascript:pageup()">pagetop</a>'); //--> </script> <noscript> <a href="#pagetop">pagetop</a> </noscript>

  • JavaScriptでwindowのスクロール

    windows.scroll(0,y); でyを変化させてウィンドウをスクロールさせたいのですがしません 何が悪いのでしょうか? 他のコマンドがあれば教えてください

  • スクロール位置に関してです

    お世話になります PHP4でHP作成しています Windowのスクロール位置に関して質問させて下さい 親Windowから子Windowを呼び出して 子Windowを閉じるタイミングで 親Windowのリロード処理を行っています そこで、親Windowのスクロール位置がTopに戻ってしまう現象が起きてしまい 困っています リロード処理はJavaScriptを使用して  echo "<script type='text/javascript'>";  echo "window.close();";  echo "window.opener.location.reload();";  echo "</script>"; と書いています 通常F5キーの更新処理を行うと スクロール位置が更新前の位置にセットされるので JavaScriptからの指定も上手く行くのではないかと思ったのですが… 宜しくお願いします

innovis D300液晶がホワイトアウト
このQ&Aのポイント
  • innovis D300の液晶が突然ホワイトアウトし、操作ができなくなりました。
  • 電源をつけても液晶がホワイトアウトしたままで、スタートストップボタンと糸通しモードがオレンジに点灯しています。
  • ブラザー製品のinnovis D300でトラブルが発生し、液晶がホワイトアウトして操作ができません。
回答を見る