Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2015, 13:07
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

выезжающий блок
Уважаемые знатоки, как сделать чтобы блок появлялся не сверху вниз, а справа налево?
Вот код, который сейчас:
<div class="wraper">
<a class="search-toggle" href="#">Клик</a>
<div id="searchCollapse">Содержимое</div>
</div>

css:
Код:
.wraper{
    position: relative;
}
#searchCollapse {
    bottom: 0;
    display: none;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: 80%;
}
$(document).ready(function(){
    $(".search-toggle").click(function(){
        $("#searchCollapse").slideToggle("slow");
        $(this).toggleClass("active");
		return false;
    });
});

Прошу заметить, что появляющийся блок занимает по высоте всё пространство родительского .wraper и ширину 80%. Если это важно для скрипта...
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2015, 13:22
Интересующийся
Отправить личное сообщение для dyhmzall Посмотреть профиль Найти все сообщения от dyhmzall
 
Регистрация: 02.12.2015
Сообщений: 13

так гуглите сначала)
slideToggle, слева направа, справа налево
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2015, 13:30
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Сообщение от dyhmzall Посмотреть сообщение
так гуглите сначала)
slideToggle, слева направа, справа налево
Да гуглю пол дня уже. Только все эти примеры открывают блок со строго заданной шириной в пикселах. А у меня в процентах. Адаптика потому что.
Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2015, 13:36
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

вот наподобие что мне нужно, но открывает слева направо. Можно как-то инвертировать этот код справа налево?
$('.search-toggle').click(function(){
	 $('#searchCollapse').animate({width: 'toggle'});
});
Ответить с цитированием
  #5 (permalink)  
Старый 02.12.2015, 13:46
Аспирант
Отправить личное сообщение для vettel Посмотреть профиль Найти все сообщения от vettel
 
Регистрация: 07.05.2015
Сообщений: 43

Сообщение от Lutsk Посмотреть сообщение
Да гуглю пол дня уже. Только все эти примеры открывают блок со строго заданной шириной в пикселах. А у меня в процентах. Адаптика потому что.
А что мешает сначала вычислить ширину элемента в JS (она все равно будет в пикселах), и потом уже двигать?
Ответить с цитированием
  #6 (permalink)  
Старый 02.12.2015, 14:02
Интересующийся
Отправить личное сообщение для dyhmzall Посмотреть профиль Найти все сообщения от dyhmzall
 
Регистрация: 02.12.2015
Сообщений: 13

$('.search-toggle').click(function(){
     $('#searchCollapse').animate({width: 'toggle'});
});


Как вариант: может сделать внутренни блок float: right. Тогда анимация увеличения размера будет влево. ну или сделать внешнему блоку text-aligh:right...
Ответить с цитированием
  #7 (permalink)  
Старый 02.12.2015, 14:30
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Сообщение от vettel Посмотреть сообщение
А что мешает сначала вычислить ширину элемента в JS (она все равно будет в пикселах), и потом уже двигать?
Не вариант. Адаптика, сэр.
Ответить с цитированием
  #8 (permalink)  
Старый 02.12.2015, 15:10
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

нашел решение с использованием jQuery UI:
$(".search-toggle").click(function () {
	var effect = 'slide';
	var options = { direction: 'right' };
	var duration = 700;
	$('#searchCollapse').toggle(effect, options, duration);
});

Но вот ради одного блока юзать UI - вариант не ахти. Поэтому вопрос пока открыт.
Ответить с цитированием
  #9 (permalink)  
Старый 02.12.2015, 15:11
Аспирант
Отправить личное сообщение для vettel Посмотреть профиль Найти все сообщения от vettel
 
Регистрация: 07.05.2015
Сообщений: 43

Сообщение от Lutsk Посмотреть сообщение
Не вариант. Адаптика, сэр.
Да причем здесь адаптика?
На момент клика берется блок и определяется его реальная ширина в пикселах на данный момент.
Хотя я не понимаю, причем здесь ширина блока. В коде, который кидали выше, не используется ширина вообще, чем он плох?
Ответить с цитированием
  #10 (permalink)  
Старый 02.12.2015, 15:13
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Сообщение от vettel Посмотреть сообщение
Да причем здесь адаптика?
На момент клика берется блок и определяется его реальная ширина в пикселах на данный момент.
Хотя я не понимаю, причем здесь ширина блока. В коде, который кидали выше, не используется ширина вообще, чем он плох?
Тем, что при уменьшении окна меняется ширина блока. Если задать в пикселах выезжающий - поламает верстку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ховер и появляющий блок Shuryga Элементы интерфейса 3 28.09.2015 14:39
Копирование блоков в блок maximus Events/DOM/Window 1 14.09.2013 19:40
как скрыть блок div по ключевому слову Sacred13 Элементы интерфейса 6 06.08.2013 19:13
Как сделать акардеон в которому выезжающий блок можно было закрыть! olehpdatu jQuery 3 06.04.2013 17:28
выезжающий блок при наведении на родителя andreychaki Общие вопросы Javascript 6 09.01.2013 13:50