W ogóle nie znam javascript. Dokumentacja bootstrap mówi o tym
Wywołaj modal przez javascript: $ ('# myModal'). Modal (opcje)
Nie mam pojęcia, jak to nazwać przy ładowaniu strony. Za pomocą dostarczonego kodu na stronie ładowania początkowego mogę z powodzeniem wywołać Modal po kliknięciu elementu, ale chcę, aby ładował się natychmiast po załadowaniu strony.
javascript
html
twitter-bootstrap
Brandon
źródło
źródło
Odpowiedzi:
Po prostu zawiń modal, który chcesz wywołać podczas ładowania strony, w
load
zdarzeniu jQuery w sekcji head twojego dokumentu i powinien on się wyskoczyć, tak jak:JS
HTML
Nadal możesz wywoływać modal na swojej stronie, wywołując go za pomocą linku:
źródło
$(document).ready( ...
. Będzie działać tylko w przypadku obciążenia okno:$(window).load( ...
.$(document).ready( ...
wtedy, gdy przechowuję ten skrypt w MVC PartialView dla mojego Modalu, który jest dynamicznie dodawany, gdy użytkownik coś kliknie, więc może dlatego. Jak na ironię, twoje ostrzeżenie o tym, czego nie robić, pozwoliło mi wymyślić, jak to zrobić dla mnie. Więc dziękuję? :)Nie musisz
javascript
pokazywać modalnościNajprostszym sposobem jest zastąpienie słowa „ukryj” słowem „w”
więc
i musisz dodać
onclick = "$('.modal').hide()"
przycisk zamykania;PS: Myślę, że najlepszym sposobem jest dodanie skryptu jQuery:
źródło
Po prostu dodaj następujące-
Przykład roboczy
źródło
onclick = "$('.modal').removeClass('show').addClass('fade');"
Możesz spróbować uruchomić ten kod
Więcej można znaleźć tutaj .
Myślę, że masz pełną odpowiedź.
źródło
odnośnie tego, co Andre Ilich mówi, musisz dodać skrypt js po wierszu w tak zwanej jquery:
w moim przypadku to był problem, mam nadzieję, że to pomoże
źródło
W moim przypadku dodanie jQuery w celu wyświetlenia modalu nie działało:
Co zdawało się, ponieważ modal miał atrybut aria-hidden = "true":
Konieczne było usunięcie tego atrybutu, a także powyższego jQuery:
Zauważ, że próbowałem zmienić klasy modalne z
modal fade
namodal fade in
i to nie działało. Również zmiana klas zmodal fade
namodal show
powstrzymała modal od możliwości zamknięcia.źródło
Oto rozwiązanie [bez inicjacji javascript!]
Nie mogłem znaleźć przykładu bez zainicjowania modalu za pomocą javascript,
$('#myModal').modal('show')
więc oto sugestia, w jaki sposób można go wdrożyć bez opóźnienia javascript przy ładowaniu strony.<div class="modal in" id="MyModal" tabindex="-1" role="dialog" style="display: block; padding-right: 17px;">
Edytuj swoje ciało w klasie i stylu:
<body class="modal-open" style="padding-right:17px;">
Dodaj modal-div div
<div class="modal-backdrop in"></div>
Dodaj skrypt
Stanie się tak, że HTML dla twojego modalu zostanie załadowany przy ładowaniu strony bez javascript, (bez opóźnienia). W tym momencie nie możesz zamknąć modalu, dlatego mamy skrypt document.ready, aby poprawnie załadować modal, gdy wszystko jest załadowane. Właściwie usuniemy kod niestandardowy, a następnie zainicjalizujemy modal (ponownie) za pomocą .modal („pokaż”).
źródło
Możesz aktywować modal bez pisania kodu JavaScript po prostu za pomocą atrybutów danych.
Opcja „pokaż” ustawiona na true pokazuje modalność podczas inicjalizacji:
źródło
Jak wspomnieli inni, stwórz swój modal z display: block
Umieść tło w dowolnym miejscu na stronie, niekoniecznie musi znajdować się na dole strony
Następnie, aby móc ponownie zamknąć okno dialogowe, dodaj to
Mam nadzieję że to pomoże
źródło
Testowane z Bootstrap 3 i jQuery (2.2 i 2.3)
https://jsfiddle.net/d7utnsbm/
źródło
Możesz pokazać go na starcie, nawet bez Javascript. Wystarczy usunąć klasę „ukryj”.
źródło
Oprócz odpowiedzi user2545728 i Reft, bez javascript, ale z
modal-backdrop in
3 rzeczy do dodania
modal-backdrop in
przed klasą .modalstyle="display:block;"
do klasy .modalfade in
wraz z klasą .modalPrzykład
źródło
Aktualizacja 2020 - Bootstrap 4
Znacznik modalny nieznacznie się zmienił dla Bootstrap 4. Oto jak możesz otworzyć modal przy ładowaniu strony i opcjonalnie opóźnić wyświetlanie modalu ...
Demo na Codeply
źródło
W bootstrap 3 wystarczy zainicjować modal poprzez js, a jeśli w momencie ładowania strony znacznik modalny znajduje się na stronie, modal się pojawi.
Jeśli chcesz temu zapobiec, skorzystaj z opcji
show: false
inicjalizacji modalu. Coś takiego:$('.modal').modal({ show: false })
źródło
Możesz
jquery.js
odłożyć na później, aby przyspieszyć ładowanie strony. Jeśli jednakjquery.js
zostanie odroczony,$(window).load
może nie działać. Więc możesz spróbowaćsetTimeout(function(){$('#myModal').modal('show');},3000);
wyskakuje twój modal po całkowitym załadowaniu strony (w tym jquery)
źródło
Aby uniknąć zastąpienia bootstrapu i utraty jego funkcjonalności, po prostu stwórz zwykły przycisk uruchamiania, podaj identyfikator i „klikaj” za pomocą jquery, podobnie jak: przycisk uruchamiania:
Wyzwalacz jQuery:
Mam nadzieję, że to pomoże. Twoje zdrowie!
źródło
Prosty przykład Stwórz moduł ładujący z modalu bootstrap
źródło