Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает динамическое изменение размеров img 
:(
    Опции темы
Finder128
Дата 11.6.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 15.3.2008

Репутация: нет
Всего: нет



Хочу сделать автосмену баннера с эффектом растягивающегося рисунка. Сделал пока что простенький скрипт, в котором в течении времени меняется размер изображения. Вроде всё работает, но перед этим выскакивает сообщение - такой-то объект null или не является объектом. 
Вот код, написанный мной:

<script>
    var x1=1024
    var y1=768
    
    function move(){
    if (x1>240){
    x1--
    y1=Math.round(x1*(160/240))
    setTimeout("move()",1)
    document.all["block"].width=x1;
    document.all["block"].height=y1;
    }
    else {x1=1024}
    }
    move()
    </script>
</head>
<body>
<div style="width:240;height:160;overflow:hidden;">
<img src="3.jpg" width="1024" height="768" name="block">

PM MAIL   Вверх
SelenIT
Дата 11.6.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Первый раз move вызывается, когда элемент по кличке "block" еще не загружен. Отсюда и ошибка. Нужно заменить прямой вызов ф-ции в последней строчке скрипта на вызов по событию:
Код

window.onload = move; // так ф-ция move станет обработчиком события загрузки всей страницы


И еще, по мелочи: document.all и атрибут name для картинки устарели, лучше использовать атрибут id и document.getElementById("id_элемента") соответственно. И в таймаут лучше подставлять не выражение в кавычках, а просто имя ф-ции (move) - иначе при каждом срабатывании таймаута неявно вызывается eval, а это лишняя нагрузка на проц...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 11.6.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



SelenIT, благодаря таким людям, как Вы, мы постепенно учимся сдержанности... это я про себя.
Почему так? Если бы мне отетили так, как я отвечал в нескольких своих предыдущих постах - жестко и не сдержанно.... Скорбно, но я не умею переключиться на блажьи тона, когда вижу нелепицу. Это очень мешает мне всю жизнь, но я не умею.... smile 

Я могу привести кучу примеров, своих идиотских вопросов, которые задавал на винграде... Да Вы про них все помните... Каким то общим, Винградовским духом, меня переработали... Ну... я кнечно, над собой работаю постоянно... smile  Но Ваше влияние, какое то неимоверно жесткое... smile

Добавлено через 2 минуты и 40 секунд
Всего один литр на двоих... smile 

Господа модераторы, Вы и не такое терпели... smile 


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.