Показать сообщение отдельно
  #7 (permalink)  
Старый 25.04.2009, 14:27
Аватар для galileopro
Интересующийся
Отправить личное сообщение для galileopro Посмотреть профиль Найти все сообщения от galileopro
 
Регистрация: 25.04.2009
Сообщений: 15

Есть код, который выводит довольно интересное слайд-шоу(может кто и воспользуется), но прикол в том, что сначала картинка выводится в нормальном довольно медленном темпе, а потом сильно ускоряется, и у меня виснет довольно нехилая двухядерная машина, хотя поставил
SetTimeout("...",20) - довольно много. Помогите исправить глюк, плиз.
<script>
var slide = new Array;
var pictureName = new Array("scrin1.jpg", "scrin2.jpg", "scrin3.jpg", "scrin4.jpg","scrin5.jpg", "img3.jpg");
for (var i = 0; i < pictureName.length; i++) {
     slide[i] = new Image();
     slide[i].src = pictureName[i];
}
var m=0; var n=10; var l=10; var k=0; var Number=0;
function next2(){
if(k<70){
w=w+10;
h=h+8;
l=l+2;
n=n+1;
document.getElementById("before").width=w;
 document.getElementById("before").height=h;
document.getElementById("before_div").style.left=l;
document.getElementById("before_div").style.filter="alpha(opacity="+n+")";
k++;
setTimeout('next2()',20);
}
if((k>=70)&&(k<140)){
w=w-10;
h=h-8;
l=l+10;
n=n-1;
document.getElementById("before").width=w;
 document.getElementById("before").height=h;
document.getElementById("before_div").style.left=l;
document.getElementById("before_div").style.filter="alpha(opacity="+n+")";
k++;
setTimeout('next2()',20);
}
if((k>=140)&&(k<308)){
l=l-5;
n=n+1;
document.getElementById("before").width=w;
document.getElementById("before").height=h;
document.getElementById("before_div").style.left=l;
document.getElementById("before_div").style.filter="alpha(opacity="+n+")";
k++;
setTimeout('next2()',20);
}
if(k==308){
k=1;
if(Number==5){
document.getElementById("before").src = slide[Number].src;
Number=0;
setTimeout('next2()',20);
}
else{
Number++
document.getElementById("before").src = slide[Number].src;
setTimeoutl('next2()',20);
}
}
}
</script>
<style>
.pic { position: absolute; top: 10px; left: 10px }
</style>
<body onload="setTimeout('next2()',1000)">
<div id="before_div" class="pic"><img id="before" src="scrin1.jpg" width=50 height=30></div>
<script>w=50;h=30;</script>
</body>

Последний раз редактировалось Андрей Параничев, 25.04.2009 в 19:06. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием