По мере того, как мы входим в новое поколение игр с более высокой частотой кадров, все более сложными историями и более короткой загрузкой Иногда легко забыть, насколько впечатляющими были предыдущие поколения. Но еще в 1999 году оригинальный Pokémon Snap поразил меня. Я помню, как впервые играл в нее, когда мне было 9 лет. Моему юному…
Этот учебник поможет вам создать адаптивную карусель, используя свойство CSS scroll-snap и очень мало JavaScript для навигации. Вы можете использовать его для демонстрации продуктов, в качестве галереи или для своих отзывов — как в примере в этом руководстве. Итак, вот что мы будем создавать:
Миллионы шрифтов, тем и графики: ТОЛЬКО от 16,50 долларов США в месяц
WordPress темы
1200+ тем
Графические ресурсы
32 000+ изображений
СКАЧАТЬ
Создание
Создайте пустой HTML-документ и назовите его index.html . Добавьте базовый скелет HTML. Если вы используете Visual Studio Code, все, что вам нужно сделать, это ввести «!» и нажмите Enter. У вас получится вот это.
Документ
В этой демонстрации используется шрифт «Noto Sans». Давайте встроим этот шрифт из Google Fonts. Добавьте эту ссылку CDN под тегом заголовка, чтобы встроить обычный и курсивный стили этого шрифта.
Создайте свою таблицу стилей и назовите ее style.css . Свяжите таблицу стилей со своим HTML-документом под ссылкой Google fonts CDN, используя
Я загрузил три портретных изображения с Pexels и обрезал их квадратной формы для этой демонстрации. Вы можете добавить свой собственный. Назовите их testimonial1.jpg testimonial2.jpg и testimonial3.jpg .
Создание простого скроллера
Давайте сначала создадим простой горизонтальный скроллер с тремя элементами с такой же шириной, как у контейнера прокрутки.
HTML
Добавьте эту разметку в тег тела в свой HTML-файл:
Пункт 1
Пункт 2
Пункт 3
Здесь div отзывов действует как оболочка, внутри которой находится горизонтальный скроллер а затем три элемента div .
CSS
В style.css начните с некоторых общих стилей для всех элементов:
* {
маржа: 0;
отступ: 0;
размер коробки: рамка-рамка;
}
Добавьте эти стили к элементу body :
body {
семейство шрифтов: «Noto Sans», без засечек;
размер шрифта: 1em;
цвет: # 4A5568;
}
Ограничьте ширину обертки отзывов примерно до 800 пикселей и отцентрируйте ее.
Добавьте эти базовые стили, чтобы увидеть, как работает скроллер.
.scroller {
переполнение-x: прокрутка;
дисплей: гибкий;
}
.пункт {
минимальная ширина: 100%;
минимальная высота: 200 пикселей; /* Начать с */
цвет фона: # EDF2F7; / * Для демонстрации * /
}
Здесь вы можете увидеть такую секцию горизонтальной прокрутки.
.scroller {
/ * Здесь существующие стили * /
scroll-snap-type: x обязательный;
}
.пункт {
/ * Здесь существующие стили * /
прокрутка-привязка-выравнивание: центр;
}
Это все, что вам нужно для волшебства! Теперь проверьте свой браузер и прокрутите его по горизонтали. Вы заметите, что браузер строго привязывается к отображению всего элемента, как только вы в любой момент прекратите прокрутку. Таким образом достигается основное поведение карусели.
Добавление содержания
Давайте добавим содержание к элементам.
HTML
Eu rebum molestie per. Нет nostrud imperdiet abhorreant qui, hinc incorrupte vix ad. Vel id aliquip oblique. Primis feugait сидеть, грубый илуд удобный дуэт шт. Graece tempor eripuit sed в.
Элиз
Vitae pericula maluisset ut mei, pro eleifend gubergren eu. Et his brute graeci. Affert ponderum ei vel, dolorum accumsan ea имеет. Sea oblique salutatus ei, simul lucilius pri et. Errem melius temporibus ut eos
Джон
Ne est virtute indexum, quaeque vituperata cum ut. Te nisl quaeque pri. Vix ex autem latine, mel ne nobis scaevola, ei est dolor utinam commune. Pri unum doctus in, cu primis pertinax eos.
Нам нужен JavaScript, чтобы кнопки работали. Добавьте этот сценарий перед закрытием тега body .
В приведенном выше коде мы добавили обработчики событий click к кнопкам prev и next . Функциональность перехода к предыдущему или следующему элементу достигается с помощью метода scrollBy . Ознакомьтесь с синтаксисом и примерами метода element.scrollBy .
Вариант поведения : «гладкий» дает эффект плавного скольжения. Обратите внимание, что этот эффект не поддерживается в IE 11 и некоторых более старых версиях других браузеров.
Создание цикла
При желании вы можете сделать этот цикл карусели — нажатие кнопки «Далее» для последнего элемента заставляет карусель начинаться с начала и аналогичное поведение для кнопки «предыдущая», изменив методы в сценарии на следующие:
function scrollToNextItem () {
если (scroller.scrollLeft <(scroller.scrollWidth - itemWidth))
// Позиция прокрутки не в начале последнего элемента
scroller.scrollBy ({left: itemWidth, вверху: 0, поведение: 'гладкое'});
еще
// Достигнут последний элемент. Вернитесь к первому элементу, установив положение прокрутки на 0
scroller.scrollTo ({слева: 0, сверху: 0, поведение: «гладко»});
}
function scrollToPrevItem () {
если (scroller.scrollLeft! = 0)
// Позиция прокрутки не в начале первого элемента
scroller.scrollBy ({left: -itemWidth, верх: 0, поведение: 'гладкий'});
еще
// Это первый элемент. Перейти к последнему элементу, установив положение прокрутки на ширину скроллера
scroller.scrollTo ({left: scroller.scrollWidth, вверху: 0, поведение: 'гладкое'});
}
Делаем его полностью адаптивным
То, что у нас есть сейчас, уже реагирует. За исключением того, что для ширины браузера меньше 480 пикселей карта становится слишком узкой и длинной. Итак, давайте уменьшим отступ для элемента и карточки для этой ширины с помощью медиа-запросов.
Вот оно! Вы успешно создали адаптивную карусель для раздела отзывов с наименьшим количеством JavaScript, а также узнали о новых свойствах scroll-snap в CSS. Вы можете изменить эту карусель в соответствии со своими потребностями. Попробуйте использовать эту карусель для изображений различной ширины и посмотрите, как она себя ведет.
Здесь вы можете скачать полный исходный код.
Загрузить исходный код
Это сообщение может содержать партнерские ссылки. Смотрите наше раскрытие партнерских ссылок здесь .
Snap с включенной камерой Spectacles сегодня обновляет два новых стиля кадров. Новый солнечные лучи выглядят не так, как круговые очки, и больше похоже на то, что могла носить нокаута Анна Винтур, были ли они заинтересованы в том, чтобы оказаться на другой стороне объектива папарацци. Они оснащены всеми возможностями второго поколения Snap Spectacles: улучшенное качество изображения,…