Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите разобраться (https://javascript.ru/forum/misc/21009-pomogite-razobratsya.html)

devote 27.08.2011 10:19

дауж, тут вряд ли что заработает

devote 27.08.2011 10:22

pic.width
Такого свойства нет у элементов, есть либо:
pic.style.width
либо:
pic.offsetWidth
далее после обработки значение никуда у вас не назначается. А это что?:
pr() = false;
Может все же надо так:
return false;

float 27.08.2011 10:28

Цитата:

pic.width
Такого свойства нет у элементов, есть либо:
это обращение к атрибуту видимо

devote 27.08.2011 10:29

Цитата:

Сообщение от float
это обращение к атрибуту видимо

=) Хотя у img он и правда должен быть

9xakep 27.08.2011 10:47

Вот именно что у img он есть.Далее, какая разница между
pr() = false и return false ?И так, и так ф-ия становится не рабочей.
Цитата:

далее после обработки значение никуда у вас не назначается.
А вот это не понял.

float 27.08.2011 11:14

Цитата:

pr() = false и return false
существенная. тк 1-е бред.

melky 27.08.2011 11:47

бляха муха, ну что за писанина !

перед размещением кода, если хочешь, чтоы тебе помогли, оформляй его красиво! если не знаешь, что и как, то легче засунуть код сюда, на 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, время: 02:59.