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, время: 20:33. |