Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Slider zdjęć w jQuery


KRZYSZT0FSLENDER

Pytanie

Opublikowano

Witam mam taki problem chcem zrobić pokaz slidów mam 5 obrazów i chcem aby one zmieniały się co 15 sekund. Chodzi mi o to też aby po najechaniu były strzałki to rozwiaże sam z ich pokazywaniem ale chcem aby jedna dawała slide +1 a druga -1 i aby były na dole kropki po kliknięciu w które przenosiły by do konkretnego slidu 

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano

Myślę, że najprościej będzie zastosować bootstrap-carousel, ale to już kwestia czy takie podejście Ci będzie odpowiadało. Banalne do zastosowania. Ewentualnie cos na jquery spróbuj.

Opublikowano

To właśnie mi chodzi o Jquery a strone właśnie chcem zrobić tak aby bootstrapa nie było bo on ustawia tylko do 1200px szerokości i to do dupy wygląda na 4k. Zreszto bodajrze YT jest na podobnej zasadzie robione i na monitorze 4k musze powiększać aby co kolwiek widzieć

Opublikowano

W ramach przypominania sobie czystego JS napisałem coś w miare zgodnego z twoim opisem. Nie powinieneś mieć problemów z przepisanie tego do jQuery i dostosowaniem pod siebie :P pododawałem jeszcze pare komentarzy, żeby było w miare zrozumiałe co od czego jest. 

 

<!doctype html>
<html>
<head>

  <style>
    #container {
      width: 470px;
      height: 339px;
      margin-left: auto;
      margin-right: auto;
      position: relative;
    }

    #slide {
      width: 470px;
      height: 339px;
      margin-left: auto;
      margin-right: auto;
    }

    #arrowLeft {
      font-size: 102px;
      position: absolute;
      top: 50%;
      left: 0;
      cursor: pointer;
    }

    #arrowRight {
      font-size: 102px;
      position: absolute;
      top: 50%;
      right: 0;
      cursor: pointer;
    }

    #arrowLeft:hover {background-color: gray;}
    #arrowRight:hover {background-color: gray;}

    .dotCont {
      text-align: center;
    }

    .dot {
      border: 15px solid black;
      display: inline-block;
      border-radius: 50%;
    }

    .dot:hover {
      border: 15px solid red;
    }
  </style>
</head>
<body onload="switchImg()">

  <div id="container">
    <div id="slide"></div>
    <div id="arrowLeft" onclick="nextImg(-1)"><</div>
    <div id="arrowRight" onclick="nextImg(1)">></div>
  </div>

  <div class="dotCont">
    <div class="dot" onclick="dot(0)"></div>
    <div class="dot" onclick="dot(1)"></div>
    <div class="dot" onclick="dot(2)"></div>
  </div>

	<script>
    // tablica z obrazkami
    var num = ["img1.png", "img2.png", "img3.png"];
    var inter = setInterval(switchImg, 2000);
    var x = document.getElementById("slide");
    var flag = 0;

    // domyślny obrazek na start
    x.innerHTML = "<img src=" + num[0] + ">";

    function dot(i) {
      clearInterval(inter); // wyłączenie losowej zmiany co 15 sekund po naciśnięciu elementu
      flag = i;
      x.innerHTML = "<img src=" + num[i] + ">";
    }

    // zmiana obrazków za pomocą strzałek + blokada
    function nextImg(n) {
      clearInterval(inter); // wyłączenie losowej zmiany co 15 sekund po naciśnięciu elementu
      flag = flag + n;

      if (flag<0) flag = 0;
      else if (flag>2) flag = 2;

      x.innerHTML = "<img src=" + num[flag] + ">";
    }

    // zmieniamy obrazek na inny losowy z tablicy num[] co 15 sekund
    function switchImg() {
      var long = num.length;
      var ransom = Math.floor(Math.random() * long);

      if (ransom==flag) {
        switchImg();
      } else {
        flag = ransom;
        x.innerHTML = "<img src=" + num[flag] + ">";
      }
      inter;
    }
	</script>
</body>
</html>

 

//na przyszłość: dłuższy kod, który dodatkowo zawiera także HTML i  CSS lepiej jest wstawiać na codepen.io lub podobny serwis @carbonx

Opublikowano

Wiesz co ja napisałem coś na bazie twojego skryptu tylko to skruciłem i to o wiele 

Cytat


        var SliderNum = 0;
        var StartSlide = 0;
        var SliderList = 5;
        var SliderNum;
        var i;
        
        function nextIMG(){
            if(SliderNum>SliderList-1)SliderNum=StartSlide;
            /*if(SliderNum<5)*/SlideNum = SliderNum+1;
            SliderNum = SliderNum+1;
            var Image = "<img class=\"SliderImage\" src=\"IMG/Slider/SliderIndex/Slide" + SlideNum + ".jpg\" />";
            $('.Slider').html(Image);
        }
        function backIMG(){
            if(SliderNum<2)SliderNum=SliderList+1;
            /*if(SliderNum<5)*/SlideNum = SliderNum-1;
            SliderNum = SliderNum-1;
            var Image = "<img class=\"SliderImage\" src=\"IMG/Slider/SliderIndex/Slide" + SlideNum + ".jpg\" />";
            $('.Slider').html(Image);
        }
        
        function SlideNumBer(i){
            SlideNum = i;
            SliderNum = i;
            var Image = "<img class=\"SliderImage\" src=\"IMG/Slider/SliderIndex/Slide" + SlideNum + ".jpg\" />";
            $('.Slider').html(Image);
        };
        
        function Slider(){
            SliderNum++; if(SliderNum>SliderList-1)SliderNum=StartSlide+1;
            var SlideNum = SliderNum;
            var Image = "<img class=\"SliderImage\" src=\"IMG/Slider/SliderIndex/Slide" + SlideNum + ".jpg\" />";

            $('.Slider').html(Image);

            setTimeout("Slider()", 5000);
        }

Ale pomysł dobry i dzięki za pomoc masz like ode mnie

Opublikowano

Od tego jest, jQuery, można wszystko zrobił łatwiej, szybciej i efektywniej niż w czystym JS. Chodziło mi głównie, żeby przedstawić Ci samą ideę jak to wykonać ^^

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...