![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Enya |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
У нас есть div высота 100% ширина 1-2рх, при попадании курсора мыши на эту полоску. Ширина увеличивается стремительно до 25рх, соотвественно когда курсор уходит - то так же стремительно причется в 1-2рх шириной полоску.
Много всякой инфы по событиям связанными с элементами формы, а вот по таким мелким анимационным не очень. Буду благодарна (+) за помощь. -------------------- Утсанвлен Денвер 1. PHP Version 5.1.6 2. MySQL 5.0.18-max 3. phpMyAdmin 2.6.1 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Enya, Чудес, как правило, не бывает. Видимо скрипт чего-то хочет от этой полоски, или в CSS про нее чего-нибудь такое написано. Откройте страничку в FireFox с установленным FireBug и сделайте Inspect Element. Возможно, что-нибудь прояснится...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
ksnk, Вы наверное экстрасенс
![]() Я пять раз прочитал текст сообщения, посмотрел на название темы.... Но не смог понять чего надо. ![]() Если у Enya, есть такой скрипт, то, показывать, как такое сделать, вроде не нужно. А что тогда нужно? -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: 1 Всего: 4 |
2Ghirik - коходу ksnk вообще не экстра сэнс. Он ответил явно не на вопрос Enya.
2Enya Сейчас накидаю план, когда освобожусь напишу пример. 1. ловим onMouseOver и передаем в myJS() наш див(или ловим его в функции по id) 2. зaпускаем c задержкой по setTimeout myJS если надо Что делает сама JS. Она узнает текущий размер div-a и если надо увеличиваетпо сеттаймаут примерный код
Добавлено через 13 минут и 56 секунд по ходу выполнения кода советую выкурить первых две темы факъю данного подфорума http://forum.vingrad.ru/faq/topic-148995.html http://forum.vingrad.ru/faq/topic-185836/k...settimeout.html |
|||
|
||||
Enya |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
-------------------- Утсанвлен Денвер 1. PHP Version 5.1.6 2. MySQL 5.0.18-max 3. phpMyAdmin 2.6.1 |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
"Коходу" первым "экстрасенсом", догадавшимся, что нужна анимация по событию, оказался KuZyagroup. Я, стало быть, вторым
![]() Но вот пример кода, увы, явно безграмотный. А вот рабочий вариант:
Тут все параметры анимации, а также анимируемый объект и направление анимации (сворачивать или разворачивать) хранятся в статических переменных ф-ции (чтоб не заморачиваться с привязкой this), и нет неявного eval в таймауте... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Ну да, в цирке мне, видимо, выступать пока рано. ;-)
Если изменить первые строчки функции SelenIT'а вот так
, то можно будет писать в html немного поменьше:
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: 1 Всего: 4 |
2SelenIT согласен написано криво, но я жн подчеркнул что это не код а направление в котором нужно писать.
П.С. 2Enya Вы хоть разобрались, а то в вашем посте( копи пастлом сделаный) JS с ошибками Добавлено через 4 минуты и 44 секунды 2ksnk - this +setTimeout это опасная возможность словить грабли |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
SelenIT, конкретно по вашему коду,
для одиночной панельки подходит на ура, а если вопрос стоит в нескольких скажем я их просто разместил друг за другом, наводим мышь на одну, затем сразу на следующую и т.д., они разворачиваются, но обратно сворачиваться не хотят в меру своего разумения js, я так полагаю, там просто объект один и ему присваиваются каждый новые параметры, в т.ч. указатель на див, а вот как сделать чтобы всё равно сворачивалось? |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
KuZyagroup, в том-то и фокус предложения ksnkа, что this передается только один раз, до возникновения граблей
![]() Грабли тут, по-моему, могут быть в другом месте - в Gecko (из-за нестандартного параметра-задержки), и то лишь если поменять аргументы местами... bars80080, абсолютно верное замечание. Об универсальности я действительно особо не задумывался. Первая мысль - завести хеш анимируемых элементов и передавать их id (а заодно и анимировать все разом, по одному таймеру - меньше вычислений), но не исключаю, что есть решение и лучше... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
SelenIT, Можно обойтись одной функцией как сейчас. Нужно только заменить setTimeout на setInterval и переписать чуть-чуть работу с ним. Ну и сбрасывать "предыдущую" анимацию в начальное состояние anim.obj.width=''.
Вот. Двигается немного глючно - зато спортивно - все в одной функции ![]()
Это сообщение отредактировал(а) ksnk - 8.2.2008, 17:37 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Для полноты картины я все-таки довел до реализации свою идею с хешем (точнее, двумя, как оказалось;) внутри ф-ции:
Заодно исправил идиотскую арифметическую ошибку с расчетом задержки для таймаута (стр. 6 в моем прошлом коде - должно быть как в стр. 4 в новом)... И чуть увеличил величину и время "выезда" табов - для наглядности. -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Ох и упрямы Вы человек,SelenIT!
Класная реализация! Я как раз собирался подобную штуковину делать, а тут так красиво решено.... Спасибо. P.S. только что то в FF не видно дивы, может я не так собрал страницу.... Ага, стили не правильно прикрутил... Все, работает в FF. Это сообщение отредактировал(а) Ghirik - 9.2.2008, 07:30 -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
Enya |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 5.10.2005 Репутация: нет Всего: нет |
А если полоску Div расположить по центру. то в какую сторону будет увеличиваться ширина?
Добавлено через 5 минут и 37 секунд Я использовала вот этот код.
А почему увеличивается в право? а если в лево? можно? ![]() -------------------- Утсанвлен Денвер 1. PHP Version 5.1.6 2. MySQL 5.0.18-max 3. phpMyAdmin 2.6.1 |
||||
|
|||||
AKS |
|
||||||
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Можно хоть вправо, хоть влево, хоть в обе стороны. Для этого достаточно знать принципы позиционирования элементов. Тогда и js-код менять не понадобится. Вот простой пример (для "раздвижения" в обе стороны): css:
html:
Не "лежит" у Вас душа к closures. ;) А ведь тогда можно было обойтись без обращения к глобальным данным (статическим св-вам функции). Как мне кажется, это бы позволило сделать решение более производительным. |
||||||
|
|||||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |