カテゴリー
js

jquery mousewheelをanimateを途中でキャンセルしたくなった時に使ったよ

スムーススクロールでscrollToの箇所にamimate 中にユーザーがページを移動しようとするとガクガクするのでこまった。animateをキャンセルする方法はないものか?

マウスホイールイベント上書きすればいんじゃね?

jQuery入門講座:マウスホイール :
http://www.jquerystudy.info/plugins/small/wheel.html

jQueryでマウスホイールすると余韻が残るイージングスクロールをつくる | webOpixel : http://www.webopixel.net/javascript/435.html

ほうほうほう。

でもこれだとデフォルトのマウススクロールとの差異が気持ち悪い。
あと、animateが途中で終わっちゃうのでコールバック関数使ってたら関数もキャンセルされて立てたいフラグが立たない。

結局jquery.mousewheel.jsはよみこみつつマウスホイールイベントはキャンセルする方法で実装。
(ユーザの行動をキャンセルするのでコンテンツによってはユーザにストレスを感じさせるかもなるのでご注意を)

$('html').on('mousewheel',function(event, mov) {
	if(isTraveling || isIntrol || isScrolling){return false;}
});

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください