Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как повесить своё событие на slick dots? (https://javascript.ru/forum/events/78574-kak-povesit-svojo-sobytie-na-slick-dots.html)

Максим Ученик 06.10.2019 05:53

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

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

рони 06.10.2019 08:27

slick dots mouseenter
 
Максим Ученик,
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

Цитата:

Сообщение от рони (Сообщение 513517)
Максим Ученик,
здесь пост №6 работает наведение?

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

рони 06.10.2019 08:54

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


Часовой пояс GMT +3, время: 23:46.