2016-08-16 5 views
2

私はアプリケーション(ES6)を構築していますが、スクロールアップ/ダウンイベントをキャッチする「正しい」方法は何か不思議です。スクロールアップ/ダウンのための反応待ちですか?

私は(npm)リアクションスクロールリスナーをインストールしようとしましたが、ES6クラスで動作させることができませんでした。

基本的には私が欲しいのは、スクロールアップの場合はこれです。下にスクロールする場合は、他の操作を行います。

import React from 'react'; 
import config from '../config'; 
import StaticImageList from '../Common/StaticImageList'; 
import ScrollListener from 'react-scroll-listener'; 

class Album extends React.Component { 
    constructor(props){ 
     super(props); 

    } 
    myScrollStartHandler(){ 
     console.log('Scroll start'); 

    } 
    myScrollEndHandler(){ 
     console.log('Scroll end 300ms(default)'); 
    } 
    componentDidMount(){ 
     scrollListener.addScrollHandler('body', myScrollStartHandler, myScrollEndHandler); 
    } 
    render(){ 
     return <StaticImageList />; 
    } 
}; 

export default Album; 

答えて

2

これは、すべてのリスナーに引っ掛けるための一般的なアドバイスです:

はありがとう

class Whatever extends Component { 
    componentDidMount() { 
    window.addEventListener('scroll', this.handleScroll) 
    } 

    componentWillUnmount() { 
    window.removeEventListener('scroll', this.handleScroll) 
    } 

    handleScroll(event) { 
    // do something like call `this.setState` 
    // access window.scrollY etc 
    }) 
} 
+0

componentWillUnmountcomponentDidMount中のもの、unattachを添付します!完璧。スクロールアップとスクロールダウンを区別する最も優れたクロスブラウザの方法は何ですか? –

+0

scrollYの値を記録し、次の値が – azium

+2

より小さいか大きいかどうかを確認してください。オーバフローを隠している要素のホイールイベントをどのように捕捉できますか? (つまり、スクロールすることはありませんが、引き続きホイールイベントをトリガーとして使用することを望みます)。 –

関連する問題