Помогите разобраться
<script type="text/javascript" language="javascript"> function pr(pic) { setInterval(function (pic) { if(pic.width<640) { pic.width=pic.width+10 } },10) </script> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onmouseover="pr(this)"> Я честно говоря,не знаю правильно это или нет,то есть передается ли аргумент pic к другой функции: function pr(pic) setInterval(function (pic) Поскольку все остальное точно правильно. |
function pr(pic) setInterval(function () |
хм....все равно не работает:
<script type="text/javascript" language="javascript"> function pr(pic) { setInterval(function () { if(pic.width<640) { pic.width=pic.width+10 } },10) </script> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onmouseover="pr(this)"> |
А зачем такая короткая задержка?
Может лучше какой-нибудь эффект из jQ заюзать? |
ты скобку забыл поставить
<script type="text/javascript" language="javascript"> function pr(pic) { setInterval(function () { if(pic.width<640) { pic.width=pic.width+10 } },10); *!* } */!* </script> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width="300" name="chel" onmouseover="pr(this)"> |
Можно,но мне надо сделать это как задачу на js =) А именно я хочу сделать это с помощью аргументов,но вот как видите не получается пока.
|
Ой дурак :D Спасибо.
|
А в jQ примерно так же организованы эффекты?
|
там не интервал, а таймауты
|
Чтож,дабы не создавать новую тему, решил продолжить здесь
Я решил не много модернизировать свой код, но как вы поняли он опять не работает=( <script type="text/javascript" language="javascript"> function pr(pic) { var piw = pic.width; //Ширина 500 var f = document.getElementById('d') var p; if(f.selectedIndex==0){ pr() = false; } if(f.selectedIndex==1) { p = 0.25 } if(f.selectedIndex==2) { p = 0.5 } if(f.selectedIndex==3) { p = 0.75 } if(f.selectedIndex==4) { p = 1 } var piwp = piw*p var itog = piwp+piw setInterval(function () { if(itog>piw) { piw+=10 } },10) alert(piwp) alert(piw) alert(itog) } </script> <img src="http://goiron.enetgallery.com/_ph/1/224558321.jpg" width='500' onmouseover="pr(this)" ><br> Увеличивать изображения на: <select id='d'> <option value='none'>Не увеличивать</option> <option value='25'>25%</option> <option value='50'>50%</option> <option value='75'>75%</option> <option value='100'>100%</option> </select> Я даже не знаю в чем ошибка тут, поскольку весь код правильный(а иначе бы алерт не вылетал)Далее алерт вылетает с правильными значениями, т.е. если выберем 25%,то вылетают 125(на сколько увеличить),500(ширина),и 625(итоговый размер).Но вот с самим изображением к сожалению ничего не делаться. |
дауж, тут вряд ли что заработает
|
pic.widthТакого свойства нет у элементов, есть либо: pic.style.widthлибо: pic.offsetWidthдалее после обработки значение никуда у вас не назначается. А это что?: pr() = false;Может все же надо так: return false; |
Цитата:
|
Цитата:
|
Вот именно что у img он есть.Далее, какая разница между
pr() = false и return false ?И так, и так ф-ия становится не рабочей. Цитата:
|
Цитата:
|
бляха муха, ну что за писанина !
перед размещением кода, если хочешь, чтоы тебе помогли, оформляй его красиво! если не знаешь, что и как, то легче засунуть код сюда, на jsbeautifier и нажать сверху на Beautify JavaScript (или ctrl+enter). потом оформленный код засовывай уже сюда. это я к тому, что твой код невозможно читать. вот твой код, оформленный через выше описанный инструмент. красным отмечена проблемная строка function pr(pic) { var piw = pic.width; //Ширина 500 var f = document.getElementById('d') var p; if (f.selectedIndex == 0) { pr() = false; } if (f.selectedIndex == 1) { p = 0.25 } if (f.selectedIndex == 2) { p = 0.5 } if (f.selectedIndex == 3) { p = 0.75 } if (f.selectedIndex == 4) { p = 1 } var piwp = piw * p var itog = piwp + piw setInterval(function () { if (itog > piw) { *!* piw += 10 */!* } }, 10) alert(piwp) alert(piw) alert(itog) } если ты сам не догадался, то ты увеличиваешь не ширину картинки, а переменную. переменная то увеличивается, а ширина картинки - нет. делай присваивание, например, так (это та красная строка, только дополненная) piw += 10 pic.width = piw; и убедительно прошу, не забывай про jsbeautifier и еще : не забывай очищать интервал. ведь когда ширина картинки дойдет до предела, то интервал будет так же вызываться каждые 10мс. сделать это можно так (твой код) *!*id =*/!* setInterval(function () { if (itog > piw) { piw += 10; pic.width = piw; } else { *!*clearInterval(id);*/!* } }, 10) |
Часовой пояс GMT +3, время: 08:03. |