Есть слайдер slick
. Слайды с белым и черным фоном (реализованный через класс .black
и .white
).
Как сделать на jQuery, чтобы в момент когда был активен слайд, например с добавочным классом .black
, менялся фон в меню сайта?
$('.slider').slick({
arrows: false,
autoplay: true,
adaptiveHeight: true
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js"></script>
<nav>
<ul>
<li><a href="#">Main</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contacts</a></li>
</ul>
</nav>
<div class="slider">
<div class="slide-item white"></div>
<div class="slide-item black"></div>
</div>
Из задачи не ясно, на какой цвет вы хотите и как менять, но в целом для решения задачи можете использовать событие смены слайдов. Внутри проверять, цвет текущего слайда, и исходя из этого менять цвет меню.
Возможно, есть смысл смену фона меню сделать с css-анимацией, с той же продолжительностью, что и смена слайда. и менять цвет меню в beforeChange
.
$('.slider').slick({
arrows: false,
autoplay: true,
adaptiveHeight: true
});
$(".slider").on('afterChange', function(event, slick, currentSlide){
var isBlack = slick.$slides.eq(currentSlide).hasClass('black');
$("nav").toggleClass('black', isBlack)
.toggleClass('white', !isBlack);
});
.slide-item { height : 50px; }
.white { }
.black { background-color: black; color: white; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Add the slick-theme.css if you want default styling -->
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.1/slick/slick.css"/>
<!-- Add the slick-theme.css if you want default styling -->
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.1/slick/slick-theme.css"/>
<script type="text/javascript" src="//cdn.jsdelivr.net/gh/kenwheeler/slick@1.8.1/slick/slick.min.js"></script>
<nav>
<ul>
<li><a href="#">Main</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contacts</a></li>
</ul>
</nav>
<div class="slider">
<div class="slide-item white">white</div>
<div class="slide-item black">black</div>
</div>
Вот очень абстрактное решение, не проверял, т к нужно создавать слик слайдер. И его можно и нужно оптимизировать.
if $('slider .slide-item.white').hasClass('active') {
$('menu').hasClass('black');
$('menu').removeClass('black');
$('menu').addClass('white');
} else if $('slider .slide-item.black').hasClass('active') {
$('menu').hasClass('white');
$('menu').removeClass('white');
$('menu').addClass('black');
}
.menu.black {
background-color: black;
}
.menu.white {
background-color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul class="menu">
<li><a href="#">Main</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Contacts</a></li>
</ul>
</nav>
<div class="slider">
<div class="slide-item white"></div>
<div class="slide-item black"></div>
</div>
Очередной троллинг от Internet Explorer (во всех других браузерах, в тч
div находится во внешнем <div class="first-div">, как при нажатии на <div class="first-div"> менять стиль внутреннего div, а при ещё одном нажатии откатывать...
Товарисчи помогите, начал разбираться с галереей, столкнулся с проблемой увеличения картинки при нажатии на неё мышойВот сайт: http://davidoff
ЗдравствуйтеНе работает вертикальная прокрутка на моем разрабатываемом сайте, именно колесиком в Chrome и Opera (версии самые новые), остальными...