Как сделать кнопку прокрутки вниз
Создаём кнопку «наверх» для сайта
Рассмотрим простой способ создания кнопки «наверх» для сайта, которая будет появляться при прокрутке страницы вниз. Разберем возможность реализации на jquery и чистом javascript. Найдём причины, по которым она может не работать.
Подключаем jQuery — прописываем загрузку последней версии библиотеки в секции «head» шаблона или где-то вверхней части сайта.
Выбираем подходящее изображение и загружаем его в каталог сайта. Представлю на выбор несколько вариантов. Скачать можно кликнув правой клавишей мышки по рисунку и нажав «Сохранить картинку как».
| | | | |
width: 100px; height: 40px; | width: 74px; height: 94px; | width: 60px; height: 60px; | width: 67px; height: 80px; | width: 63px; height: 61px; |
Скорость прокрутки можно регулировать в этой строке, изменяя число «300»:
Как сделать кнопку без jQuery
Можно сделать плавающую кнопку «наверх» на чистом JavaScript без использования сторонних библиотек. Стили берём из предыдущего примера. Скрипт и код копируем в любое место шаблона.
Первая функция отвечает за автоматическое перемещение к началу страницы, а вторая — за показ и скрытие кнопки в зависимости от положения прокрутки.
Что делать, если кнопка «наверх» не работает
Если кнопка не отображается, то измените в стилях свойство «display: none;» на «display: block;» и проверьте, появится ли она. Нет? Значит проблема в неправильном пути к изображению или код размещён в неподходящем месте. Попробуйте разместить его перед закрывающимся тегом «body».
Если кнопка при изменении свойства отображается, значит дело в скриптах. Следует проверить корректность подключения библиотеки jQuery и отсутствия конфликтов с другими скриптами. Всё в порядке? Тогда оберните скрипт в следующую конструкцию.
Это позволит выполнить скрипт после загрузки всей страницы. Не помогло? Пиши в комментариях и постараемся найти проблему вместе.
Кнопка «Наверх» на чистом JavaScript
Сложность
Описание
Создаем кнопку на нативном JavaScript, без jQuery. Создаем улучшенную кнопку, действующую как вверх, так и вниз.
HTML часть
Вначале разметка.
Добавляем в HTML тег a, задаем ему класс и заглавие(title). Содержимое тега будет спецсимвол ↑ он как раз и будет отображаться в виде стрелки. Важно заметить, что здесь у тега a нет атрибута href, т.к. он нам здесь не нужен.
CSS часть
Пишем стили.
В будущем вы сможете изменить внешний вид кнопки, сейчас сделаем «базовую» модель. Записываем в CSS представленный код, он стандартный, отмечу только класс back_to_top-show, мы будем его добавлять/убирать у нашей кнопке средствами javascript. В начале(после загрузки страницы) у кнопки стоит класс back_to_top и соответственно display:none; т.е. кнопка не отображается, когда мы добавим кнопке класс back_to_top-show то display станет block и кнопка появится на экране.
JavaScript часть
Теперь JavaScript.
Мы создадим два обработчика:
Вначале отслеживаем прокрутку документа.
Мы задаем два условия(if) и в зависимости от срабатывания одного из них, мы нашей кнопке добавляем/удаляем класс back_to_top-show, а следовательно делаем ее «видимой»/»невидимой». Когда мы прокручиваем документ на «один экран», кнопка появляется, и наоборот.
Теперь отслеживаем клик по кнопке.
Логично предположить, что мы можем совершить клик по кнопке только тогда, когда обработчик scrollотработал и показал ее нам. Задача здесь в добавлении анимации(плавный скролл наверх). Я решил эту задачу с помощью метода setTimeout и рекурсии(т.е. функция вызывает сама себя). За каждый такой вызов функции, мы будем прокручивать страницу вверх, в коде значение -80 это и есть параметр прокрутки документа за один «шаг»(вызов функции). Чтобы понять как это действует, нужно понимать как действует рекурсия и метод setTimeout, еще можно попробовать изменить значение -80 и второй параметр в setTimeout т.е в данном случае он равен нулю, в зависимости от этих параметров мы можем делать прокрутку быстрее/медленнее.
Готово!
Теперь соберем все воедино, переведем наш код в «строгий режим» путем добавления ‘use strict’; и обернем его в анонимную функцию, это нужно чтобы наши переменные не попали в глобальную область видимости( т.е. чтобы не было конфликта с другими нашими скриптами).
Как на ноутбуке листать вниз без мышки
Существует множество случаев, когда нам приходится листать страницы вниз, не используя мышь. Например, устройство сломалось, или мы взяли ноутбук на работу, но забыли мышь. Нам приходится искать альтернативные решения проблемы.
Способы на ноутбуке листать вниз без мыши
Пользоваться мышью не всегда комфортно. Постоянно крутить колесико может стать утомительным для наших пальцев. Поэтому существует 3 способа, которые могут заменить использование скролла мыши. Например:
Выбирается способ в зависимости от индивидуальных удобств пользователя.
Используя эмулятор мышки
Эмулятор позволяет листать страницу вверх и вниз без использования мыши. Для этого делаем следующее:
Для перелистывания страниц, мы будем пользоваться следующими клавишами:
1 | Вниз и влево по диагонали |
2 | Стандартное движение вниз |
3 | Вниз и вправо по диагонали |
4 | Стандартное движение вправо |
5 | Обычный щелчок (выделение файла) |
6 | Стандартное движение вправо |
7 | Вверх и влево по диагонали |
8 | Стандартное движение вверх |
9 | Вверх и по диагонали вправо |
+ | Двойной щелчок |
/ | Режим левой клавиши мыши |
— | Режим правой клавиши мыши |
* | Переключение клавиши мыши в оба направления |
Немного попрактиковавшись, можно запомнить назначение кнопок на память.
При помощи тачпада
Тачпад – устройство управления, которое есть только в ноутбуке (в обычном компьютере его нет). Оно находится под клавиатурой и представляет собой небольшой квадратик с двумя кнопками (одна выполняет функцию левой клавиши мыши, а другая правой). Сам же квадратик позволяет управлять курсором. Нам нужно просто водить по нему пальцем, а курсор на экране будет повторять наши движения. Но для начала нам нужно настроить тачпад. Для этого делаем следующее:
Но если мы длительное время не пользовалась тачпадом, а подключали внешнее устройство, он может не работать. Для его перезапуска используем следующую инструкцию:
Как прокрутить страницу при помощи клавиатуры
Клавиатура – приспособление, которое есть на каждом ноутбуке. При этом пользоваться ней очень просто. А для прокрутки страниц нам помогут следующие клавиши:
Еще один способ прокручивать – скачать программу виртуальной мыши с интернета. Она позволяет использовать клавиатуру для управления файлами.
Существует 3 основных способа замены компьютерной мыши. Каждый из способов разработчики старались делать максимально удобным, поэтому все они очень распространенные.
Кнопка «Наверх»: юзабилити и рекомендации
Упрощение навигации и архитектуры сайтов привело к появлению длинных страниц, требующих постоянной прокрутки. Для возврата пользователя в начало страницы сайты используют кнопку «наверх». В начале страницы расположены важные элементы навигации и взаимодействия с сайтом:
Тогда как операционные системы и мобильные платформы предлагают собственные методы быстрого возврата наверх, не все пользователи об этом знают и умеют пользоваться такими опциями.
Если на сайте появляются слишком длинные страницы (к примеру, в результате подгрузки товаров в каталоге), важно предоставить пользователю очевидный инструмент для быстрого возврата в начало.
Какой должна быть кнопка «Наверх», а какой нет
1. Используйте кнопку «Наверх» в случае, если длина страницы превышает 4 экрана. Для более коротких страниц в такой опции нет необходимости, так как пользователи легко возвращаются к началу скроллингом.
2. Стандартное расположение кнопки «Наверх» — правый нижний угол. Это наиболее ожидаемое место, где пользователь интуитивно ищет ее. Кнопка не должна перекрывать контент, также должна выделяться на фоне дизайна. Пользовательское тестирование показывает, что размещение кнопки «Наверх» в другой части экрана делает ее незаметной для пользователя.
3. Название кнопки должно быть четким. Не придумывайте другие варианты. У кнопки есть четкое назначение и название (наверх или в начало, возможно словосочетание «вернуться наверх»). Не используйте кнопку без сопроводительного текста, так как просто иконка может быть идентифицирована как некликабельный/нефункциональный элемент дизайна. Не используйте слова назад или просто вернуться, так как это ассоциируется с возвратом на предыдущую страницу, а не к началу страницы.
4. Не заменяйте графическую иконку ссылкой. Ссылка может быть проигнорирована пользователем, а графический значок, сопровождаемый текстом, показывает, что это элемент навигации.
5. Кнопка «Наверх» не должна перекрывать другие навигационные элементы, контент. Идеальная кнопка «Наверх» должна быть достаточно маленькой, чтобы не перекрывать контент, но в то же время достаточного размера для удобного взаимодействия с мобильного.
6. Кнопка «Наверх» должна визуально выделяться на фоне дизайна, быть легко заметной на фоне подложки. Иначе пользователи просто ее не заметят.
7. Кнопка «Наверх» должна появляться в интерфейсе не сразу, а после того, как пользователь прокрутит страницу на несколько экранов вниз и не проявит желание вернуться в начало страницы (скролл страницы вверх, клик по полосе прокрутки). В таком случае кнопка появляется именно тогда, когда она нужна пользователю, и не нарушает взаимодействие с другими элементами страницы.
8. Не анимируйте кнопку. Часто асессоры GetGoodRank сталкиваются с анимацией кнопки «Наверх». Это излишняя мера, никоим образом не влияющая на конверсию, однако обладающая чрезмерным раздражающим эффектом. Анимированные элементы отвлекают пользователя от основной задачи на странице.
9. Предоставьте возможность пользователю контролировать прокрутку. Не уводите пользователя автоматически в начало страницы, если он кликнул по полосе прокрутки, действие должно прямо указывать на намерение пользователя вернуться. Не применяйте автоматическую прокрутку при появлении нового контента в начале страницы. Просто укажите пользователю о том, что вверху есть свежий контент, к примеру сообщением «Новые публикации».
Есть ли альтернативы кнопки «Наверх»
Есть две наиболее очевидные и удобные альтернативы кнопке «Наверх»:
Проверить, насколько страницы сайта удобны для пользователей, можно в GetGoodRank!
Фиксация сайдбара при прокрутке вверх и вниз
Плагин Theia Sticky Sidebar для фиксации боковой колонки при прокрутке страницы
Зафиксировать боковую колонку сайта можно двумя способами:
1 Зафиксировать весь сайдбар вверху и внизу страницы. Когда заканчивается колонка, она останавливается, а при прокрутке вверх опять листается до конца. Данный вариант рассмотрен в этой заметке.
2 Зафиксировать определенный блок сайдбара. Когда при прокрутке вниз до определенного блока, он фиксируется и постоянно остается видимым. Этот вариант рассмотрим в будущем.
Примеры:
Установка:
Подключаем библиотеку jQuery и плагин Theia Sticky Sidebar:
Данный плагин использует библиотеку ResizeSensor для определения, когда сайдбар изменяет свою высоту, например, при использовании аккордеона
Если не использовать ResizeSensor, то плагин Theia Sticky Sidebar будет функционировать возможно даже плавнее, но не сможет определить изменение высоты ваших блоков в колонке.
Использование:
HTML структура сайта:
div‘ы с классом theiaStickySidebar являются необязательными, но настоятельно рекомендуются. Если вы их не создадите, скрипт создаст их сам, но при этом могут возникнуть проблемы при использовании рекламы или фреймов.
А также используйте на своей странице, иначе можно столкнуться со странными проблемами.
И добавляем скрипт:
Если возникают проблемы с установкой или что-то не так работает, можете посмотреть примеры с минимальными стилями и соотв. их код: Пример с 2-мя колонками и Пример с 4-мя колонками
Настройки:
containerSelector
Контейнер боковой панели.
Если не указан, то используется родительский элемент.
additionalMarginTop
Отступ сверху, когда сайдбар зафиксирован вверху
additionalMarginBottom
Отступ снизу, когда сайдбар зафиксирован внизу
updateSidebarHeight
Обновляет высоту боковой панели
minWidth
Отключение фиксирования сайдбара если ширина экрана меньше указанной. Необходимо для адаптивных сайтов.
disableOnResponsiveLayouts
Пытается автоматически определить малые экраны и отключить фиксацию если панели будут находиться друг на друге
defaultPosition
Боковая панель должна иметь нестатичное положение, т.к. при фиксировании использует абсолютное.
По умолчанию: relative
Смотрите также:
Пукающая прокрутка
Интересный звуковой эффект при прокрутке страницы
Фиксация блока при прокрутке
2 варианта зафиксировать блок при прокрутке страницы (на jQuery и на чистом CSS)
Анимационные эффекты при прокрутке страницы
jQuery плагин ScrollMe для добавления простых анимационных эффектов на веб-страницы.
Добавить комментарий:
Комментарии:
Может кому-нибудь пригодится и будет полезно 🙂 Сверху сразу над сайдбаром расположил меню. Некоторые ссылки (2 последние справа от экрана, равномерно растянутые Flexbox => align-items: center + justify-content: space-evenly) вели себя весьма странно: только в некоторых местах ссылок можно было увидеть их активированными — в основном были недоступны. Проблема решилась указанием пиксел (px) в скрипте. Пример: additionalMarginTop: 30 заменить на additionalMarginTop: 30px Остальные величины (проценты и прочие) не проверял за ненадобностью лично мне. Удачи!
Ошибка — прошу прощения, проглядел: перестал работать скрипт, (при внесении px) — не прокручивается сайдбар.
Прошу прощения, но не работает. Конкретно: сделал структуру согласно HTML статьи сайта, подключил все JS и т.д. — не заработало. Стал смотреть код страницы с примерами и выяснилось, что без подключения стороннего CSS (о котором ни слова в статье) работать не будет. А когда стал смотреть этот CSS, понял, что проще это всё найти в другом месте: CSS весьма загрязнён (т.е. уже «заточен» под личные нужды) и время, потраченное на его «разбор кода», удаление ненужного, правку и чистку, того не стоит. Было бы правильнее выложить в статье абсолютно чистый код: HTML и CSS, чтобы люди напрасно время не тратили. Примеры из «Скачать плагин» работают, но и там есть некоторые нюансы и «недостатки» (назовём это так), вылезающие, когда начинаешь верстать нечто иное на их базе.
У плагина нет стилей, нужно просто колонки расставить под него правильно (но они в каждом случае уникальные и имеют свои стили).
А то что в примере стили, это стили оформления, а не плагина.
Вот Пример без стилей вообще (2 штуки только, для колонок)
Quote: «2 штуки только, для колонок» — не понял, что имеется ввиду — в примере вижу 4 колонки. Код пока не смотрел. Спасибо!
Сможете выложить ещё один пример, но конкретно под 2 колонки и с чистым CSS (отступы текста, изображений как в Ваших демо на странице «Демо»), а также адаптация под просмотр на мобильных? Самому придётся долго разбираться — там имеются взаимосвязи. Заранее благодарю 🙂
Как то так: Пример (стили в коде страницы посмотрите).
Только у вас они свои же, сетки (бутстрап или еще что то) и т.д.
Вы лучше пришлите страницу или архивом, или на codepen, или ссылку. Посмотрю что именно не работает у вас.
Те стили, которые вижу, вполне подойдут (пока не проверял). Если будут «заморочки», задам ещё вопрос. Спасибо!
P.S.: Спасибо! Всё получилось (смайлик).
Если в колонке два вложенных дива, например вверху есть неподвижный блок, то плагин отказывается работать.
Супер решение, спасибо! Но при прокрутке возникает баг при срабатывании прилипания — сайд бар смещается влево, потом снова возвращается. Вот фото: http://prntscr.com/o1cakm
Лучше конечно ссылку дать.
С позициями какие-то конфликты. У вас же еще используется бутстрап сетка или еще что то.
У меня он подключен прямо к колам, примерно так:
Дружище, респект тебе большой за этот плагин! Супер!
Здравствуйте. Пытаюсь поставить, но не выходит, сможете помочь в установке?