2011-01-12 10 views

答えて

16

は、別のJSのフレームワーク(MooToolsは)

window.addEvent('scroll',function(e) { 
    //do stuff 
}); 
+1

なぜでしょうか? 'window.addEventListener(" scroll "、function(e){...});'?余分な8文字のために? –

+1

そのように(mootools 'way)あなたはIE <9(attachEventもの)もサポートしています。 – stecb

+0

これは 'window'の' prototype'を変更していますか? –

22

HTMLだけではできません.Javascriptを使用する必要があります。あなたがしたいかjQuery使用することはできませんしていない場合、あなたはアンソニーによって投稿onscrollソリューションを使用することができます

$(document).ready(function() { 
    $(window).scroll(function() { 
     // do whatever you need here. 
    }); 
}); 

:あなたのソリューションは次のように見ることができるので、私は、jQueryを使用することをお勧めします。あなたは(あなたが非常に簡単なHTMLページのために何しない場合があります)のjQueryを使用したくない場合は、あなたが定期的にJavascriptを使用してこれを実現することができます

+0

私が推測するのは、上にスクロールせずにスクロールするだけです。スクロールダウンのためだけに何かがあります。 –

37

<script> 
function scrollFunction() { 
    // do your stuff here; 
} 

window.onscroll = scrollFunction; 
</script> 

あなたが何かをしたいと述べましたスクロールしたときにが表示されます。ページ - onscrollイベントは、x軸またはy軸のいずれかの方向にスクロールして消えるため、スクロールするたびに関数が呼び出されます。

ページをスクロールしたときにコードを実行するだけの場合は、以前のスクロール位置を維持して、onscrollが呼び出されるたびに比較する必要があります。ただ、完全性について

+3

おそらく 'onscroll'の代わりに' attachEvent'(IE)と 'addEventListener'(それ以外はすべて)を使うべきでしょう。 – crush

+0

@crush、なぜonscrollの代わりにattachEventとaddEventListenerを使用するのですか? – Pacerier

+1

@Pacerierさて、私は誤解を招き、インターネット上で入手して伝播している間違った情報に基づいてこのコメントを再訪させてください。 [W3C HTML5仕様](http://www.w3.org/TR/html5/webappapis.html#event-handlers-on-elements,-document-objects,and-window-objects)によると、 'onscroll'を使っても何も問題ありません。 'onscroll'は特に[HTML4仕様](http://www.w3.org/TR/html4/interact/scripts.html#h-18.2.3)にはなかったことに注意することが重要です。 – crush

11

より良い方法は、スクロールイベントのためだけでなく、以下のようにスクロール方向をチェックするだけではありませんを使用して別の解決策があります。

$(window).bind('mousewheel', function(event) { 
if (event.originalEvent.wheelDelta >= 0) { 
    console.log('Scroll up'); 
} 
else { 
    console.log('Scroll down'); 
} 
}); 
+2

これは正解でなければなりません。 –

+0

マウスホイールを使ってスクロールしたり、タッチデバイスを使用していない場合はどうなりますか? – HyderA

+0

@hyde異なるデバイスが異なる反応を示します。このためには、hammerjsなどのプラグインを使用する必要があります。そうでなければ、私はこれがここで答えられたと思うhttp://stackoverflow.com/questions/2863547/javascript-scroll-event-for-iphone-ipad –

0

これは私に役立ちます。

var previousPosition 

$(window).scroll(function(){ 
    var currentScrollPosition=$(window).scrollTop() + $(window).height() 
    if (currentScrollPosition>previousScrollPosition) { 
    console.log('down') 
    }else if(currentScrollPosition<previousScrollPosition){ 
    console.log('up') 
    } 
    previousScrollPosition=currentScrollPosition 
}); 
関連する問題