Modal cu link-ul de la același index

0

Problema

Am creat un modal în care am plasat-o href link-ul de la o secțiune de contact plasate la sfârșitul aceluiași index.html.

Când m-am faceți clic pe contact me butonul modal dispare și nu sunt defilat în jos la secțiunea de contact (cred că există un fel de inbuild de parcurgere în jos după închiderea modal care sparge propria mea href link).

Am încercat, folosind metoda javascript după ce faceți clic pe butonul dar există, de asemenea, apar probleme. Atunci când se utilizează window.location.reload și apoi scrollintoview pentru a #kontakt reîncărcările de pagină frumos dar scrollintoview nu va avea loc niciodată.

<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

Cel mai bun răspuns

1

Ea are de a face cu modul ascultător eveniment lucrări; trage doar o singură dată care se apropie modal.

Ceea ce am făcut este doar un hack prin adăugarea unui timeout deci închiderea modale și de defilare pentru a vedea nu se declanșează în același timp

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

Aceasta se va derula în jos frumos dar pe fundal întunecat, fără capacitatea de a faceți clic pe încă mai există. <div class="modal-backdrop show"></div> această clasă a rămas pe partea de sus a corpului și blocuri de conținut.
Simonsoft177

Eu nu pot reproduce problema, poti incerca creșterea timeout la 1000ms și încercați din nou
otejiri

Cred că de expirare nu este problema deoarece pagina nu este reîncărcat. Ideea este că, atunci când modal este deschis tot de pe fundal devine unscrollable și s-a întunecat afară. Atunci când închideți modal capacitatea de a derula și pentru a muta pe pagina ar trebui să vină înapoi și fundal întunecat dispar. Cu toate acestea nu se întâmplă, doar capacitatea de a derula vine înapoi, dar fundalul întunecat și handicap să faceți clic apare în continuare.
Simonsoft177

Este posibil pentru a adăuga la javascript pentru a șterge un anumit div fără să știe id-ul său ? <div class="modal-backdrop show"></div> pentru a fi exact.
Simonsoft177

bine, aveți posibilitatea să eliminați "show" de la classlist
otejiri

Vă mulțumesc că funcționează. Ultimul lucru pe care, dacă am avea mai multe modals? Trebuie doar să copiați și inserați noi ascultători sau pune totul într-o singură?
Simonsoft177

Poate replica că, atâta timp cât au Id-uri diferite
otejiri

În alte limbi

Această pagină este în alte limbi

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