SetTimeout правильное использование
var massHeight1 = [20.1,9.1,13.8,11.9,13.2,7.2];
var massHeight2 = [34.5,19.2,26.8,17.1,16.2,16.8];
paintColoumsTimeout = setTimeout( function DrawColoums() {
lenghtY1 = massHeight1[i]*7.6;
lenghtY2 = massHeight2[i]*7.6;
s.fillStyle = 'red';
s.strokeStyle = '#fff';
s.fillRect(startX1+lenghtDeltaX, startY-alpha-lenghtY1, lenghtX, lenghtY1+alpha);
s.fillStyle = 'black';
s.strokeStyle = '#000';
while(j < lenghtY2+alpha)
{
s.fillRect(startX2+lenghtDeltaX, startY-alpha-lenghtY2, lenghtX, j);
j+=0.1;
}
j = 0;
lenghtDeltaX += 102;
if(i < massHeight1.length)
{
paintColoumsTimeout = setTimeout(DrawColoums, 300);
i++;
}
},100);
Данный кусок кода рисуеит столбцы с высотой, которая задана в массиве massHeight1, massHeight2. Но мне нужно чтобы рисовались столцбы с низу вверх плавно для этого я создала цикл while
while(j < lenghtY2+alpha)
{
s.fillRect(startX2+lenghtDeltaX, startY-alpha-lenghtY2, lenghtX, j);
j+=0.1;
}
но мне нужно,чтобы это все рисовалось с задержкой,тоесть надо это заключить в SetTimeout. Как это должно выглядеть? Помогите, очень надо! Заранее спасибо! |
nata031189,
создайте функцию
function stroika(){
if (j < (lenghtY2 + alpha)){clearInterval(interval); return}
s.fillRect(startX2+lenghtDeltaX, startY-alpha-lenghtY2, lenghtX, j);
j+=0.1;
}
interval = setInterval('stroika()', 500);
интервал будет действовать до конца постройки (когда if станет false). |
Dim@, думал, что моя ава ужасна, но глядя на твои, понял, что это не так
|
nerv_,
угу :D |
А куда именно поставить эту функцию, поставила вместо while - пишет в консоли, что не известна функция stroika.
Можно полностью весь код с данной функцией? Спасибо |
nata031189,
он выводит в консоль что не известна функция stroika потому что сетИнтервал и сетТаймаут умеют вызывать функцию только из глобальной области видимости, попробуйте вынести эту функцию за рамки данной (в глобальную область) |
| Часовой пояс GMT +3, время: 08:44. |