スライドショーとして機能する一連のページがあり、録音されたナレーションがテキストを読み取るときに、さまざまな要素が表示されるようにタイミングが調整されています。
load()を使用して次の「スライド」で領域を更新すると、問題が発生します。setTimeoutを使用して表示を制御しています。私の問題は、2番目のページが最初のページにあるsetTimeoutタイミングを使用していることです。clearTimeoutが必要ですか?
ページ1スクリプト:
var actions = [
{ time : 4, action : function() { $('#slidePhoto').animate({width: $('#slidePhoto img').width() / 1.5}, 2000 ).addClass('side-photo') } },
{ time : 8, action : function() { $('#slideEl2').fadeIn('slow') } },
{ time : 17, action : function() { $('#slideEl3').fadeIn('slow') } },
{ time : 24, action : function() { $('#slide-container').hide('slide', { direction: "left"}, 1000, function () {
$('#slide-container').load('introduction2.php', function() {
$('#slide-container').fadeIn('slow');
});
} ) } }
];
$(document).ready(function() {
for( var i in actions ) {
setTimeout( actions[i].action, actions[i].time * 1000 );
}
});
2ページ目のスクリプト:
var actions = [
{ time : 10, action : function() { $('#slidePhoto').animate({width: $('#slidePhoto img').width() / 1.5}, 2000 ).addClass('side-photo') } },
{ time : 16, action : function() { $('#slideEl2').fadeIn('slow') } },
{ time : 29, action : function() { $('#slideEl3').fadeIn('slow') } },
{ time : 40, action : function() { $('#slide-container').hide('slide', { direction: "left"}, 1000, function () {
$('#slide-container').load('introduction3.php', function() {
$('#slide-container').fadeIn('slow');
});
} ) } }
];
$(document).ready(function() {
for( var i in actions ) {
setTimeout( actions[i].action, actions[i].time * 1000 );
}
});
ページは、メインコンテナページの領域内にロードされます。ページごとに異なるIDを使用することでこれを回避できると思いますが、もっと簡単な方法があると思います。