Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   resize в Opera, есть решение? (https://javascript.ru/forum/jquery/30222-resize-v-opera-est-reshenie.html)

madd1 28.07.2012 03:23

resize в Opera, есть решение?
 
Здравствуйте.

Помню уже года 2 назад сталкивался с подобной проблемой, так и не нашел решение тогда, думал, что сейчас то Опера не должна выдавать подобные фейлы, но выяснилось, что выдает.

Проблема в событии onresize, оно выполняется какими-то рывками, такой вот код:
$(window).bind("resize", function(e) {
				$('#login_more').css({left: $('#mlogin_form').position().left+3});
});

работает полностью плавно во всех браузерах, кроме Оперы.

Пробовал ещё так:
$(window).bind("resize", function(e) {
			if (!window.opera) {
				$('#login_more').css({left: $('#mlogin_form').position().left+3});
			}
});
setInterval(function() {
			if (window.opera) {
				$('#login_more').css({left: $('#mlogin_form').position().left+3});
			}
}, 1);


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

Неужели до сих пор эту проблему нельзя нормально решить или я туплю? Причем реально долго гуглил, как же решить, но нигде нет ответа, обычно советуют как раз таймер, который мне почему-то не помог.

Deff 28.07.2012 03:28

madd1,
Ссылка на реальную страницу есть ?
И вообще -смысл данного деяния - поясните ?

madd1 28.07.2012 03:31

Ссылки нет, пока на локалхосте творю.
Есть форма логина, хочу при фокусе её инпутов выводить доп. блок (для входа через соц. сети) (причем абсолютно, так как он заплывает на другой дизайн при выводе), это я уже сделал, осталась проблема только в ресайзе окна, блок не должен при нем пропадать, а должен продолжать движение за формой логина, во всех браузерах прекрасно работает, кроме Оперы.

Deff 28.07.2012 03:52

madd1,
Хм а ежели он должен двигацо за формой - воткните в форму span c display:inline-block; и position:absolute; в span ипортируйте ваш блок тож с абсолютной позицией, в результе получите привязаный к форме, без всяких резицей
Если стрёмно в саму форму - оберните форму span c display:inline-block; :D (карочь таблетка №6 получилась, как в байке про Василия Ивановича

madd1 28.07.2012 04:03

Там тоже косяки, к примеру, если оборачивать всю форму в блок с абсолютным позиционированием и inline-block, то во всех браузерах всё ок, я уже думал пора радоваться, но посмотрел в опере, там форма хрен знает куда уехала.

А если добавить блок в форму, то он во всех браузерах немного по-разному позиционируется в итоге относительно её, в опере прямо под формой, в остальных в разной степени левее и ниже формы.

Я так понимаю, проблема из сабжа - не решаема, тогда буду решать эти проблемы, спасибо :)

Deff 28.07.2012 04:14

madd1,
Попробуйте переустановить Оперу - чот нет у мну таких проблем

Aetae 28.07.2012 04:14

Забейте на onresize. Нормальный пользователь практически никогда не меняет размер страницы во время работы.

Deff 28.07.2012 04:15

madd1,
Да всё решаема - ну не лечат зубы по фотографиям нормально - выложите на укоз или на народ данный кусок с трабломм - тады подсказать и сделать реально - вот у мну тож телек вчера сломался- подскажите по сабжу ?

madd1 28.07.2012 04:19

Цитата:

Сообщение от Deff (Сообщение 192315)
madd1,
Да всё решаема - ну не лечат зубы по фотографиям нормально - выложите на укоз или на народ данный кусок с трабломм - тады подсказать и сделать реально - вот у мну тож телек вчера сломался- подскажите по сабжу ?

Сейчас подумаю куда выложить, выложу.

Цитата:

Сообщение от Aetae (Сообщение 192314)
Забейте на onresize. Нормальный пользователь практически никогда не меняет размер страницы во время работы.

Значит я ненормальный :lol:

madd1 28.07.2012 04:26

В общем, вот: http://31.135.72.169/govnosait/
фокус на инпуте сделайте и подвигайте ширину окна в опере и в других браузерах.

Deff 28.07.2012 04:37

Цитата:

Сообщение от madd1
фокус на инпуте сделайте и подвигайте ширину окна в опере и в других браузерах.

:write:

Так - не пойдёт ?
<style type="text/css">
.main_menu { 
background: url("http://31.135.72.169/govnosait/img/grad/main_menu_bg.png") repeat-x #4F575F;
height: 75px;
min-width: 877px;
float:right;
}
</style>

madd1 28.07.2012 04:42

Цитата:

Сообщение от Deff (Сообщение 192318)
:write:

Так - не пойдёт ?
<style type="text/css">
.main_menu { 
background: url("http://31.135.72.169/govnosait/img/grad/main_menu_bg.png") repeat-x #4F575F;
height: 75px;
min-width: 877px;
float:right;
}
</style>

А чего Вы хотели этим добиться? Менюшка прилипла к правому краю окна, блок все равно прыгает, а мне так-то меню по-центру нужно :)

Deff 28.07.2012 05:06

madd1,
А так пойдёт ?
http://hostjs-mybb2011.narod.ru/madd1.htm

madd1 28.07.2012 05:19

Цитата:

Сообщение от Deff (Сообщение 192323)
madd1,
А так пойдёт ?
http://hostjs-mybb2011.narod.ru/madd1.htm

В опере все равно дергается, ток еще какая-то красная рамка появилась :)
В-прочем, я почти смирился, может, действительно, не сильно будет напрягать пользователей дерганье такой мелочи. Просто весьма удивлен, что в опере до сих пор с онресайзом жопа!

Deff 28.07.2012 05:34

madd1,
Cделал чисто свою стилем - ток ти снес свой стиль (у меня всё скукожилось
http://hostjs-mybb2011.narod.ru/madd1.htm
фокус по паролю

madd1 28.07.2012 05:50

Спасибо, буду пытаться совместить это со своим кодом :)

Deff 28.07.2012 05:54

madd1,
Гы - это ваш код кроме стиледобавок и двух элементов - если б стиль не снесли узнали

madd1 28.07.2012 06:02

Цитата:

Сообщение от Deff (Сообщение 192327)
madd1,
Гы - это ваш код кроме стиледобавок и двух элементов - если б стиль не снесли узнали

Я понимаю, уже смотрел, вернув стили, я имел ввиду JS переписывать буду под энто :)

Deff 28.07.2012 06:04

madd1,

В принципе и анимацию мон стилями загнать

через transition-duration: (для скрытия раскрытия

madd1 28.07.2012 07:09

Выручили! Большое спасибо, полностью теперь работает, как хотел и без лишнего JS, никаких рывков, жаль, еще раз плюс не могу нажать.

Deff 28.07.2012 07:16

madd1,
Ну хоть помог чем ... :) ( просто периодически приходиться решать такие вещи - поэтому знаю, что решаемы


Часовой пояс GMT +3, время: 05:55.