Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   выезжающий блок (https://javascript.ru/forum/jquery/59901-vyezzhayushhijj-blok.html)

vettel 02.12.2015 15:30

Цитата:

Сообщение от Lutsk (Сообщение 398406)
Тем, что при уменьшении окна меняется ширина блока. Если задать в пикселах выезжающий - поламает верстку.

Где в этом коде -
Цитата:

Сообщение от dyhmzall (Сообщение 398391)
так гуглите сначала)
http://javascript.ru/forum/jquery/33...va-nalevo.html

задание ширины в пикселах?

Lutsk 02.12.2015 16:15

Цитата:

Сообщение от vettel (Сообщение 398408)
Где в этом коде -

задание ширины в пикселах?

Какая уже разница. Это те же яйца с использованием UI что я нарыл и выложил выше, только сбоку. Вот без UI бы...

vettel 02.12.2015 16:22

Lutsk,
можно не display: none задавать, а просто изначально уводить свойствами right или margin-right этот блок за пределы окна, а по кнопке анимировать выезд/заезд. Такой прием часто используют.

Lutsk 02.12.2015 16:51

Цитата:

Сообщение от vettel (Сообщение 398420)
Lutsk,
можно не display: none задавать, а просто изначально уводить свойствами right или margin-right этот блок за пределы окна, а по кнопке анимировать выезд/заезд. Такой прием часто используют.

Действительно выезжает. Только как при повторном клике на a.search-toggle вернуть блоку #searchCollapse обратно left:100%?
$('.search-toggle').click(function(){
	$('#searchCollapse').animate({left: '0%'});
	$(this).toggleClass("active");
});

vettel 02.12.2015 16:54

Lutsk,
очень просто, делайте проверку на класс active. Как-то так (схематично)
if($(this).hasClass('active')) {
задвигаем элемент
} else {
выдвигаем
}

Lutsk 02.12.2015 17:08

Ок, в итоге вышло:
$('.search-toggle').click(function(){
	if($(this).hasClass('active')) {
		$('#searchCollapse').animate({left: '100%'}, 700);
		$(this).removeClass("active");
	} else {
		$('#searchCollapse').animate({left: '0%'}, 700);
		$(this).toggleClass("active");
	}
});

vettel, спасибо за подсказки!


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