ホーム » ブログ » Jqueryでのマウスホイール(mousewheel)上下移動によって要素をスクロールさせる方法
このエントリーをはてなブックマークに追加
@2014/04/28

スポンサーリンク
開発でマウスホイールの上下スクロールによって画面上のある要素(たとえDIV)をスクロールさせることが遇いました。
インタネットにはたくさんのサンプルがあるけど、だいぶは曖昧し過ぎ、結局どれでも僕のニーズに合わなかった。ここで自分の対策をメモする。
ニーズ:ページ上のある要素(ここではid="testId"の要素)に、マウスホイールが上下スクロールしたとき、要素のコンテンツを左右スクロールさせ、表示する
いきなり、コードの抜粋:
/***************************************************************************
* (横)カレンダーにおけるマウスホイール処理(カレンダー左右移動)
**************************************************************************/
	var mevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel"; // FF doesn't recognize mousewheel as of FF3.x
	// スクロールさせたい要素のIDにイベントを付ける
	$("#testId").bind(mevt,function(e) {
		// 左右移動単位(px)
		var stepLen = 28;
		// マウスの上下スクロール判断
		var delta = e.originalEvent.deltaY ? -(e.originalEvent.deltaY) : e.originalEvent.wheelDelta ? e.originalEvent.wheelDelta : -(e.originalEvent.detail);
			
		if (delta > 0) {
			// 要素が上に28pxを移動させる
			this.scrollLeft -= (28);
		} else {
			// 要素が下に28pxを移動させる
			this.scrollLeft += (28);
		}
		// 従来なイベントを阻止する
		mevt.preventDefault();
	});

以上、ページ上のある要素(id="testId")に、マウスホイールを上下スクロールする際に、当該要素を左右スクロールさせるようにできた。

♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
0人
このエントリーをはてなブックマークに追加


★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。

お名前:

 

EMAIL:

 

URL:

 

認証コード:

zanmai.net-safecode

 


※会員の方は認証コードを要らないから、新規登録をオススメ!

check