Autor Zpráva
Rico
Profil
Ahoj, nevím si rady s následujícím problémem.
Mám tuto slideshow z w3schools:

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(slidesNumber) {
  showSlides(slideIndex += slidesNumber);
}

function currentSlide(slidesNumber) {
  showSlides(slideIndex = slidesNumber);
}

function showSlides(slidesNumber) {
  var slidesCount;
  var slides = document.getElementsByClassName("nazory_slideshow_box");
  if (slidesNumber > slides.length) {slideIndex = 1}    
  if (slidesNumber < 1) {slideIndex = slides.length}
  for (slidesCount = 0; slidesCount < slides.length; slidesCount++) {
      slides[slidesCount].style.display = "none";  
  }
  slides[slideIndex-1].style.display = "block";  
}

Při prvním načtení stránky slideshow funguje, ovšem když překliknu na jakýkoliv odkaz v menu, a najedu zpět na slideshow odkazem v menu, tak se slideshow chová zvláštně (především duplikuje), samozřejmě netuším proč... – v debugu jsem ovšem zjistil, že po tomto načtení nepřipíše požadovaným divům hodnoty "block" či "none".
Konkrétněji
<div class="nazory_slideshow_box fade" style=“display: block;“> nebo <div class="nazory_slideshow_box fade" style=“display: none;“>.


Nutno podotknout, že se stránky načítají v js.
Příklad loadu zde:

// Load stránek
$(document).ready(function(){   
    $('.navigace a').click(zmenStranku);
})

function zmenStranku(){
    var Stranka = $(this).attr('href');
    window.history.pushState("", "", "/" + Stranka);
    // zahajeni nacitani obsahu do #stranka_preload
    $('#stranka_preload').data('loaded', false);
    $('#stranka_preload').load(Stranka+' #stranka', '', function(){
          // on load callback:
        $('#stranka_preload').data('loaded', true);
        if($('#stranka').data('ceka-na-nacteni')){
             str_zobraz();
        }
    });

    // zavreni stranky
    $('#stranka').animate({ left: '-100%' }, 1000, 'swing');
    $('#pozadi').animate({ left: '100%' }, 1000, 'swing', function(){
        // po dokonceni prvni animace:
        // zmena pozadi
        $('#pozadi').css('background-image', 'url(/TraxartSystem/galerie/sekce/bg_' + Stranka + '.jpg)');
        // vraceni divu s novym pozadim
        $('#pozadi').animate({ left: '0%' }, 1000, 'swing');
        // vraceni nove stranky
        var str_nactena = $('#stranka_preload').data('loaded');
        if(!str_nactena){ 
            // nova stranka se jeste nestihla nacitst, co ted?
            // postara se o to pozdeji on load callback
            $('#stranka').data('ceka-na-nacteni', true);
        }
        else str_zobraz();
    });
      
      return false;
}

function str_zobraz() {
    // zkopirovani obsahu preloaderu do viditelneho divu
    var obsah = $('#stranka_preload').html();
    $('#stranka').html(obsah);
    $('#stranka').data('ceka-na-nacteni', false);
    // vraceni divu s novou strankou
    $('#stranka').animate({ left: '0vw' }, 1000, 'swing');
    
    // Event Listenery:
  $('#menu a').click(function() {nav_zavrit(); nav_hlavni_otevrit(); popup_zavrit(); hamburger_otevrit();}); //kliknutí na otevřít v HAMBURGER v navigaci
  $('#hamburger_menu span a').click(function() {hamburger_zavrit();}); //kliknutí na zavřít v HAMBURGER v navigaci
  $('.obsah span a').click(function() {konverze_zavrit(); cist_otevrit();});
  $('#obsah_popup_info span a').click(cist_zavrit);
  $('.konverze a').click(function() {cist_zavrit(); konverze_otevrit();});
  $('#obsah_popup_konverze span a').click(konverze_zavrit);
  $(".gallery_list img").click(function(){ 
        
              var ImagePath = $(this).attr("src");
        
              $(".gallery_show .obrazek").css( 'background-image', 'url(' + ImagePath + ')');
          }); 

}

Téma o řešení tohoto scriptu se dá najít Zde

Předem Vám děkuji za všechny rady celkově čas co nad tímto strávíte.
Kcko
Profil
Upřímně, kódy z W3chools (až na vyjímky) nejsou nic moc, nechceš použít nějaký osvědčený plugin?
Např. kenwheeler.github.io/slick
Rico
Profil
Inu...
Po několika dnech všelijakého testování Slicku jsme se nakonec dopídili k úplně stejné chybě... opět nám to někde sabotuje load.js a samozřejmě opět netušíme, kde. Slideshow se prostě načte s kompletním výpisem všech slidu.

Takže minimálně mě to ujistilo ve dvou věcech 1. slideshow z w3schools o 21 řádcích je v pohodě. 2. bude potřeba řešit ten load.js

Pokud náhodou někdo máte ještě nějakou radu, samozřejmě ji ocením :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0