В части III нашей серии Slick Slider мы покажем вам, как добавить анимацию в ваш Hero Slider с помощью animate.css от Дэниела Идена. CSS стал более мощным, чем когда-либо, и плагины, которые были созданы в результате, позволяют вам добавить интерактивности на ваш сайт, как никогда раньше. Эта статья покажет вам, как добавить анимацию в слайдер героев с помощью animate.css.
Если вы пропустили Часть I нашей серии Slick Slider о добавлении главного слайдера на свой сайт, вы можете найти ее здесь.
Ниже приведены HTML, CSS и JavaScript, необходимые для анимации ваших главных изображений.
Шаг 1
Добавьте приведенный ниже HTML-код туда, где вы хотите разместить слайдер анимированного героя.
<div class="ct-header ct-header--slider ct-slick-custom-dots" id="home"> <div class="ct-slick-homepage" data-arrows="true" data-autoplay="true"> <div class="ct-header tablex item" data-background="https://www.solodev.com/assets/hero-slider/slide1.jpg"> <div class="ct-u-display-tablex"> <div class="inner"> <div class="container"> <div class="row"> <div class="col-md-8 col-lg-6 slider-inner"> <h1 class="big animated">Big Data. Realtime Insight.</h1> <p class="animated">Leverage your data and improve marketing and sales ROI.</p> <a class="btn btn-transparent btn-lg text-uppercase animated" href="">Learn More</a> </div> </div> </div> </div> </div> </div> <div class="ct-header tablex item" data-background="https://www.solodev.com/assets/hero-slider/slide2.jpg"> <div class="ct-u-display-tablex"> <div class="inner"> <div class="container"> <div class="row"> <div class="col-md-8 col-lg-6 slider-inner"> <h1 class="big animated">Disrupting Industries with Grace</h1> <p class="animated">WebCorpCo is at the forefront of digital marketing, content management, automated marketing, and more.</p> <a class="btn btn-transparent btn-lg text-uppercase animated" href="">Learn More</a> </div> </div> </div> </div> </div> </div> <div class="ct-header tablex item" data-background="https://www.solodev.com/assets/hero-slider/slide3.jpg"> <div class="ct-u-display-tablex"> <div class="inner"> <div class="container"> <div class="row"> <div class="col-md-8 col-lg-6 slider-inner"> <h1 class="big animated">Moving Business Forward</h1> <p class="animated">Learn how WebCorpCo can take your business to the next level.</p> <a class="btn btn-transparent btn-lg text-uppercase animated" href="">Learn More</a> </div> </div> </div> </div> </div> </div> </div> <!-- .ct-slick-homepage --> </div> <!-- .ct-header -->
Шаг 2
Добавьте приведенный ниже CSS в основную таблицу стилей вашего веб-сайта.
.slick-slider { position: relative; display: block; box-sizing: border-box; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-touch-callout: none; -khtml-user-select: none; -ms-touch-action: pan-y; touch-action: pan-y; -webkit-tap-highlight-color: transparent; } .slick-list { position: relative; display: block; overflow: hidden; margin: 0; padding: 0; } .slick-list:focus { outline: none; } .slick-list.dragging { cursor: pointer; cursor: hand; } .slick-slider .slick-track, .slick-slider .slick-list { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } .slick-track { position: relative; top: 0; left: 0; display: block; } .slick-track:before, .slick-track:after { display: table; content: ''; } .slick-track:after { clear: both; } .slick-loading .slick-track { visibility: hidden; } .slick-slide { display: none; float: left; height: 100%; min-height: 1px; } [dir='rtl'] .slick-slide { float: right; } .slick-slide img { display: block; } .slick-slide.slick-loading img { display: none; } .slick-slide.dragging img { pointer-events: none; } .slick-initialized .slick-slide { display: block; } .slick-loading .slick-slide { visibility: hidden; } .slick-vertical .slick-slide { display: block; height: auto; border: 1px solid transparent; } .slick-arrow.slick-hidden { display: none; } .slick-prev, .slick-next { position: absolute; display: block; width: 60px; height: 100px; cursor: pointer; background: transparent; top: 50%; margin-top: -45px; font-size: 0; border: none; z-index: 2; } .slick-prev:before, .slick-next:before, .slick-prev:after, .slick-next:after { content: ''; position: absolute; background: #fff; height: 2px; width: 50px; top: 50%; left: 5px; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } .slick-prev:before, .slick-next:before { margin-top: -22px; } .slick-prev:after, .slick-next:after { margin-top: 22px; margin-top: 2.2rem; } .slick-prev:hover:before, .slick-next:hover:before { margin-top: -18px; margin-top: -1.8rem; } .slick-prev:hover:after, .slick-next:hover:after { margin-top: 18px; margin-top: 1.8rem; } .slick-prev { left: -7px; left: -0.7rem; } .slick-prev:before { -webkit-transform: rotate(-60deg); -ms-transform: rotate(-60deg); transform: rotate(-60deg); } .slick-prev:after { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .slick-prev:hover:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); } .slick-prev:hover:after { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .slick-next { right: -7px; right: -0.7rem; } .slick-next:before { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .slick-next:after { -webkit-transform: rotate(-60deg); -ms-transform: rotate(-60deg); transform: rotate(-60deg); } .slick-next:hover:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .slick-next:hover:after { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); } .ct-slick-arrows--type2 .slick-prev, .ct-slick-arrows--type2 .slick-next { opacity: 0.85; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=85); -webkit-transition: all 250ms ease-in-out; transition: all 250ms ease-in-out; } .ct-slick-arrows--type2 .slick-prev:before, .ct-slick-arrows--type2 .slick-next:before, .ct-slick-arrows--type2 .slick-prev:after, .ct-slick-arrows--type2 .slick-next:after { background-color: #fff; height: 15px; height: 1.5rem; width: 70px; width: 7rem; } .ct-slick-arrows--type2 .slick-prev:before, .ct-slick-arrows--type2 .slick-next:before { margin-top: -20px; margin-top: -2rem; } .ct-slick-arrows--type2 .slick-prev:after, .ct-slick-arrows--type2 .slick-next:after { margin-top: 20px; margin-top: 2rem; } .ct-slick-arrows--type2 .slick-prev:hover:before, .ct-slick-arrows--type2 .slick-next:hover:before { margin-top: -20px; margin-top: -2rem; } .ct-slick-arrows--type2 .slick-prev:hover:after, .ct-slick-arrows--type2 .slick-next:hover:after { margin-top: 20px; margin-top: 2rem; } .ct-slick-arrows--type2 .slick-prev:hover:active, .ct-slick-arrows--type2 .slick-next:hover:active { opacity: 1; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); } .ct-slick-arrows--type2 .slick-prev { left: 10px; left: 1rem; } .ct-slick-arrows--type2 .slick-prev:before { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); } .ct-slick-arrows--type2 .slick-prev:after { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .ct-slick-arrows--type2 .slick-prev:hover:before { margin-top: -27px; margin-top: -2.7rem; -webkit-transform: rotate(-60deg); -ms-transform: rotate(-60deg); transform: rotate(-60deg); } .ct-slick-arrows--type2 .slick-prev:hover:after { margin-top: 27px; margin-top: 2.7rem; -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .ct-slick-arrows--type2 .slick-next { right: 10px; right: 1rem; } .ct-slick-arrows--type2 .slick-next:before, .ct-slick-arrows--type2 .slick-next:after { left: auto; right: 0; } .ct-slick-arrows--type2 .slick-next:before { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .ct-slick-arrows--type2 .slick-next:after { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); } .ct-slick-arrows--type2 .slick-next:hover:before { margin-top: -27px; margin-top: -2.7rem; -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .ct-slick-arrows--type2 .slick-next:hover:after { margin-top: 27px; margin-top: 2.7rem; -webkit-transform: rotate(-60deg); -ms-transform: rotate(-60deg); transform: rotate(-60deg); } #home.ct-header.ct-header--slider { background-size: cover; } .ct-header .ct-slick { margin-bottom: 0; } .slick-initialized .slick-slide { display: block; } .ct-u-display-tablex { display: table; width: 100%; height: 600px; } .ct-u-display-tablex > .inner { display: table-cell; width: 100%; vertical-align: middle; } .ct-header h1.big { font-size: 6.7rem; line-height: 1; color: #fff; font-family: 'Open Sans Condensed', sans-serif; font-weight: 700; padding-top: 50px; } .ct-header p { font-size: 2.3rem; line-height: 1.1; margin: 30px 0 40px; color: #fff; } .btn { text-transform: uppercase; font-weight: bold; padding: 15px 26px; padding: 1.5rem 2.6rem; color: #fff; border-radius: 0; border: none; font-size: 22px; font-size: 2.2rem; } * { outline: none !important; } .btn:hover, .btn:focus, .btn:active { color: #fff; } .btn-transparent { background-color: transparent; border: 3px solid #fff; } .ct-slick .slick-track, .ct-slick .slick-list, .ct-slick .item, .ct-slick .slick-item { min-height: inherit; } .ct-slick .item { background-size: cover; } .slick-list { height: 600px; } /* Transitions */ .activate { -moz-opacity: 1; -khtml-opacity: 1; -webkit-opacity: 1; opacity: 1; -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=1 * 100); filter: alpha(opacity=1 * 100); } .animated { -moz-opacity: 0; -khtml-opacity: 0; -webkit-opacity: 0; opacity: 0; -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0 * 100); filter: alpha(opacity=0 * 100); }
Шаг 3
Добавьте приведенный ниже код JavaScript на страницу, где будет располагаться ваш главный слайдер.
$(document).ready(function(){ $('.ct-slick-homepage').on('init', function(event, slick){ $('.animated').addClass('activate fadeInUp'); }); $('.ct-slick-homepage').slick({ autoplay: true, autoplaySpeed: 3000, pauseOnHover: false, }); $('.ct-slick-homepage').on('afterChange', function(event, slick, currentSlide) { $('.animated').removeClass('off'); $('.animated').addClass('activate fadeInUp'); }); $('.ct-slick-homepage').on('beforeChange', function(event, slick, currentSlide) { $('.animated').removeClass('activate fadeInUp'); $('.animated').addClass('off'); }); }); $(document).ready(function() { if ($('[data-background]').length > 0) { $('[data-background]').each(function() { var $background, $backgroundmobile, $this; $this = $(this); $background = $(this).attr('data-background'); $backgroundmobile = $(this).attr('data-background-mobile'); if ($this.attr('data-background').substr(0, 1) === '#') { return $this.css('background-color', $background); } else if ($this.attr('data-background-mobile') && device.mobile()) { return $this.css('background-image', 'url(' + $backgroundmobile + ')'); } else { return $this.css('background-image', 'url(' + $background + ')'); } }); } });
Шаг 4
Добавьте нижеприведенные ссылки на страницу, где будет жить ваш главный слайдер.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css" rel="stylesheet" type="text/css" /> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.js" type="text/javascript"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
Есть много способов использовать возможности CSS и JavaScript для добавления интерактивности на ваши веб-страницы, и animate.css — еще один пример этого.
Исходно опубликовано в блоге Солодева
Узнайте о возможностях платформы Solodev Web Design на solodev.com!
Предоставлено вам командой Solodev. Solodev — это облачная система управления веб-контентом, которая дает пользователям свободу воплощать в жизнь удивительные веб-дизайны.