Вход

Просмотр полной версии : Как повесить своё событие на slick dots?


Максим Ученик
06.10.2019, 05:53
Имеется обычный slick slider.
И так же у этого слайдера я включил dots.
Я хочу что бы при наведении на любой из dots менялся слайд!
Как это можно реализовать ?
Я пытался это сделать на нативном javascript но не хватает каких то знаний.Помогите сделать это

https://codepen.io/topicstarter/pen/ExxxoZm

рони
06.10.2019, 08:27
Максим Ученик,
var slider = $(".slider").slick({
infinite: true,
slidesToShow: 1,
slidesToScroll: 1,
dots: true
});
var lis = [...document.querySelectorAll(".slick-dots li")];
lis.forEach((el,i) => el.addEventListener("mouseenter", () => slider.slick("slickGoTo", i)));

Максим Ученик
06.10.2019, 08:35
не работает почему то! отрабатывает обычный click (FF)

рони
06.10.2019, 08:43
Максим Ученик,
при наведении на точки меняются слайды?

рони
06.10.2019, 08:47
Максим Ученик,
FF 69.0.2 полёт нормальный, при наведении.

рони
06.10.2019, 08:49
Максим Ученик,
<!DOCTYPE html>

<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
<style type="text/css">
.slider{
width: 300px;
margin: auto;
position: relative;
}
.slick-next,.slick-prev{
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.slick-next{
left: -100px;
}
.slick-prev{
right: -100px;
}
ul{
width: 100%;
height: 10px;
line-height:9px;
}
li{
float: left;
margin-left: 20px;
}
::marker{
font-size: 40px;
}
li button{
display: none;
}
</style>
</head>

<body>
<div class="slider">
<img src="https://placehold.it/300x100/0cc" alt="">
<img src="https://placehold.it/300x100/00c" alt="">
<img src="https://placehold.it/300x100/000" alt="">
</div>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>

<script>
var slider = $(".slider").slick({
infinite: true,
slidesToShow: 1,
slidesToScroll: 1,
dots: true
});
var lis = [...document.querySelectorAll(".slick-dots li")];
lis.forEach((el,i) => el.addEventListener("mouseenter", () => slider.slick("slickGoTo", i)));
</script>
</body>
</html>

Максим Ученик
06.10.2019, 08:49
при наведении вообще ни чего не происходит ..у меня по крайней мере

рони
06.10.2019, 08:50
Максим Ученик,
здесь пост №6 работает наведение?

Максим Ученик
06.10.2019, 08:54
Максим Ученик,
здесь пост №6 работает наведение?

вот щас работает - спасибо

рони
06.10.2019, 08:54
Максим Ученик,
перезагрузите эту страницу и запустите пример в #6

рони
06.10.2019, 08:54
вот щас работает
ok!

рони
06.10.2019, 08:55
Максим Ученик,
лучше чтоб все ссылки были с s
https

Максим Ученик
06.10.2019, 09:01
всё отлично работает - огромное спасибо