• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Slider - problem z czasem

Object Storage Arubacloud
0 głosów
119 wizyt
pytanie zadane 23 marca 2019 w JavaScript przez Majki Obywatel (1,410 p.)

Witam,

Niedawno wykonałem slider z poradnika, niestety w tym sliderze przełączenie obrazów powoduje zaburzenie 4-sekundowego cyklu, podobny problem Pan Zelent rozwiązywał w tym poradniku z tym, że nie wiem jak coś takiego zrobić tutaj :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
    <link rel="stylesheet" href="style.css">
</head>

<body>

    <div class="slideshow">
        <ul class="slider">
            <li>
                <img src="img/zdj1.jpeg" alt="">
                <section class="caption">
                    <h1>Lorem Ipsum</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis deleniti tenetur doloribus, aperiam tempore sapiente nostrum at? Rem obcaecati voluptas unde eaque repudiandae, voluptatum odit, beatae nostrum illo itaque earum.</p>
                </section>
            </li>
            <li>
                <img src="img/zdj2.jpeg" alt="">
                <section class="caption">
                    <h1>Lorem Ipsum 2</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis deleniti tenetur doloribus, aperiam tempore sapiente nostrum at? Rem obcaecati voluptas unde eaque repudiandae, voluptatum odit, beatae nostrum illo itaque earum.</p>
                </section>
            </li>
            <li>
                <img src="img/zdj3.jpeg" alt="">
                <section class="caption">
                    <h1>Lorem Ipsum 3</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis deleniti tenetur doloribus, aperiam tempore sapiente nostrum at? Rem obcaecati voluptas unde eaque repudiandae, voluptatum odit, beatae nostrum illo itaque earum.</p>
                </section>
            </li>
            <li>
                <img src="img/zdj4.jpeg" alt="">
                <section class="caption">
                    <h1>Lorem Ipsum 4</h1>
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis deleniti tenetur doloribus, aperiam tempore sapiente nostrum at? Rem obcaecati voluptas unde eaque repudiandae, voluptatum odit, beatae nostrum illo itaque earum.</p>
                </section>
            </li>
        </ul>
        <ol class="pagination">
            
        </ol>
    </div>

    <div class="left">
        <span class="fa fa-chevron-left"></span>
    </div>

    <div class="right">
        <span class="fa fa-chevron-right"></span>
    </div>

    <div class="content">
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis sed facere fuga ducimus asperiores, quod tempore praesentium blanditiis! Quam ut nihil recusandae repudiandae, architecto est consequuntur neque quae nobis sapiente!</p>
    </div>

    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
    <script>
        $(function() {
            
            var imgPos = 1;
            
            for (
                i = 1; i <= $('.slider li').length; i++) {
                $('.pagination').append('<li><span class="fas fa-circle"></span></li>');
            }

            $('.slider li').hide();
            $('.slider li:first').show();
            $('.pagination li:first').css({
                'color': '#CD6E2E'
            });
            
            $('.pagination li').click(pagination);
            $('.right span').click(nextSlider);
            $('.left span').click(prevSlider);
            
            setInterval(function(){
                nextSlider();
            }, 4000);
            
            function pagination(){
                var paginationPos = $(this).index() + 1;
                
                $('.slider li').hide();
                $('.slider li:nth-child('+ paginationPos +')').fadeIn();
                
                $('.pagination li').css({'color': '#858585'});
                $(this).css({'color': '#CD6E2E'});
                
                imgPos = paginationPos;
            }
            
            
            function nextSlider(){
                
                if(imgPos >= $('.slider li').length){
                   imgPos = 1;
                }
                else{
                    imgPos++;
                }
                
                $('.pagination li').css({'color': '#858585'});
                $('.pagination li:nth-child('+ imgPos +')').css({'color': '#CD6E2E'});
                
                $('.slider li').hide();
                $('.slider li:nth-child('+ imgPos +')').fadeIn();
                
            }
            
            function prevSlider(){
                
                if(imgPos <= 1){
                  imgPos = $('.slider li').length;
                }
                else{
                    imgPos--;
                }
                
                $('.pagination li').css({'color': '#858585'});
                $('.pagination li:nth-child('+ imgPos +')').css({'color': '#CD6E2E'});
                
                $('.slider li').hide();
                $('.slider li:nth-child('+ imgPos +')').fadeIn();
                
            }
            
        });

    </script>
</body>

</html>

 

1 odpowiedź

0 głosów
odpowiedź 23 marca 2019 przez Tomek Sochacki Ekspert (227,510 p.)

Dzieje się tak, ponieważ sam zrobiłeś:

setInterval(function(){
  nextSlider();
}, 4000);

no to nextSlider odpala się co 4 sekundy, tak jak tego oczekujesz :)

Timer ten chodzi całkowicie niezależnie od akcji zmieniania się obrazków, po prostu co x milisekund odpala funkcję i tyle. Spróbuj poczytać np. o metodzie setTimeout.

Podobne pytania

+1 głos
1 odpowiedź 437 wizyt
+1 głos
1 odpowiedź 280 wizyt
pytanie zadane 19 sierpnia 2016 w JavaScript przez Widemo Użytkownik (920 p.)
0 głosów
3 odpowiedzi 312 wizyt
pytanie zadane 16 maja 2016 w JavaScript przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...