Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2015, 09:04
Новичок на форуме
Отправить личное сообщение для lipinart Посмотреть профиль Найти все сообщения от lipinart
 
Регистрация: 09.09.2015
Сообщений: 4

jQuery-Accordion Как сделать скроллинг на открытую вкладку?
Как сделать скроллинг на открытую вкладку?
Пробовал получить позицию текущей вкладки и скроллить до неё, но почему-то не работает.


$(document).ready(function(){
	$(".set > a").on("click", function(){
		if($(this).hasClass('active')){
			$(this).removeClass("active");
			$(this).siblings('.content').slideUp(200);
			
		}else{
			$(".set > a").removeClass("active");
			$(this).addClass("active");
			$('.content').slideUp(200);
			$(this).siblings('.content').slideDown(200);
		}
		var scrTop = $(this).offset().top;// получаем положение вкладки
		$(document).scrollTop(scrTop); // пытаюсь скроллить на это значение
	});
	$(".set > a.activity").click();// одна вкладка открыта по умолчанию, имитация клика.
});


Разметка:
<div class="accordion-container" role="tablist" aria-multiselectable="true">
	<div class="set">
		<a role="button" href="#">Panel header 1</a>
		<div class="content" role="tab">
			<p>Panel text</p>
		</div>
	</div>
	<div class="set">
		<a role="button" href="#">Panel header 2</a>
		<div class="content" role="tab">
			<p>Panel text</p>
		</div>
	</div>
	<div class="set">
		<a role="button" href="#">Panel header 3</a>
		<div class="content" role="tab">
			<p>Panel text </p>
		</div>
	</div>
</div>

Последний раз редактировалось lipinart, 09.09.2015 в 09:08.
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2015, 09:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

lipinart,
1. отменить переход по ссылке.
2. строка 11 $(this).siblings('.content').slideDown(200 сюда ваш скролинг);
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2015, 09:50
Новичок на форуме
Отправить личное сообщение для lipinart Посмотреть профиль Найти все сообщения от lipinart
 
Регистрация: 09.09.2015
Сообщений: 4

Да, заподозрил анкеры. Сделал как посоветовали:
$(document).ready(function(){
	$(".set > a").on("click", function(event){
		event.preventDefault();
		if($(this).hasClass('active')){
			$(this).removeClass("active");
			$(this).siblings('.content').slideUp(200, function(){
			});
			
		}else{
			$(".set > a").removeClass("active");
			$(this).addClass("active");
			$('.content').slideUp(200);
			$(this).siblings('.content').slideDown(200);
		}
	});
	$(".set > a.activity").click();
});


В итоге скроллить ничего не пришлось, все остается на своих местах. Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать без участия JQuery? AntonMs Общие вопросы Javascript 4 26.04.2015 06:49
как сделать выборку jquery используя переменную? alex162341 jQuery 10 29.01.2015 20:51
Как сделать шкалу для Скроллера\Ползунока Jquery UI mjav4ik jQuery 1 15.03.2013 17:46
Как сделать 2 галереи JQuery на одной странице? orendzi jQuery 8 16.07.2011 15:22
Accordion на Mootols, как сделать активацию при наведении курсора? gwen Библиотеки/Тулкиты/Фреймворки 1 18.08.2009 00:03