Помогите разобраться
<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, время: 14:33. |