![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Logree |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
Здравствуйте, тема с похожим название уже была, но там не то что мне нужно.
Вот захотелось мне чтобы у меня элементики на страничке появлялись плавненько, я скомуниздил такой код:
но, 1. переменная x в которой передается конечное\начальное значение прозрачности мне не нужна так эти значения у меня константны 1\0. 2. вместо переменнлой x логичнее передавать в функцию сам объект который нужно менять, да и глобальная переменная obj выглядит как-то коряво. я переписал код так:
на что ff вот тут
почему он не принимает объект obj как аргумент? ведь x он передавал?! пробывал через arguments.calle - ошибка другая но результат тотже. как правильно передать obj? -------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
||||||||||||
|
|||||||||||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
А вы разве не видите, что прибавляете объект к строке? тем самым выполняете неявное преобразование объекта к строковому типу, что и дает строку "[object HTMLDivElement]" вместо самого элемента. Попробуйте, к примеру, так:
Добавлено через 1 минуту и 50 секунд А вообще, чтобы не делать лишний раз рекурсию, есть метод setInterval. |
|||
|
||||
| ayax2005 |
|
|||
|
echo $smile ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 17.4.2008 Где: Питер Репутация: 2 Всего: 11 |
Честно говоря, вообще непонятно, зачем использовать setTimeout.
Можно просто для всех интересующих элементов вызвать метод $('элементы').fadeIn("slow") по событию $(document).ready, он тоже работает со свойством opacity -------------------- все вопросы - из-за неверной формулировки задачи |
|||
|
||||
| Logree |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
Amphiluke, вы сами-то пробывали это запустить... не получается так.
я вам показал что в предыдущем примере этого не происходит для x. Как это сделать для setTimeout? -------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
ayax2005, Я где-то читал о людях, которые спят по ночам некоторые люди не пользуются jquery. В силу разных, иногда очень уважительных причин
Не все скомунизженные коды одинаково полезны как это? Вот так и не заработало?
apear, соответственно, переписать аналогично... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| ayax2005 |
|
|||
|
echo $smile ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 17.4.2008 Где: Питер Репутация: 2 Всего: 11 |
Уважаемый кисонька, мне кажется многоуважаемый Logree сам решит, пользоватся ли ему моим советом
-------------------- все вопросы - из-за неверной формулировки задачи |
|||
|
||||
| Logree |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
Уважаемый, Amphiluke, прошу прощения, действительно ваш пример работает
ksnk, я чувствовал что кто нибудь да напишет про jquery.
Я вырезал то что должно быть для IE, мне бы так отладить. Ну раз уж у меня всё так замечательно работает, мне внезапно, да и честно говоря это был изначальный вариант, захотельсь сделать все по-человечески т.е цыклом:
но почему-то в таком случае прозрачность изменяется мгновенно, хотя задержка по идеи быть должна :( изменение времени задержки не помогает, в чём дело? По совету Amphiluke, сделал через setInterval() - всё работает
почему с цыклом не всё так прекрасно ? Это сообщение отредактировал(а) Logree - 5.9.2010, 10:28 -------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
||||||
|
|||||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Цикл, ИМХО тут абсолютно не к месту…
Весь смысл использования метода setTimeout в том, чтобы отложить исполнение какого-то кода или вызов callback-функции на заданное время. Цикл же выполняет инструкции в своем теле безотлагательно и настолько быстро, насколько это возможно. Решение с методом setTimeout является рекурсивным, в том смысле, что callback-функция через указанный временной интервал осуществляет вызов самой себя через тот же (или другой) интервал. А это непонятно. Зачем порождать кучу таймеров на вызов функции с пустым телом? |
|||
|
||||
| Logree |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
тогда я чтото не понимаю как работает js, ведь пока не завершится функция которая должна создать задержку, цыкл не может продолжаться, а тут как-то все не так... ну да ладно.
У меня возник вопрос не совсем относящийся к теме:
то все замечательно работает, если же я выношу стиль в файл: style.css
уже ни чего не происходит! в чём дело? Это сообщение отредактировал(а) Logree - 5.9.2010, 13:11 -------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
||||||
|
|||||||
| Amphiluke |
|
||||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
Вы несколько неправильно понимаете то, как работает схема с функциями обратного вызова (callback). Метод setTimeout возвращает управление сразу как только установит таймер на отложенный вызов callback-функции. Этот таймер тикает в фоне, не препятствуя выполнению кода, следующего за вызовом метода setTimeout. Когда время истечет, callback-функция вызывается по той ссылке, которая была передана методу при его вызове. При этом функция, вызывавшая метод setTimeout уже, возможно, к тому времени отработает полностью. Добавлено через 11 минут и 19 секунд В этом: установка CSS свойства opacity не обязана влиять на Javascript-свойство opacity объекта style. Решение — либо устанавливать свойство opacity объекта style программно после загрузки страницы, либо использовать вычисляемые стили
Для IE, думаю, сделаете сами (см. свойство currentStyle). |
||||
|
|||||
| Logree |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 331 Регистрация: 22.11.2006 Где: Самара Репутация: нет Всего: 2 |
Спасибо, второй вариант подойдёт.
-------------------- Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |