これ何て呼びますか Part2

宜しくお願いします。

$(function(){
var files = [
'photo01.jpg',
'photo02.jpg',
'photo03.jpg',
'photo04.jpg',
'photo05.jpg'
];
var currentNum = 0;
var timer;


for(i = 0; i < files.length; i++){
$('#paging').append(
$('<li></li>').attr("data-img", files[i]));
};

$("#paging li:first-child").addClass("active");

window.onload = function(){
autoPlay();
}


//自動再生を制御
function autoPlay(){
timer = setTimeout(function(){
$("#slide:not(:animated)").animate({
"margin-left" : -1*$("#slide li").width()
},{duration:2000}
,
function(){
currentNum++;
if(currentNum > files.length -1){
currentNum = 0;
}

$("#slide").css("margin-left","0").append($("#slide li:first-child"));
$('#paging li').removeClass('active');
$('#paging li').eq(currentNum).addClass('active');
});
autoPlay();
},2000);
}


});

上記のソースですが、{duration:2000}と指定すると正常に動作しません。
{duration:2000}の個所を2000と記述すると正常に動作します。

出来ればオプション名を明記したいのです。

お手数をおかけ致しますが教えて頂けませんか?

A 回答 (2件)

オプション名を明記しないと2000がdurationかどうか解りにくいから


という意図でしょうか?

それであればvar duration = 2000;と宣言しておいてdurationを引数に渡すのがよいかと思います。
    • good
    • 0
この回答へのお礼

DoubtOwl様

ご回答頂きましてどうもありがとうございます。
ご提示下さった方法で無事に解決致しました。

お陰さまでメンテナンスがしやすくなりました。
御世話になりました。

お礼日時:2015/06/26 09:55

コードのみのご提示なので、具体的な内容は理解していませんが・・・




>{duration:2000}と指定すると正常に動作しません。
jQueryの書式等に関しては本家のサイトに丁寧なドキュメンテーションが公開されていますので、そこで確認するのが一番です。
 http://api.jquery.com/animate/

ご提示の書式は、上記の上段にある書式なので第二引数はduration(またはeasingまたはcomplete)を意味するため、typeは「Number or String」と限定されています。
オブジェクト形式で指定なさりたいのであれば、下段にある書式を用いればよろしいかと。


どうしても独自書式にこだわりたい場合は・・・
jQueryではメソッドの追加ができるようになっていますので、書式を変換する関数(例:myAnimationとか)を作成し、拡張定義することで他のメソッドと同様に利用することが可能になります。
拡張したメソッドを利用することで、お好みの書式での指定もできるようになるかと。
 http://api.jquery.com/jQuery.fn.extend/
    • good
    • 0
この回答へのお礼

fujillin様

早々にご回答を頂きましてどうもありがとうございます。
ドキュメンテーションをしっかりと確認したいと思います。
ドキュメントをきちんと理解出来るようにしっかりと勉強します。

御世話になりました。

お礼日時:2015/06/26 09:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報