Показать сообщение отдельно
  #29 (permalink)  
Старый 24.12.2015, 09:44
Кандидат Javascript-наук
Отправить личное сообщение для Cdelphi78 Посмотреть профиль Найти все сообщения от Cdelphi78
 
Регистрация: 30.11.2015
Сообщений: 117

Кто нибуть может мне обьяснить как работает этот скрипт? Почему слайдер лихорадит так в адаптиве?
<script>
008
 
009
    var slideWidth,
010
    sliderTimer,
011
    currentSlide = 0,
012
    len;
013
 
014
function StarT () {
015
     if($(window).width()>980) slideWidth = 980;
016
     else slideWidth = parseInt($(window).width());// alert(slideWidth);
017
 
018
 
019
function nextSlide() {
020
    currentSlide++;
021
    if (currentSlide >= len) currentSlide = 0;
022
    $(".slidewrapper").animate({
023
        left: -currentSlide * slideWidth
024
    }, 800)
025
}
026
 
027
function prevSlide() {
028
    currentSlide--;
029
    if (currentSlide < 0) currentSlide = len - 1;
030
    $(".slidewrapper").animate({
031
        left: -currentSlide * slideWidth
032
    }, 800)
033
}
034
$(function() {
035
    $('#slider').css({'max-width':slideWidth+'px','height':''+parseInt(.307*slideWidth)+'px'});
036
 
037
    len = $(".slidewrapper").children().length
038
    $(".slidewrapper").width(len * slideWidth);
039
    sliderTimer = setInterval(nextSlide, 3000);
040
    $("#slider").on({
041
        mouseenter: function() {
042
            clearInterval(sliderTimer)
043
        },
044
        mouseleave: function() {
045
            sliderTimer = setInterval(nextSlide, 3000)
046
        }
047
    });
048
    $("#next_slide").click(function(event) {
049
        event.preventDefault();
050
        clearInterval(sliderTimer);
051
        nextSlide()
052
    });
053
    $("#prev_slide").click(function(event) {
054
        event.preventDefault();
055
        clearInterval(sliderTimer);
056
        prevSlide()
057
    })
058
});
059
 
060
}; StarT ();
061
var timID2;
062
$(window).resize(function() {
063
   if($(window).width()>=980) return;
064
  //Тут коды переинициализации;
065
    clearTimeout(timID2);
066
    clearInterval(sliderTimer);
067
    $(".slidewrapper").stop(true);
068
    $(".slidewrapper").css({'left':0})
069
    timID2 = setTimeout(function(){StarT()},700);
070
});
071
</script>
Ответить с цитированием