jPopUp, centering
День добрый, наконец-то я решил, что стоит посещать этот форум (как помощь понадбилась).
Пишу 2 плагина. 1) отцентровка элементов. таких плагинов много, мой - один =) настройки, которые планируются: how : 'vh', // v/h/vh relativeTo : 'screen', // parent/screen/document center : 'now', // now/scroll/resize/sr calculateOnly : false // true/false и по русски с объяснением * как центрировать: только горизонтально, только вертикально, и так и так * относительно чего центрировать: родительского элемента, видимой области экрана, всего документа * центрировать: сейчас, оставлять элемент отцентрированным при прокрутке, при ресайзе, и так и так * только посчитать и вернуть значения, сам элемент не трогать не все еще работает. Я не знаю как сделать разные настройки при горизонтальном и вертикальной отцентровке. Наверно это и не получится даже. Ну например горизонтально отцентрировать относительно экрана, а вертикально - отн-но родителя. Тут же нужны разные position. пример ака демка http://tinyurl.com/nfnfns 2) модальные окна/попапы лень писать. Просто окна модальные, с кучей настроек. Будет время - отпишу подробнее. Пока делаю ядро, потом буду базовыми эффектами заниматься, далее над блокировкой отдельных элементов по селектору, потом над блокировкой всего кроме отдельных элементов и так далее. пример ака демка http://tinyurl.com/lgvn9r в чем я нуждаюсь по поводу попапа: в деньгах^W, сиськах^W Проверял в Safari 3, FF 3.5.3 IE не работает совсем. Нужна помощь. Так же прошу помощи по проектированию. Сейчас при объявлении new jPopUp заново все локальные методы объявляются. Поэтому сразу же открывать popUp нельзя. Как быть? |
1)ИМХО:
я бы сделал настройки в виде хеш-массива его три элемента- v,h,vh соответсвенно в каждом из них массив остальных настроек любой из них может быть null, либо содержать в себе null-ы при этом соответсвующая натсройка берется из общего(vh), либо по дефолту(не центровать) таким образом можно комбинировать центровку как угодно: $("elem").center({vh:{relativeTo:'screen',center:'now'}}); $("elem").center({v:{relativeTo:'screen',center:'now'}, h:{relativeTo:'parent',center:'scroll'}}); $("elem").center({v:{relativeTo:'screen',center:'now',}, h:{relativeTo:'parent'}, v:{relativeTo:'screen',center:'now'}}); |
Gvozd,
хм, очень клевое предложение. Еще можно так сделать: если не задан h, v, vh а сразу настройки - применять их к vh. Только вот проблема остается: центрирование по отношению к документу требует абсолютного позиционирования, по отношению к родителю - относительного. Да, наверно возможно все по абсолютному позиционированию делать и при ресайзе/скроллинге пересчитывать координаты, но тогда все происходит не плавно (лагает). зы: добавил helper к попапу - fsLoading.show(); fsLoading.hide(); - показ гифки с очень большим zIndex и position: fixed. Кто-то может объяснить, почему он не работает без setTimeout? |
То, что сразу заметно:
1. в первом скрипте не учитывается resize окна браузера. 2. во втором скрипте, в 4 и 5 примерах, некоторые глюки в Chrome. |
1) ресайз учитывается если кникнуть на "центрируйся два!" (а что, если учитывать горизонтальную прокрутку и вертикальную по отдельности?)
2) хрома нет, буду ставить, смотреть. |
Koc,
возможно, стоит отслеживать window.onresize , а еще лучше, что бы это можно было в настройках включать. |
Riim,
ну там же настройки есть: учитывать ресайз, скролл, скролл и ресайз. посмотри исходник странички с примером |
Есть, так есть, я просто в код не заглядывал.
|
Часовой пояс GMT +3, время: 12:02. |