このスクリプトを使用して、「ライトボックススタイル」の画像を開いたときにスクロールをフリーズしようとしています。スクリプトに小さなエラーがある可能性がありますが、それを理解することはできません
jQuery.fn.lockToggle = function () {
var top = $(window).scrollTop();
var left = $(window).scrollLeft();
var clickCount = 0;
$(this).click(function() {
clickCount++;
if(clickCount % 2 === 1 ){
$('body').css('overflow', 'hidden');
$(window).scroll(function(){
$(this).scrollTop(top).scrollLeft(left);
});
} else {
$('body').css('overflow', 'auto');
$(window).unbind('scroll');
}
});
return this;
};
このスクリプトのしくみ(表示順):
- 現在のスクロール位置を取得し、2つの変数に格納します
- オブジェクトのクリック数の変数を作成します
- クリック数が奇数の場合、ページは現在の位置でフリーズします
- それ以外の場合(偶数)、ページを自由にスクロールできます
これらはすべて、呼び出すだけで使用できる単純なjQuery関数で機能します.lockToggle()
あなたはここで完全な例でこれを見ることができます:
http://jsfiddle.net/JamesKyle/8H7hR/30/
(画像をクリックしてください)