Ширина окна слайдера jquery - PullRequest
0 голосов
/ 23 мая 2018

Я тестирую ползунок jquery полной ширины, и код ниже:

var width = $(window).width();
console.log('width 1 = '+width);
var width = window.innerWidth;
console.log('width 2 = '+width);
var width = document.body.parentNode.clientWidth;
console.log('width 3 = '+width);

var animationSpeed = 1000;
var pause = 2000;
var currentSlide = 1;

//cache DOM elements
var $slider = $('#slider');
var $slideContainer = $('.slides', $slider);
var $slides = $('.slide', $slider);

var interval;

function startSlider() {
    interval = setInterval(function() {
        $slideContainer.animate({'margin-left': '-='+width}, animationSpeed, function() {
            if (++currentSlide === $slides.length) {
                currentSlide = 1;
                $slideContainer.css('margin-left', 0);
            }
        });
    }, pause);
}
function pauseSlider() {
    clearInterval(interval);
}

$slideContainer
    .on('mouseenter', pauseSlider)
    .on('mouseleave', startSlider);

startSlider();

html:

<div id="slider">
  <ul class="slides">
    <li class="slide slide1"><img src="<?php echo base_url('public/img/carousel/carousel-1.jpg'); ?>" alt=""></li>
    <li class="slide slide2"><img src="<?php echo base_url('public/img/carousel/carousel-2.jpg'); ?>"</li>
    <li class="slide slide3"><img src="<?php echo base_url('public/img/carousel/carousel-3.jpg'); ?>"</li>
    <li class="slide slide4"><img src="<?php echo base_url('public/img/carousel/carousel-4.jpg'); ?>"</li>
    <li class="slide slide5"><img src="<?php echo base_url('public/img/carousel/carousel-5.jpg'); ?>"</li>
    <li class="slide slide6"><img src="<?php echo base_url('public/img/carousel/carousel-1.jpg'); ?>"</li>
  </ul>
</div>

Это работает нормально, за исключением проблемы с шириной области просмотра.Существует проблема с вертикальной полосой прокрутки, и если ширина неправильная, очевидно, что слайд перемещается в боковом направлении на неправильную величину.Я проверяю «ширину» с помощью консольного журнала (см. Код выше), а «ширина 1» и «ширина 3» дают ту же ширину, которая работает нормально, скажем, в Waterfox.Однако, скажем, в Chrome и Firefox он слишком мал на 17 пикселей (ширина вертикальной полосы прокрутки).Но если я использую 'width 2', который работает в Chrome и Firefox, он снова слишком велик для Waterfox на 17px.Я нашел несколько сообщений, ссылающихся на это, но они либо предлагают то, что я уже делаю, но не работают, либо оставляют это нерешенным.Кто-нибудь может предложить простое исправление?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...