![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: нет Всего: 64 |
Всем привет.
Есть див, внутри которого много изображений. При наведении на изображение, остальные затемняются, сверху появляется другой див с увеличенным изображением и описанием. Проблема в том, что если быстро навести на любое из крайних изображении и убрать курсор, верхний див так и остаётся висеть, т. е. mouseleave не срабатывает (юзаю jQuery). Пробовал вешать mouseleave на большой див (с изображениями), но это событие возникает каждый раз при наведении курсора на верхний див. А это не есть гуд... Я приклейл скрипт. Посмотрите если не сложно. Может ещё что посоветуете. Я, просто, в Яве не силён... Присоединённый файл ( Кол-во скачиваний: 6 )
script.rar 132,47 Kb-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| ksnk |
|
||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Правильно ли я понял, что при каждом "наезде мышкой" создается новый объект table. Не важно, создавался ли он уже или нет? Повозил мышкой - получил лишнюю сотню таблиц... Много ДОМ-элементов - это много рессурсов на их отрисовку-хранение... Может в этом и дело. imho, нужно создать либо один объект "увеличенный просмотр" и позиционировать его по мере надобности с изменением сорца картинок, либо сгенерировать сразу все "увеличенные просмотры" и показывать/ скрывать их когда надо. У меня некие глюки иногда наблюдались только в IE, если повозить мышом по крайним картинкам и резко убирать мышь с окна броузера... еще. вот такие конструкции t_im.animate(... стоит заменить на такие
Просто множество анимаций пытаются выполнится последовательно. Сначала одна, потом другая и если навесить их целую кучу, то они так и будут "перемигиваться", пока не кончится очередь. Впрочем, тут мне не удалось получить эффект "перемигивания", так как объект всегда заново пересоздается, но это типичная ситуация. так писать не нужно ob.css("top", (parseInt(ob.css("top")) - (150 - this.offsetHeight)) + "px"); Можно так ob.css("top", ob.css("top") - (150 - this.offsetHeight)); проблема, может быть еще и в этом
Просто когда срабатывает show, элемент "разворачивается" с левого верхнего угла до правого нижнего. За это время мышка может с этой области убежать и mouselive никто не дождется... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||||
|
|||||||
| artsb |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: нет Всего: 64 |
ksnk, спасибо за помощь!
Там же событие mouseenter. В jQuery оно срабатывает один раз. Это же не mousemove.
Пробовал. (хотя может и не не правильно Спасибо. Учту. А ob.css("top") разве не строку возвращает (вида "150px")? Типа как e.style.top.
Это первое, что пришло в голову. Но как бы это сделать по человечески... Кстати, я уже немного подправил, теперь прошлой проблемы нет. Но иногда возникает другая. Не одно, так другое... -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
||||
|
|||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
да, действительно, возвращает строку... я чего-то думал, что число. Зато приписывать 'px' точно не надо. Оно само подставиться... Добавлено через 1 минуту и 20 секунд
Ну и какая она - другая? ;-) -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| artsb |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: нет Всего: 64 |
Неа
Уже проверил Сейчас ещё малость доделаю кое-что и выложу. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |