配列とその増分に苦労してきましたが、解決策があると思います。多分。問題は、ビデオが配列で終了すると、私が採用したビデオ再生関数にインクリメントが追加されることです。これは問題にはなりませんが、ビデオをクリックして進むと加算され続けます。
インデックス値が何であれ、クリックした回数に関係なく、クリックしたときにビデオのインデックス値にリセットできるはずであることに気付きました。その後、ビデオが終了すると、ブーム、インクリメントは$("#myVid").index()
+1 になります。
私はこれを書く方法を知る必要があります。index= $("#myVid").index()
onclickの下に置いてみましたが、うまくいきません。次のように、if関数でラップすることも試みました(これはやり過ぎのようです)。
if (index >= $("#myVid").index()) {
index= $("#myVid").index()
}
では、インデックス値を再生中のビデオの値に設定するにはどうすればよいでしょうか? また、 noindex = $(this).index();
は機能しません。これは、click
の関数の先頭で現在のインデックス値を再表示するだけだからです。
どんな入力にも感謝します〜
編集: リクエストごとに、完全な機能と html...したがって、htmlは <div id="wrapper"><div id="MyT"></div>
<div class="buttons">
<div id="content">
<div class="control">
<div class="progress"><span class="timeBar"></span></div></div>
<div class="slider"></div>
<ul class='thumbs'>
<li rel='1'><div style="top:0px;"><img src="graphics/filler.png" alt="" width="280" height="128" /></div></li>
<li rel='2'><div style="top:128px;"><img src="graphics/filler2.png" alt="" width="280" height="128" /></div></li>
<li rel='3'><div style="top:256px;"><img src="graphics/filler.png" alt="" width="280" height="128" /></div></li>
<li rel='4'><div style="top:384px;"><img src="graphics/filler2.png" alt="" width="280" height="128" /></div></li>
<li rel='5'><div style="top:512px;"><img src="graphics/filler.png" alt="" width="280" height="128" /></div></li>
<li rel='6'><div style="top:640px;"><img src="graphics/filler2.png" alt="" width="280" height="128" /></div></li>
</ul>
</div>
</div>
<div id="bigPic">
<video id="myVid" alt="" class="normal" type="m4v" showlogo="false" height="768" width="1024"/>
</div>
次に、クリックに関連する完全な機能
$('li', '.thumbs').on('touchstart click', function() {
index = $(this).index();
var myVideo = document.getElementById('myVid');
myVideo.src = videos[index];
myVideo.load();
myVideo.play();
if (index >= $("#myVid").index()) {
index= $("#myVid").index()
}
そして次のプレーのために
$("#myVid").bind("ended", function() {
$("#bigPic").removeClass("move");
$("#MyT").fadeIn(250);
function playArray(ele, array) {
if (index >= array.length) {
index = 1;
}
if ($("#myVid").index() < index+1) {
index++;
}
ele.src = array[index];
ele.load();
ele.play();
}
playArray(document.getElementById("myVid"), videos);
});
});
編集:さて、すべての機能を備えたjsfiddleがここにあります