Как позиционировать элементы при инициализации очередного слайда slick?
Есть slick слайдер где на каждом слайде есть по 2 абсолютно спозиционированных интерактивных элемента при клике на которые происходят определенные действия.
Проблема в том, что при переключении слайдов, и эти элементы позиционируются с задержкой и получается эффект их выпрыгивания их стартовой позиции на свои законные места (если повращать слайдер - это видно). В демо примере даже почему-то прибавляется белая область снизу. Как инициализировать элементы заранее? Фидл <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.min.js"></script> <link href="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.css" rel="stylesheet"/> <style>.slider { width: 650px; margin: 0 auto; } img { width: 100%; height: 400px; } .slick-slide { position: relative; } #plus-1 { position: absolute; bottom: 141px; right: 20%; width: 65px; height: 65px; cursor: pointer; } #plus-2 { position: absolute; top: 45%; left: 20%; width: 65px; height: 65px; cursor: pointer; }</style> <script> $(document).ready(function() { $('.slider').slick({ slidesToShow: 1, slidesToScroll: 1, dots: true, infinite: true }); });</script> <div class="slider"> <div> <img src="http://kenwheeler.github.io/slick/img/fonz1.png" /> <img id="plus-1" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> <img id="plus-2" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> </div> <div> <img src="http://kenwheeler.github.io/slick/img/fonz2.png" /> <img id="plus-1" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> <img id="plus-2" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> </div> </div> |
Прелоадер сделайте =)
|
giwuf,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
j0hnik,
:-? Цитата:
Цитата:
|
Цитата:
Цитата:
j0hnik, не понял вас UPD: Ааа, понял! Получается, слайдер создает клоны слайдов с одинаковыми id и отсюда источник проблемы. Спасибо за подсказку |
giwuf,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css">.slider { width: 650px; margin: 0 auto; } .slick-slide img:first-child { width: 100%; height: 400px; } .slick-slide { position: relative; } .plus-1 { position: absolute; top: 45%; left: 20%; width: 65px; height: 65px; cursor: pointer; } .plus-1:nth-child(2) { left: auto; right: 20%; } </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.min.js"></script> <link href="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.css" rel="stylesheet"/> <script> $(function() { $('.slider').slick({ slidesToShow: 1, slidesToScroll: 1, dots: true, infinite: true }); }); </script> </head> <body> <div class="slider"> <div> <img src="http://kenwheeler.github.io/slick/img/fonz1.png" /> <img id="plus-1" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> <img id="plus-2" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> </div> <div> <img src="http://kenwheeler.github.io/slick/img/fonz2.png" /> <img id="plus-1" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> <img id="plus-2" class="plus-1" src="https://cdn0.iconfinder.com/data/icons/classic-icons/512/063.png" width="65" height="65"> </div> </div> </body> </html> |
рони, спасибо большое! Добра в вашу семью!
К сожалению, плюсовать не дает |
Часовой пояс GMT +3, время: 20:11. |