私はjqueryとjavascriptの初心者です。イメージ ソースと img ソースの配列の 2 つのパラメータを取得する関数に大きな問題があります。
function loadPicture(pic_src, _getarray)
{
var picture_index = _getarray.indexOf(pic_src);
var array_last = _getarray.length - 1;
var big_source = pic_src;
var big_source = 'pictures/' + big_source.substring(big_source.search("thumbs/th_")+10);
var wwidth = $(window).width();
var wheight = $(window).height();
$("body").css({ 'overflow' : 'hidden' });
$("#pic_loader img.single_picture").remove();
$("#pic_loader").css({
'width' : wwidth,
'height' : wheight
});
$("#pic_loader").fadeIn();
$("#pic_loader").append('<img data-original="'+big_source+'" alt="" class="single_picture" />');
$("img.single_picture").css({
'max-height' : wheight - 120 + 'px',
'max-width' : wwidth - 120 + 'px',
'margin-top' : parseInt(wheight/16) + 'px'
});
$("img.single_picture").lazyload({
effect : "fadeIn",
skip_invisible : false,
load : function()
{
$("#pic_loader").css({ 'background' : '#000' });
}
});
$("#next_pic").click( function()
{
if(picture_index == array_last)
{
loadPicture(_getarray[0],_getarray);
return false;
}
else
{
loadPicture(_getarray[picture_index+1],_getarray);
return false;
}
} );
$("#prev_pic").click( function()
{
if(picture_index == 0)
{
loadPicture(_getarray[array_last],_getarray);
return false;
}
else
{
loadPicture(_getarray[picture_index-1],_getarray);
return false;
}
} );
}
ユーザーが prev_pic または next_pic リンクをクリックすると問題が発生し、ビューアー ( ) に画像が正しく読み込まれますが、再帰が発生するたび#pic_loader
に倍増scroll
してイベントが発生し、ブラウザーが劇的に遅くなります。resize
これを処理する方法がわかりません。