jquery-1.5.1.min.jsを使ってjpg画像を
ランダムにスライドショーさせるプログラムで、
下記ポイントを満たしたプログラムへ変えたいです。
・scriptが機能しない場合には画像がちゃんと表示される
・html上にスライドショーに使う画像を並べない(下記コード参考=【画像多いバージョン】)
・修正するコードは【画像1枚バージョン】
よろしくお願いします。
【画像1枚バージョン】
<script type="text/javascript">
$(function(){
var elm = $(".fadein");
elm.children("img").hide();
(function(){
var img = elm.children("img:hidden");
elm.children("img:not(hidden)").fadeOut(1000);
$(img.get(Math.floor(Math.random() * img.length))).fadeIn(500);
var id = setTimeout(arguments.callee, 5000);
})();
});
</script>
<div class="fadein">
<img src="1.jpg" />
<img src="2.jpg" />
<img src="3.jpg" />
<img src="4.jpg" />
<img src="5.jpg" />
</div>
【画像多いバージョン】
<script type="text/javascript">
imgLength = 20;
firstInt = 1;
imgChangeSpeed = 5000;
imgExtension = ".jpg";
imgDirectory = "img/";
randomInt = firstInt + 1;
$(function(){
var t = setInterval(loadImg, imgChangeSpeed);
function loadImg(){
$("#gallery").children("img").animate({'opacity':'0'}, 0)
$("#gallery").children("img").attr("src",function(){ return imgDirectory + randomInt + imgExtension }).animate({'opacity':'1'}, 1000);
if(randomInt < imgLength){
randomInt = parseInt(randomInt) + 1;
}
else{
randomInt = 1;
}
}
});
</script>
<div id="gallery">
<img src="img/1.jpg" />
</div>
No.1ベストアンサー
- 回答日時:
記述したいマークアップと、その上で行ないたい処理や条件等を明確にして質問しないと、なかなか思う通りのものは入手できないかも。
http://oshiete.goo.ne.jp/qa/6623078.html でご質問に提示なさっているような回答をしたのは、HTMLとスクリプトとで画像のurlをダブって持っているたからで、HTMLに記述したくないのであれば、q6623078のご質問文のスクリプトのようにスクリプト内で定義しておけばよろしいかと。
さらには、今回のご質問のように規則性のある連番での画像名に限定できるのならば、スクリプトで定義しなくてもスクリプトに生成させることが可能です。ご提示の『【画像多いバージョン】』はその方法をとっています。
(HTML内に記述しても、CSSでdisplay:noneで非表示にするという方法もありますが…)
ご提示の【画像多いバージョン】では、変数randomIntがランダムと名がついているものの1ずつ順番に増やしていくようになっているので、そこの部分をランダムにしてあげればよろしいかと思われます。
ランダムな数字を取得する方法は、q6623078のご質問文に提示なさっている方法とその回答に記した方法も同じですので、それを利用すれば良いのではないでしょうか。
何度も有難うございます。
<head>
<script src="loading.js" type="text/javascript"></script>
</head>
<body>
<div id="gallery">
<img src="img/1.jpg" />
<!-- end #fadein --></div>
</body>
【loading.jsの中身】
imgLength = 20;
firstInt = 1;
imgChangeSpeed = 5000;
imgExtension = ".jpg";
imgDirectory = "img/";
randomInt = firstInt +
$(function(){
var elm = $("#gallery");
elm.children("img").hide();
(function(){
var img = elm.children("img:hidden");
elm.children("img:not(hidden)").fadeOut();
$(img.get(Math.floor(Math.random() * img.length))).fadeIn();
var id = setTimeout(arguments.callee, 3000);
})();
});
;
$(function(){
var t = setInterval(loadImg, imgChangeSpeed);
function loadImg(){
$("#gallery").children("img").animate({'opacity':'0'}, 0)
$("#gallery").children("img").attr("src",function(){ return imgDirectory + randomInt + imgExtension
}).animate({'opacity':'1'}, 1000);
if(randomInt < imgLength){
randomInt = parseInt(randomInt) + 1;
}
else{
randomInt = 1;
}
}
});
このように作ってみました。
randomInt = firstInt + 1 の1の部分を
前回のコードをコピーしました。
しかし、動きが少しおかしいです。
フェイドインの時間が安定しない、や
1番目が連続で何度も表示される、などです。
どこが間違っているのですか?
No.2
- 回答日時:
>・scriptが機能しない場合には画像がちゃんと表示される
<noscript>のことでしょうか?
>・html上にスライドショーに使う画像を並べない(下記コード参考=【画像多いバージョン】)
ドキュメントに画像を並べたくなければ、スクリプトで<img>要素を生成すればいいと思いますが。
確か、$('<img>')などと書くと<img>要素を生成できたと思いますが、
jQueryはよくわかりませんので、参考に。
>elm.children("img").・・・
の代わりに。
たぶん、こんな感じで同じように動くんじゃないかと。
var div=document.createElement('div');
div.innerHTML='<img src="略"><img src="略">・・・';
$(div).children("img").・・・
>・修正するコードは【画像1枚バージョン】
すみませんが、意味がわかりません。
ノーコメントで。
<script type="text/javascript">
$(function(){
var elm = $(".fadein");
var div=document.createElement('div');
div.innerHTML='<img src="img/1.jpg"><img src="img/2.jpg"><img src="img/3.jpg"><img src="img/4.jpg"><img src="img/5.jpg">';
$(div).children("img").・・・
(function(){
var img = elm.children("img:hidden");
elm.children("img:not(hidden)").fadeOut(1000);
$(img.get(Math.floor(Math.random() * img.length))).fadeIn(500);
var id = setTimeout(arguments.callee, 5000);
})();
});
</script>
<div class="fadein">
<img src="1.jpg" />
</div>
上記の$(div).children("img").・・・の後に何を記述すればいいのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【OpenCV】二値画像後、白の部...
-
こんにちは、javascriptにてボ...
-
外部javascriptの重複を防ぐには
-
nodejsの画像表示は特別なこと...
-
IplImageをPictureBoxへ表示が...
-
MFCで画像を表示させているので...
-
JavaScriptで変更した属性の元...
-
Vb.net2005での画像の合成方法
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
textareaに画像を表示したい
-
Javascript初心者|jQueryの.va...
-
画像の表示位置
-
window.openで値の渡し方を教え...
-
クリックで色変更後に既に変更...
-
クリックした<a>タグのみにClas...
-
jQueryで画像を重ねる
-
JSPでの画像ファイル表示
-
prettyphotoの画像表示について
-
Slick.jsのオプションrtlについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptで変更した属性の元...
-
MFCで画像を表示させているので...
-
画像が表示でnull; this.src
-
Vb.net2005での画像の合成方法
-
error LNK2019 未解決のシンボ...
-
onclickで画面が固まる・・・ら...
-
リンク先を動的に変更する
-
【OpenCV】二値画像後、白の部...
-
(javascript)HTMLで指定した...
-
jQuery 複数のfind()
-
外部javascriptの重複を防ぐには
-
ラズパイでno module named zbar
-
条件分岐でキーが入力されてい...
-
かぶらないランダム画像
-
OpenCV での画素値の比較について
-
HTMLからimgのsrcのみを正規表...
-
pythonで、tkinterとpillowの組...
-
imgボタンにfocusの当て方
-
OpenCVでサンプルコードを使う...
-
指定したフォルダの画像を一括...
おすすめ情報