Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: ИМХО, интересная задачка

Сообщения:  [1-10]   [11-14] 

 
 автор: confirm   (17.11.2012 в 21:03)   письмо автору
 
   для: ЯСА   (17.11.2012 в 20:18)
 

Туманно рассказано? )

Родитель, в родителе элементы.

parent.mouseenter {разворачиваем флажки}
parent.mouseleave {сворачиваем флажки}
child.mouseenter {изменяем стиль бордюров дочерей}
child.click {изменяем ранжир слоев, и запускаем parent.mouseleave}

В FF - если остаться на месте щелчка, то флажки свернуться после щелчка (что и требовалось), затем опять развернутся, опять свернутся, и т.д...., то есть поочередно начинают выполняться события parent.mouseenter и parent.mouseleave.

По уходу мыши с позиции щелчка, этот "мультивибратор" сработает столько раз, сколько в коллекции дочерей -1, то есть тех, которые были смещены при разворачивании меню.

Получается словно событие parent.mouseenter "запомнилось", и после child.click и запуска parent.mouseleave, выполняется (что не требуется) parent.mouseenter, после него вновь parent.mouseleave, и так пока мышь не увести.

Сейчас отлавливать будем, что там за очередь событий накапливается, и почему.

  Ответить  
 
 автор: ЯСА   (17.11.2012 в 20:18)   письмо автору
 
   для: confirm   (17.11.2012 в 20:05)
 

не особо понял, если честно :))
дали бы пруф
если он есть, конечно

  Ответить  
 
 автор: confirm   (17.11.2012 в 20:05)   письмо автору
 
   для: ЯСА   (17.11.2012 в 18:40)
 

Глюки не с самой анимацией как таковой, просто проявляется это во время анимации, в данном случае смещение позиций слоев. Возникает событие, которого не должно быть, и которое запускает обработчик не требуемый на данный момент, то есть чехарда с событиями.

Вкратце (написано на jquery) - меню выбора языка сделано блочными элементами с фиксированными размерами (флаги). Изначально все позиционируются абсолютно в одну координату по отношению к общему родителю, с различным значением z-index.

У их родителя обрабатывается события наведения и ухода мыши, а у элементов наведение, для изменения бордюра на котором находится мышь, и щелчок, для выбора языка.

При наведении мыши, у родителя запускается обработчик - элементы у которых значение z-index меньше максимального значения у этого набора элементов, сдвигаются влево (отрицательно значение относительно родителя), соответственно по уходу мыши возвращаются на место.

По щелчку, запускается обработчик элемента, при котором выбранному элементу назначается максимальное значение z-index в наборе, остальным пересчитывается, и запускается обработчик родителя "уход мыши", то есть свернуть флаги.

Во всех браузерах ОК, и в FF 10.0 тоже было ОК, а вот в 16-ом такая картина - если не увести мышь с позиции щелчка (как при выходе с родителя для сворачивания элементов), то флаги сворачиваются, разворачиваются.... В общем новогодняя гирлянда получилась. :)

  Ответить  
 
 автор: ЯСА   (17.11.2012 в 18:40)   письмо автору
 
   для: confirm   (17.11.2012 в 18:38)
 

пока не замечал... что именно за глюки?

  Ответить  
 
 автор: confirm   (17.11.2012 в 18:38)   письмо автору
 
   для: ЯСА   (16.11.2012 в 19:23)
 

В FF 16.0 наблюдаются глюки с анимацией, которых не было в версии 10.0, и которых нет в других браузерах.

  Ответить  
 
 автор: confirm   (16.11.2012 в 20:14)   письмо автору
 
   для: ЯСА   (16.11.2012 в 19:23)
 

Ну значит ничего странного. Значит мне нужно искать в чем странность.

PS. А никакой странности и у меня - обновлял одно, занимался другим, а в хроме не получается одна вещь, ковырялся в его настройках как раз, отвлекся на сообщение, да и прикрыл случайно выполнение скриптов на этих доменах. А на уведомление, что заблокировано даже и не поглядел. )

  Ответить  
 
 автор: ЯСА   (16.11.2012 в 19:23)   письмо автору
 
   для: confirm   (16.11.2012 в 19:08)
 

>Кстати, этот код не выполняет хром - прокручивает только активный блок.

странно...
в моих FireFox 16.0.1, Safari 5.1.7, MSIE 8.0.601, Opera 12.10 и Chrome 22.0 всё работает

  Ответить  
 
 автор: confirm   (16.11.2012 в 19:08)   письмо автору
 
   для: ЯСА   (16.11.2012 в 11:27)
 

ЯСА, благодаря вашей настойчивости, я все-таки разродился на обновление FF до версии 16, до этого момента была все еще 10.0.
Вам надо запатентовать свое решение, пусть локти кусают. )

PS. Кстати, этот код не выполняет хром - прокручивает только активный блок.

  Ответить  
 
 автор: ЯСА   (16.11.2012 в 11:27)   письмо автору
 
   для: confirm   (11.11.2012 в 07:16)
 

решение - http://codecenter.awardspace.com/ff_no_error_scroll.html

работает во всех браузерах и скорость везде одинаковая
при любом способе скролла, а именно:
1) нажатием и удержанием мышью стрелок скроллбара
2) нажатием и удержанием клавиш Down и Up (стрелок)
3) нажатием и удержанием клавиш PageDown и PageUp
4) вращением колесика мыши

сравните с исходным - http://zabavka.com.ua/firefox-error.php

  Ответить  
 
 автор: confirm   (11.11.2012 в 07:16)   письмо автору
 
   для: ЯСА   (10.11.2012 в 16:26)
 

Все задачками народ страшите? )

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования