Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2017, 19:13
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Элемент не должен теряться
У меня была задача со спойлерами.
Решение которой здесь: Спойлер с динамической подгрузкой

В показанном решении есть небольшой недостаток. Решение само, безусловно, замечательное.

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

Т. е. не "раскрыл - увидел", а "раскрыл - прокрутил к - увидел". Лишнее действие.

Хотелось бы избежать лишней прокрутки. Как сделать так, чтобы лишнего действия (прокрутки) избежать?
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2017, 19:14
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Это происходит, если спойлеров много, а внутри них достаточно много текста.
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2017, 19:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

daslex,
Сообщение от рони
daslex,
вы не пробовали сделать так: форум - поиск - открывашка - и выбрать из 300 вариантов
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2017, 19:35
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Знать бы, что искать ещё.
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2017, 19:39
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Ноль толку.
Скроллинг якорю отступ сверху
при скроллинге блок исчезает
переход к блоку
Focus() без скроллинга

И т. д.
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2017, 19:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

daslex,
Открывашка 257 со скролингом к заголовку отрытого блока
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2017, 19:57
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Возможно, оно.
Как тот код переправить к своему варианту я не знаю...
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2017, 20:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

daslex,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .spoiler_body {
  display: none;
}
.active{
  display: block;
}
  body{
    height:  2000px;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    $(".spoiler_head").click(function() {
        var a = $(this).next(".spoiler_body");
        $(".spoiler_body").not(a.toggleClass("active")).removeClass("active");
        a.is(".active") && a[0].scrollIntoView();
    })
});
  </script>
</head>

<body>
<div class="spoiler_head">Спойлер №1 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 1</div>
<div class="spoiler_head">Спойлер №2 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 2</div>
<div class="spoiler_head">Спойлер №3 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 3</div>
<div class="spoiler_head">Спойлер №4 (кликните для открытия/закрытия)</div>
<div class="spoiler_body">Текст спойлера 4</div>
</body>
</html>

Последний раз редактировалось рони, 27.01.2017 в 20:38.
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2017, 20:23
Кандидат Javascript-наук
Отправить личное сообщение для daslex Посмотреть профиль Найти все сообщения от daslex
 
Регистрация: 17.04.2015
Сообщений: 125

Спасибо.
Можно немного это изменить и делать мгновенный скроллинг?

Мне не нужно, чтобы видно было, как страница прокручивается.
Ответить с цитированием
  #10 (permalink)  
Старый 27.01.2017, 20:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

daslex,
смотрите код выше снова
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последний элемент newbie guy jQuery 10 15.11.2015 22:07
определить элемент под перетаскиваемым элементом slavaspirit Элементы интерфейса 3 26.07.2015 01:49
Выбрать элемент у родителя которого сын это элемент по которому кликнули MalikSPB Events/DOM/Window 8 30.12.2012 12:22
Выбрать элементы, в которые вложен элемент с id. Вадимчег jQuery 3 24.11.2012 10:38
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10