В этом блоге мы рассмотрим, как реализовать слайдер карусели в React. Я воссоздал веб-сайт для технологического стартапа, который предоставляет свои продукты для многих предприятий и с гордостью отображает логотипы этих брендов на своем веб-сайте. При воссоздании сайта я решил отображать бренды на автоматической, бесконечной карусели, позволяющей пролистывать страницы вручную.
Я использовал библиотеку под названием React Slick для создания слайдера карусели. Нам нужно сначала установить библиотеку, введя в нашу командную строку следующее:
npm install react-slick --save
yarn add react-slick
npm install slick-carousel --save
@import "~slick-carousel/slick/slick.css";
@import "~slick-carousel/slick/slick-theme.css";
Теперь мы погрузимся в создание нашего слайдера, который я назвал компоненту BrandSliderи импортируем Sliderиз него react-slickследующим образом:
import React, { useState } from 'react';
import Slider from 'react-slick';
import '../../styling/brandslider.css';
const BrandSlider = () => {
return (
)
}
Для каждого бренда я нашел png-файлы с логотипом в Google и сделал их примерно одинакового размера и цвета в Photoshop, чтобы придерживаться темы компании. Я импортировал каждое изображение, а затем создал массив, который я сопоставлю внутри компонента. В приведенном ниже примере я добавил не названия брендов, а только бренд, за которым следует номер.
import React, { useState } from 'react';
import Slider from 'react-slick';
import brandOne from '../../assets/Brand1Logo.png';
import brandTwo from '../../assets/Brand2Logo.png';
import brandThree from '../../assets/Brand3Logo.png';
import brandFour from '../../assets/Brand4Logo.png';
import brandFive from '../../assets/Brand5Logo.png';
import brandSix from '../../assets/Brand6Logo.png';
import brandSeven from '../../assets/Brand7Logo.png';
import brandEight from '../../assets/Brand8Logo.png';
import '../../styling/brandslider.css';
const images = [brandOne, brandTwo, brandThree, brandFour, brandFive, brandSix, brandSeven, brandEight];
const BrandSlider = () => {
return (
)
}
Теперь мы объявим новую переменную состояния, которую мы назовем « imageIndex» и установим ее в 0. Затем мы добавим наш основной код, который будет отображать массив, как показано ниже:
import React, { useState } from 'react';
import Slider from 'react-slick';
import brandOne from '../../assets/Brand1Logo.png';
import brandTwo from '../../assets/Brand2Logo.png';
import brandThree from '../../assets/Brand3Logo.png';
import brandFour from '../../assets/Brand4Logo.png';
import brandFive from '../../assets/Brand5Logo.png';
import brandSix from '../../assets/Brand6Logo.png';
import brandSeven from '../../assets/Brand7Logo.png';
import brandEight from '../../assets/Brand8Logo.png';
import '../../styling/brandslider.css';
const images = [brandOne, brandTwo, brandThree, brandFour, brandFive, brandSix, brandSeven, brandEight];
const BrandSlider = () => {
const [imageIndex, setImageIndex] = useState(0);
return (
<div className='slider'>
<p>Empowering leading global brands</p>
<Slider>
{images.map((img) => (
<div className='temp'>
<img src={img} alt={img} />
</div>
))}
</Slider>
</div>
)
}
Мы добавим classNameдля divas тернарный оператор, чтобы указать, какое изображение является «активным» (центрированным), а какое - нет. Мы также добавим настройки для настройки нашего слайдера (это может отличаться в вашем проекте).
import React, { useState } from 'react';
import Slider from 'react-slick';
import brandOne from '../../assets/Brand1Logo.png';
import brandTwo from '../../assets/Brand2Logo.png';
import brandThree from '../../assets/Brand3Logo.png';
import brandFour from '../../assets/Brand4Logo.png';
import brandFive from '../../assets/Brand5Logo.png';
import brandSix from '../../assets/Brand6Logo.png';
import brandSeven from '../../assets/Brand7Logo.png';
import brandEight from '../../assets/Brand8Logo.png';
import '../../styling/brandslider.css';
const images = [brandOne, brandTwo, brandThree, brandFour, brandFive, brandSix, brandSeven, brandEight];
const BrandSlider = () => {
const [imageIndex, setImageIndex] = useState(0);
const settings = {
infinite: true,
lazyload: true,
speed: 500,
slidesToShow: 5,
centerMode: true,
centerPadding: 0,
autoplay: true,
beforeChange: (current, next) => setImageIndex(next)
};
return (
<div className='slider'>
<p>Empowering leading global brands</p>
<Slider {...settings}>
{images.map((img, idx) => (
<div className={idx === imageIndex ? "slide activeSlide" : "slide"}>
<img src={img} alt={img} />
</div>
))}
</Slider>
</div>
)
}
.slide {
transform: scale(0.5);
transition: transform 300ms;
opacity: 0.2;
}
.activeSlide {
transform: scale(1.5);
transition: transform 300ms;
opacity: 1;
}
Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.
Введение Инсульт — это неотложная медицинская помощь, которая может случиться с кем угодно в любое время. Это происходит, когда приток крови к части мозга нарушается, что приводит к внезапной потере функции мозга.
Сколько раз вы, не задумываясь, выбрасывали пластиковую бутылку, стеклянную банку, алюминиевую банку или пакет экологически чистой энергии? Сколько раз вы хотели получить что-то взамен за их переработку? Если вы похожи на большинство людей, ответ, вероятно, много раз. Переработка часто рассматривается как хлопотное дело, рутинная работа или обязанность, не приносящая немедленных или ощутимых выгод.
В современном быстро меняющемся и конкурентном мире карьера играет важную роль в личностном росте, финансовой стабильности и общей удовлетворенности жизнью. Однако многие люди оказываются в безжалостном цикле застоя и неудовлетворенности, постепенно угасая в своей профессиональной жизни.
Привет, киберлюбители! Добро пожаловать обратно в серию OSINT по поиску угроз. В первой статье я рассказал вам об OSINT и его важности для поиска угроз.
Когда вы вырастаете, вам, как правило, говорят, что мир такой, какой он есть, и ваша жизнь состоит в том, чтобы просто жить своей жизнью внутри мира, никогда не рискуя своей жизнью, просто следовать установленному пути и умереть в конце, и стараться не слишком сильно бить стены. Но это очень ограниченная жизнь.