Modálne s odkaz na rovnaký index

0

Otázka

Vytvoril som modálne, v ktorom som sa umiestnili href odkaz na kontakt časti umiestnené na konci rovnaké index.html.

Keď som kliknite na contact me tlačidlo modálne dissapears a nie som posunuli nadol sekcii kontakt (myslím, že tam je nejaký druh inbuild scrolldown po zatvorení modálne, ktoré prestávky vlastné href odkaz).

Snažil som sa pomocou javascript metóda po kliknutí na tlačidlo ale aj tam sa objavia problémy. Pri používaní window.location.reload a potom scrollintoview na #kontakt stránka znovu načíta pekne, ale scrollintoview nikdy uskutočniť.

<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModalToggle">
  Launch demo modal
</button>



<div class="modal fade" id="exampleModalToggle" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1">
            <div class="modal-dialog modal-dialog-centered" style="width:50%;margin:auto">
              <div class="modal-content">
                <div class="modal-body">                
                  <img src="https://www.apacara.com/media/images/orange.jpg" class="d-block w-100"                                              style="width:100%;border-radius:4px;margin:auto">
                </div>
              </div>
              <div class="modal-footer" style="text-align: center;">
                  <button class="btn btn-primary" style="float:left" data-bs-target="#exampleModalToggle6" data-                             bs-toggle="modal" data-bs-dismiss="modal">Next</button>
                  <a class="btn-grad" href="#kontakt" style="cursor:pointer;font-weight:500!important" data-bs-                        toggle="modal" data-bs-dismiss="modal">Contact me</a>
                  <button class="btn btn-primary" style="float:right" data-bs-target="#exampleModalToggle2" data-                           bs-toggle="modal" data-bs-dismiss="modal">Previous</button>
              </div>
            </div>
        </div>

<div id="kontakt" style="margin-top:500px">Helo helo helo helo</div>

html hyperlink modal-dialog
2021-11-15 11:25:01
1

Najlepšiu odpoveď

1

To má čo do činenia s tým, ako udalosť poslucháč funguje, ale iba požiare jeden čas, ktorý je uzávierky modálne.

To, čo som urobil je len hack pridaním časového limitu, takže uzavretie modálne a prejdete na zobrazenie nemá oheň mimo súčasne

const myModal = document.getElementById('exampleModalToggle');

myModal.addEventListener('hidden.bs.modal', function (event) {
setTimeout(function(){ 
   el = document.querySelector("#kontakt")
   el.scrollIntoView({behavior: 'smooth'}); 
   }, 10);
    
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModalToggle">
  Launch demo modal
</button>



<div class="modal fade" id="exampleModalToggle" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1">
            <div class="modal-dialog modal-dialog-centered" style="width:50%;margin:auto">
              <div class="modal-content">
                <div class="modal-body">                
                  <img src="https://www.apacara.com/media/images/orange.jpg" class="d-block w-100"                                              style="width:100%;border-radius:4px;margin:auto">
                </div>
              </div>
              <div class="modal-footer" style="text-align: center;">
                  <button class="btn btn-primary" style="float:left" data-bs-target="#exampleModalToggle6" data-                             bs-toggle="modal" data-bs-dismiss="modal">Next</button>
                  <a class="btn-grad" href="#kontakt" style="cursor:pointer;font-weight:500!important" data-bs-                        toggle="modal" data-bs-dismiss="modal">Contact me</a>
                  <button class="btn btn-primary" style="float:right" data-bs-target="#exampleModalToggle2" data-                           bs-toggle="modal" data-bs-dismiss="modal">Previous</button>
              </div>
            </div>
        </div>

<div id="kontakt" style="margin-top:500px">Helo helo helo helo</div>

2021-11-15 12:10:57

To posúvania pekne, ale tmavom pozadí bez možnosti kliknite na tlačidlo, stále existuje. <div class="modal-backdrop show"></div> tejto triede zostáva na hornej časti tela a bloky obsahu.
Simonsoft177

Nemôžem zopakovať problém, môžete vyskúšať zvýšiť časový limit na 1000ms a skúste znovu
otejiri

Myslím si, že časový limit nie je problém, nakoľko stránka nie je reloaded. Dôležité je, že keď modálne je otvoriť všetky pozadí sa stáva unscrollable a zatemnené von. Po zatvorení modálne schopnosť prejdite na položku a presunúť na stránke by sa mal vrátiť a tmavé pozadie dissapear. Však to nie je náhodou, len schopnosť prejdite prichádza späť, ale tmavé pozadie a zdravotného postihnutia kliknite stále objavuje.
Simonsoft177

Je možné pridať do javascript, ak chcete odstrániť konkrétnu div bez poznania jeho id ? <div class="modal-backdrop show"></div> ak chcete byť presný.
Simonsoft177

v poriadku, môžete odstrániť "show" z classlist
otejiri

Ďakujem vám, že funguje. Posledná vec, čo v prípade, ak mám viac modals? Mal by som len skopírovať a vložiť nových poslucháčov alebo dať všetko v jednom?
Simonsoft177

Môžete replikovať, ktorý tak dlho, ako majú rôzne Id
otejiri

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................