めっちゃ便利でいつもお世話になっている scrollsmoothly.js ですが、# 付きの a 要素に一括でイベントが設定されるため、jQuery などでモーダルウィンドウを利用する場合に不都合があったので修正してみました。
noSmoothScroll というクラス名をつけた a 要素を除外できるようにしてみました。
function setOnClickHandler(){ var links = d.links; for(var i=0; i<links.length; i++){ // ページ内リンクならスクロールさせる var link = links[i]; var splitLinkHref = link.href.split('#'); if(currentHref_WOHash == splitLinkHref[0] && d.getElementById(splitLinkHref[1])){ // noSmoothScroll というクラス名なら除外 if(link.className != "noSmoothScroll") { addEvent(link, 'click', startScroll); } } } }
複数クラス名が振られている場合には対応させていませんが、とりあえず。複数クラス名への対応が必要になったら以下を参考にやってみよう…。