if...else не корректно работает
добрый день уважаемые форумчане.
вот возникла такая проблема: оператор ветвления в цикле срабатывает только один раз, тогда как должен срабатывать постоянно....остальной код работает, а вот собственно и он: ns4 = (document.layers)? true:false ie4 = (document.all)? true:false var mouse_x = y = 0; function init() { if (ns4) {document.captureEvents(Event.MOUSEMOVE);} document.onmousemove=mousemove; } function mousemove(event) { if (document.attachEvent != null) { mouse_x = window.event.clientX; mouse_y = window.event.clientY; } else if (!document.attachEvent && document.addEventListener) { mouse_x = event.clientX; mouse_y = event.clientY; } status="x = " + mouse_x + ", y = " + mouse_y; document.getElementById('xy').innerHTML = "x = " + mouse_x + ", y = " + mouse_y; } init() var i = 250, j = 500; function f_img() { document.getElementById('img0').style.width = document.getElementById('img0').width + 2 + 'px'; document.getElementById('img0').style.height = document.getElementById('img0').height + 2 + 'px'; i -= 1; j -= 1; document.getElementById('img0').style.top = i + 'px'; document.getElementById('img0').style.left = j + 'px'; if (document.getElementById('img0').width == 300) { new_img(); } } function new_img() { document.getElementById('img0').style.width = 1 + 'px'; document.getElementById('img0').style.height = 1 + 'px'; document.getElementById('img0').style.top = mouse_y + 'px'; document.getElementById('img0').style.left = mouse_x + 'px'; i = mouse_y; j = mouse_x; } я имею ввиду последний оператор ветвления if (document.getElementById('img0').width == 300) { new_img(); } вот он то и срабатывает только один раз. в body у меня стоит f_img(); setInterval("f_img();",30); короче говоря всё остальное работает исправно....и картинка увеличивается... помогите пожалуйста разобраться. заранее спасибо. |
???, В этом месте,(строка 13) и в концовке оператора else, пробуйте добавить нужные скомки
} else { if (! Безскобочная запись трактуется однозначно при однострочных операторах |
Цитата:
последний оператор срабатывает только один раз. наверху всё исправно. поясню: есть картинка. она начинает увеличиваться. когда она достигает width = 300 она перемещается на место курсора и уменьшается до размеров 1х1. вооот... так первый раз и происходит, но когда она увеличивается второй раз ничего не происходит...и она растёт в бесконечность....вот в чём проблема...(( |
попробуйте setInterval уменьшить...или в условии указать вместо == установите >=
|
Цитата:
как я жестко ступил:-? document.getElementById('img0').style.width = document.getElementById('img0').width + 2 + 'px'; if (document.getElementById('img0').width == 300) { new_img(); } document.getElementById('img0').style.width = 1 + 'px'; второй раз же у меня получался всегда нечётный размер... вот я долбан:lol: :lol: спасибо))))) |
Часовой пояс GMT +3, время: 03:49. |