Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 46

Запоминать место контента при скролле

19.01.2016, 13:42. Показов 1678. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
при маленьких разрешениях, меню при скролле зафиксировано.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(document).ready(function () {
    var $menu = $("#menu");
    $(window).scroll(function () {
        if ($(this).scrollTop() > 40) {
            $menu.fadeOut('fast', function () {
                $(this).addClass("fixed")
                       .fadeIn('fast');
            });
        } else if ($(this).scrollTop() <= 40) {
            $menu.fadeOut('fast', function () {
                $(this).removeClass("fixed")
                       .fadeIn('fast');
            });
        }
    });
});
когда мы промотаем контент и откроем меню, то контент не сохраняет место и прокручивается вначало, так как при открытии меню на body вешается position: fixed.

помогите пожалуйста при помощи js запоминать место контента при открытии меню
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2016, 13:42
Ответы с готовыми решениями:

Место вывода основного контента
Подскажите пожалуйста как задать место вывода основного контента. Весь контент, привязанный к пунктам меню отображается в...

Отступить от верха при скролле
Товарищи, прошу помощи в такой задачке : есть некий div у которого есть background-image . Размер картинки-фона устанавливаются с...

Прокуртка блока при скролле
Добрый день, как можно реализовать по блочный скролл? Пример: http://muse-widgets.ru/demo/applescroll/

6
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 46
19.01.2016, 13:46  [ТС]
скрин приложил

это когда отрыто меню
HTML5
1
2
3
4
<body class="open">
<header id="menu" class="fixed"></header>
<div class="content">контент</div>
</body>
CSS
1
2
3
4
5
6
body.open {
overflow: hidden;
position: fixed;
width: 100%;
top: 0;
}
Миниатюры
Запоминать место контента при скролле  
0
23 / 23 / 9
Регистрация: 09.07.2014
Сообщений: 95
19.01.2016, 15:41
Сам такую штуку делал сегодня, получилось так:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<body id="body">
<nav id="canvas-navigation">
</nav>
<div id="canvas-body">
  <header>
    <button id="hamburger"><img src="/assets/img/burger.svg"></button>
  </header>
  <div id="view">
  </div>
  <div id="overlay"></div>
</div>
</body>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$canvas-navigation-width: 300px;
 
#canvas-body {
  background-color: white;
  left: 0;
  position: relative;
  -webkit-transition: left 0.1s;
  transition: left 0.1s;
}
 
#overlay {
  bottom: 0;
  display: none;
  position: fixed;
  top: 0;
  width: 100%;
}
 
#canvas-navigation {
  background-color: white;
  bottom: 0;
  display: block;
  left: 0;
  overflow-x: hidden;
  overflow-y: scroll;
  position: fixed;
  top: 0;
  width: $canvas-navigation-width;
}
 
body {
  overflow-x: hidden;
  &.is--pushed-right {
    overflow-y: hidden;
    #canvas-body {
      left: $canvas-navigation-width;
      #overlay {
        background-color: rgba(0, 0, 0, 0.1);
        display: block;
      }
    }
  }
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
    var hamburger = document.getElementById('hamburger');
    var overlay = document.getElementById('overlay');
    var body = document.getElementById('body');
    var scrollTop = 0;
    hamburger.addEventListener('click', function() {
      scrollTop = body.scrollTop;
      body.classList.add('is--pushed-right');
      body.scrollTop = scrollTop;
    }, false);
    overlay.addEventListener('click', function() {
      body.classList.remove('is--pushed-right');
    }, false);
0
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 46
19.01.2016, 16:53  [ТС]
у вас есть живой пример? так вообще ничего не понятно

Добавлено через 6 минут
если вы в своем примере зафиксируете header и поставите при открытии меню для body position: fixed, то у вас контент тоже не будет запоминать место.
0
23 / 23 / 9
Регистрация: 09.07.2014
Сообщений: 95
19.01.2016, 20:05
FBPMInc, весь код на работе. Собственно, оттуда и взял. Попробую в JSFiddle набросать. Запоминается положение контента с помощью яваскрипта (вешаем обработчик события на кнопку меню):

1. Запоминаем body.scrollTop
2. Добавляем класс к body, в вашем случае open. body.scrollTop автоматически становится равным 0
3. Присваиваем body.scrollTop сохраненное в шаге 1 значение

Добавлено через 52 минуты
FBPMInc, Готово, https://jsfiddle.net/yycfmuwt/. Весь код с комментариями.
0
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 46
20.01.2016, 11:23  [ТС]
https://jsfiddle.net/yycfmuwt/3/
когда body.open добавили position:fixed, контент перестал запоминать место.

мне нужно сделать, чтоб он запоминал
0
23 / 23 / 9
Регистрация: 09.07.2014
Сообщений: 95
20.01.2016, 11:39
Цитата Сообщение от FBPMInc Посмотреть сообщение
position:fixed
Не помню точно, но я тоже, вроде, как-то раз мучился с position: fixed. Потом оказалось, что он не нужен и я использовал вместо этого overflow: hidden. Нашел решение в инете, кажется.

Предлагаю выкинуть position: fixed.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.01.2016, 11:39
Помогаю со студенческими работами здесь

Фиксированное меню при скролле
Всем привет. Я заметил одну интересную шапку у лпгенератор(не реклама). У них при скролле появляется меню, слева логотип, по...

Анимация только при скролле.
Хочу чтобы у меня работала анимация только при скролле! &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta...

Смена background'a при скролле
У меня сайт начинается с div'a: .header {width: 100%; height: 600px; background: url(/resource/img/12.jpg); background-repeat:...

Фиксатор меню(при скролле)
Собственно, проблема заключается в том, что меню отказывается фиксироваться при скролле. &lt;div id=&quot;header&quot;&gt; ...

Загрузка gif при скролле
Здравствуйте, хочу сделать загрузку gif анимаций при скролле. Код для скролла я смог сделать, есть проблема. gif анимация полностью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru