Modal pencereleri web sitelerinde görmek oldukça yaygındır ve hepsi farklı görevler için kullanılır. Aslında bu, site arayüzünü daha etkileşimli ve kullanışlı hale getirmenize izin veren oldukça güçlü bir araçtır. Örneğin, kalıcı pencereler, yetkilendirme formu, form gibi çeşitli formlar için kullanılabilir. geri bildirim, mal sipariş ve asla bilemezsiniz.
Bu yazıda, basit bir modal pencerenin nasıl yapılacağına dair bir örneğe bakacağız. jQuery kullanarak ve CSS. tuhaflık bu örnek jQuery kitaplığının kendisi dışında, burada gerekli değildir.
Kalıcı pencerenin kodunu sayfaya yerleştiriyoruz:
kapat
Kalıcı pencereyi aç
İşaretlemeden de görebileceğiniz gibi, kip bloğunun kendisi, id= özniteliğine sahip bir div'dir. modal_form id= ile span öğesini içeren modal_close. Bu öğe, mod penceresini kapatmak için bir düğme görevi görecektir, ayrıca bloğun altında id= özniteliğine sahip bir div bloğu vardır. kaplama, arka planı karartmaya da hizmet eder. Kalıcı pencere, sınıfla birlikte bir bağlantı ile açılacaktır. modal.
Kalıcı pencere için CSS
#modal_form ( genişlik: 300 piksel; yükseklik: 300 piksel; kenarlık yarıçapı: 5 piksel; kenarlık: 3 piksel #000 katı; arka plan: #fff; konum: sabit; üst: %45; sol: %50; kenar boşluğu: -150 piksel; sol kenar boşluğu: -150 piksel; görüntü: yok; opaklık: 0; z-endeksi: 5; dolgu: 20 piksel 10 piksel; ) #modal_form #modal_close ( genişlik: 21 piksel; yükseklik: 21 piksel; konum: mutlak; üst: 10 piksel; sağ: 10px; imleç: işaretçi; görüntü: blok; ) #overlay ( z-index:3; konum:sabit; arka plan rengi:#000; opacity:0.8; -moz-opacity:0.8; filtre:alpha(opacity=80) ; genişlik:%100; yükseklik:%100; üst:0; sol:0; imleç:işaretçi; görüntü:yok; )
İçin modal_form sabit bir genişlik ve yükseklik belirledik ve ardından konumu ekranın ortasına ortaladık. Kalıcı pencerenin altlığı için ( kaplama) boyutu ekranın genişliğine göre ayarlıyoruz, şeffaflıkla dolduruyoruz ve ayrıca varsayılan olarak gizleriz. ile özel an z-endeksi, kip, sayfadaki tüm öğelerin en büyüğüne sahip olmalıdır ve kapak, kipin kendisi dışındaki tüm öğelerin en büyüğüne sahip olmalıdır.
Şimdi en temele, bu javascript kodudur. Modal pencere için iki ana olay kullanılacaktır, bu onun açılışıdır - sınıfa sahip bir öğeye tıklamak modal, bizim durumumuzda bu bir bağlantıdır ve kalıcı pencereyi kapatmak kapağa bir tıklamadır ( kaplama) veya kapat düğmesine tıklayarak, bizim durumumuzda id= olan bir yayılma öğesidir. modal_close.
$(document).ready(function() ( $(".modal").click(function(event)( event.preventDefault(); $("#overlay").fadeIn(400, // kapak görüntüsünü canlandırın) function ()( // sonraki mod penceresini göster $("#modal_form") .css("display", "block") .animate((opacity: 1, top: "%50"), 200); ) ); )); // mod penceresini kapat $("#modal_close, #overlay").click(function()( $("#modal_form") .animate((opacity: 0, top: "%45") , 200, // saydamlığı azalt function()( // animasyondan sonra $(this).css("display", "none"); // pencereyi gizle $("#overlay").fadeOut(400); // arka planı gizle ) ); )); ));
animate ile dikey konumu değiştiriyoruz tepe ayrıca şeffaflık opaklık, ve bununla elde ederiz ilginç etki. Hem pencere açıldığında hem de kapatıldığında benzer bir efekt kullanılır. Aradaki fark, bloklar için özelliklerin uygulanma sırasının değişmesi ve böylece pencerenin açılıp kapanmasının görselleştirilmesidir.
3. Bağlantı ile çağrılan bir jQuery modeli örneği (Demo ile)
Büyük olasılıkla, İnternet'te bir kereden fazla açılır mod penceresi gördünüz - kayıt onayı, uyarı, referans bilgisi, dosya yükleme ve daha fazlası. Bu derste, en basit modal pencerelerin nasıl oluşturulacağına dair bazı örnekler sunacağım.
Basit bir kalıcı açılır pencere oluşturun
Hemen görünecek olan en basit modal pencerenin kodunu düşünmeye başlayalım.
jquery kodu
Kodu herhangi bir yere yapıştırın gövde Senin sayfan. Sayfayı yükledikten hemen sonra, herhangi bir komut olmadan aşağıdaki gibi bir pencere göreceksiniz:
Ancak tüm sayfa tarayıcıya yüklendikten sonra aşağıdaki kod çalıştırılacaktır. Örneğimizde, resimler içeren sayfayı yükledikten sonra basit bir açılır pencere açılacaktır:
CSS ile bir bağlantıdan bir jQuery modunu çağırma
Bir sonraki adım oluşturmaktır
kalıcı pencere linke tıkladığınızda. Arka plan yavaş yavaş kararacaktır.
Giriş ve kayıt formlarının bu tür pencerelerde bulunduğunu sık sık görebilirsiniz. hadi işimize bakalım
Başlamak için yazalım html bölümü. Bu kodu belgenizin gövdesine yerleştiriyoruz.
Kalıcı bir pencere çağırma
Kalıcı pencere metni
kapat
Kalıcı penceredeki metin.
CSS kodu. Ya ayrı bir css dosyasında ya da
jQuery kodunda, kip ve maskenin konumuna, bizim durumumuzda arka planın kademeli olarak kararmasına odaklanacağız.
Dikkat! Kitaplığı belgenin başına eklemeyi unutmayın!
Google sitesinden kitaplığı bağlama. Peki, jQuery kodunun kendisi.
jQuery Kodu
Modal pencereler ayrılmaz bir parçadır modern web tasarımı, onların yardımıyla geliştirici, bir sayfada döngü yapma ve ziyaretçiyi yardımcı sayfalara yönlendirmeme yöntemine başvurabilir. Bu eğitimde, bir web sitesi için arka planı bulanık olan harika kalıcı pencerelerin nasıl oluşturulacağına bakacağız. jQuery kullanarak ve CSS3. Bu kurallar sayesinde, pencere göründüğünde bulanık bir arka plan oluşturacağız, bu da ziyaretçinin bakışını yalnızca sitedeki gerekli bilgilere bağlayacaktır.
CSS3 ile bulanık arka plan modelleri
Ekonomi haberleri sadece burada en iyisi: Drobakha
Pencerenin animasyonu, görünüm düğmesine tıkladığınızda pencere yukarıdan aşağıya hareket ederken arka plan bulanıklığını otomatik olarak artıracak şekilde ayarlanacaktır.
1. Adım: HTML
Şunları içerecek bir kapsayıcımız olacak: başlık, açıklama, sonra sınıfla birlikte düğme için bir sınıf ekleyeceğiz. toggleModal kalıcı bir pencere açmak için:
Sekmeler, bir site oluştururken çok ilginç ve kullanışlı bir şeydir, sitede biraz yer tasarrufu sağlarken bilgileri düzgün bir şekilde düzenlemenize olanak tanır.
O zaman bir sınıf eklememiz gerekiyor mod etkin, bu sınıf, modal pencereyi çağırmaktan sorumlu olacaktır, modal_header pencerenin başlığından ve stilinden sorumludur.
2. Adım: CSS
Şimdi stile geçelim, ilk adım sınıf buton, hangisi sorumlu olacak, tahmin ettiniz, sitedeki düğmeler için bunun için doğru ekran parametrelerini ayarladık:
Düğme ( arka plan: yok; arka plan klibi: dolgu kutusu; ekran: satır içi blok; kenarlık: 0; kullanıcı seçimi: yok; -webkit-dokunmatik-bilgi: yok; -webkit-görünümü: düğme; -webkit-kullanıcı -select: yok; -moz-user-select: yok; -ms-user-select: yok; )
Kapsayıcı (konum: göreli; kenar boşluğu:0 otomatik; maksimum genişlik: 960 piksel; kutu boyutlandırma: kenarlık kutusu; dolgu üstü: 40 piksel; )
makale ( arka plan: #fff; dolgu: 20 piksel; kenar boşluğu: 40 piksel; kenarlık yarıçapı: 5 piksel; ) .modal ( görüntü: yok; konum: sabit; üst: %50; genişlik: %100; yükseklik: otomatik; kenar boşluğu -top: -150px; arka plan rengi: $renk-beyaz; kenarlık yarıçapı: 3px; z-endeksi: 999; kutu gölgesi: 0px 1px 3px 0px koyulaştır($color-bg, 10%); @media #( $küçük) ( sol: %50; sol kenar boşluğu: -260 piksel; maksimum genişlik: 520 piksel; ) &.is-etkin ( görüntü: blok; animasyon: 1 sn doğrusal slayt; ) .inner ( konum: göreli; dolgu: 20 piksel ; ) ) .modal__header ( border-bottom: 1px solid darken($color-bg, 5%); ) .modal__footer ( text-align: center; button ( display: inline-block; ) )
Stiller oldukça basittir, ayrı bir dosyada saklanırlar ve CSS ile daha önce karşılaşmış bir geliştirici için bunları düzenlerken zorluklara neden olmamalıdır.
Adım 3JS
Son, ancak daha az önemli olmayan, menü göründüğünde arka planın otomatik olarak bulanıklaştırılması ve bağlantıların tıklanabilirliği olacaktır, küçük kurallar bu konuda bize yardımcı olacaktır. JS:
$("gövde").addClass("bulanık"); $(".toggleModal").on("click", function (event) ( event.preventDefault(); $(".modal").toggleClass("is-active"); $("body").toggleClass ("bulanık"); ));
Sonuç olarak, ziyaretçinin gözüne hoş gelen ve tasarımınızı karmaşıklaştırmayan harika modal pencereler elde ediyoruz.
1. jQuery "Simple Modal Box" üzerindeki kalıcı pencere
2. jQuery eklentisi "LeanModal"
İçeriği kalıcı pencerelerde görüntüleyin. Eklentiyi demo sayfasında çalışırken görmek için şu bağlantıya tıklayın: Kaydolma Formu veya Temel İçerik.
3. jQuery Eklentisi "ToastMessage"
Açılır mesajlar. Eklenti iki versiyonda. Bir durumda, mesajlar kendi kendine kaybolur, belirli bir süre sonra, ikinci uygulamada mesajı kapatmak için düğmeye tıklamanız gerekir.
4. Kalıcı pencerede açılan içerik
Eklentiyi göster. Eklentiyi çalışırken görmek için demo sayfasındaki "Fire A Reveal Modal" düğmesine tıklayın.
5. Güzel İletişim Kutuları
Eklentiyi çalışırken görmek için demo sayfasındaki çarpı işaretine tıklayın.
6. Mootools Modal Penceresi, MooDialog Eklentisi
7. Ekranın üst kısmındaki jQuery açılır çubuğu
8.jQuery Açılır Penceresi
Bir açılır pencerede bir iletişim formu görüntülemek için jQuery eklentisi.
10. Facebook Diyaloglarını Uygulamak için MooTools "LightFace" Eklentisi
Facebook tarzı iletişim kutuları. Statik bilgilere ek olarak, pencerelere resimler, çerçeveler, Ajax istekleri koyabilirsiniz. Eklenti için birçok ayar, çok güçlü bir araçtır. Çok şık ve fonksiyonel görünüyor. Farklı içeriklere sahip örnekleri görmek için demo sayfasındaki bağlantıları takip edin.
11. jQuery kalıcı penceresi
Düzgün jQuery açılır iletişim kutusu.
12. jQuery Modalları
Güzel mod pop-up'ları. Üç stil. Demo sayfasında pencereleri aramak için 3 bağlantı vardır.
13. jQuery Modalları
Çeşitli türlerde açılır mod pencereleri. Eklentiyi çalışırken görmek için demo sayfasındaki bağlantıya tıklayın.
15. Sayfanın üstünde açılır mesaj
Mesaj, sırayla soluklaşan sayfanın üstünde görüntülenir. Açılır bir mesaj görmek için demo sayfasındaki "Beni tıkla" etiketine tıklayın. Haç üzerine tıklamak onu kapatacaktır. jQuery ile uygulandı.
16. Javascript'te modal penceresi "ModalBox"
Pop-up'ları ve sayfa yeniden yüklemelerini kullanmadan modern kalıcı iletişim kutuları uygulamak. Demo sayfasında, betiğin nasıl çalıştığını görmek için "Demoyu Başlat" düğmesine tıklayın.
17. Prototip kitaplığını kullanan "Leightbox" eklentisi
Kalıcı pencerelerde içeriği görüntülemek için eklenti.
Çeşitli site oluşturma teknikleri hakkında konuşurken, modal pencereler oluşturmanın bazı yollarından bahsetmemek saçma olur. Pop-up, modal pencereleri kullanmanın amacı, kullanışlılığı ve ortaya çıkan sorunları hakkında konuşmayacağız. Bu tür pencereler oluşturmanın birçok örneğinden sadece birine bir göz atalım.
Özel eklentileri kullanmanın mümkün olmadığı durumlar vardır, örneğin ve gibi, bu yüzden kendinizinkini nasıl oluşturabileceğinizi anlamaya değer.
Nasıl yapılacağına bakalım:
HTML
Aşağıdaki özelliklere sahip etiketler ekleyerek başlayalım:
- href - #?w=500 pencerenin genişliğini belirtir
- rel, her pencere için benzersiz bir niteliktir
- class="poplight" – açılır pencere gösterme sınıfı
<
a href=
"#?w=500"
rel=
"popup_name"
class
=
"poplight"
>Pencereyi iş başında görün - Genişlik = 500 piksel
a>
|
Pencereyi iş başında görün - Genişlik = 500 piksel
Ardından, açılır pencere için satır içi işaretlemeyi oluşturmamız gerekiyor. Sayfanın herhangi bir yerine, örneğin içeriğin altına yerleştirebilirsiniz. Pop-up kimliğinin öznitelikle eşleştiğini unutmayın. rel etiket
Bu, bağlantıyı ve açılır pencereyi birbirine bağlayacaktır.
Ve böylece, penceremizin sayfadaki yerleşimini anladık, şimdi onu stiller yardımıyla süsleyelim, deyim yerindeyse düzgün bir görünüm verelim.
CSS Düzeni
Daha fazla netlik için, penceremizin stil parametreleri için bazı açıklamalar yazdım. Pop-up'lar farklı boyutlara sahip olabileceğinden, CSS'de belirtmiyoruz popup_block pencerenin kenarlarını, gerekli boyutu hesaplayın, bu sadece .
#fade (ekran: yok; /*--varsayılan gizli--*/ arka plan : rgba (7 , 87 , 207 , 0.8 ) ; pozisyon : sabit ; sol: 0 üst : 0 ; genişlik : %100 yükseklik : %100 opaklık: .80 z-endeksi : 9999 ; .popup_block (görüntüleme: yok; /*--varsayılan olarak gizlidir--*/ arka plan : #fff ; dolgu: 20 piksel kenarlık : 8 piksel katı rgb (134 , 134 , 134 ) ; yüzer : sol ; yazı tipi boyutu: %85 pozisyon : sabit ; üst : %50 ; sol : %50 renk : #000 ; maksimum genişlik: 750 piksel minimum genişlik : 320 piksel ; yükseklik : otomatik ; z-endeksi : 99999 ; /*--CSS3 kutu gölgesi--*/-webkit-box-shadow: 0px 0px 20px #000; -moz-box-shadow: 0px 0px 20px #000; kutu gölgesi: 0px 0px 20px #000; /*--CSS3 köşe yuvarlatma--*/-webkit-border-radius: 12px ; -moz-border-radius: 12px ; sınır yarıçapı : 12 piksel ; ) .popup_block p (yazı tipi ağırlığı: 400; dolgu: 0; kenar boşluğu: 0; renk: #000; satır yüksekliği: 1,6;) .popup_block h2 (kenar boşluğu: 0px 0 10px; renk: rgb (43, 43, 43) ); yazı tipi ağırlığı : 400 ; metin hizalama : merkez ; metin gölgesi : 1px 1px 2px #0D0C0C ; ) /* kapat düğmesini oluştur */.close (arka plan rengi: rgba (61, 61, 61, 0.8); kenarlık: 2 piksel düz #ccc; yükseklik: 25 piksel; satır yüksekliği: 20 piksel; konum: mutlak; sağ: -17 piksel; yazı tipi ağırlığı: kalın; metin hizalama : merkez ; metin süsleme : yok ; dolgu : 0 ; üst : -17 piksel ; genişlik : 25 piksel ; -webkit-border-yarıçapı: %50 ; -moz-border-radius: %50 ; -ms-border- yarıçap: %50 ; -o-border-radius: %50 ; border-radius : %50 ; -moz-box-shadow: 1px 1px 3px #000 ; -webkit-box-shadow: 1px 1px 3px #000 ; box- shadow : 1px 1px 3px #000 ; ) .close : önce ( color : rgba (255 , 255 , 255 , 0.9 ) ; içerik : "X" ; yazı tipi boyutu : 12px ; text-shadow : 0 -1px rgba (0 , 0 , 0 , 0.9 ) ; ) .close : vurgulu ( arka plan rengi : rgba (252 , 20 , 0 , 0.8 ) ; ) .shadow ( kutu-gölge : 4px 4px 10px #857373 ; -webkit-box-shadow: 4px 4px 10px #857373 ; -moz-box-shadow: 4px 4px 10px #857373 ; dolgu : 0 ; ) /*--IE6 için sabit konumlandırma--*/* html #fade (konum: mutlak;) * html .popup_block (konum: mutlak;) |
#fade ( ekran: yok;/*--varsayılan olarak gizli--*/ arka plan: rgba(7, 87, 207, 0.8); konum: sabit; sol: 0; üst: 0; genişlik: %100; yükseklik: %100; opaklık: .80; z-endeksi: 9999; ) .popup_block ( ekran: yok; /*--varsayılan olarak gizli--*/ arka plan: #fff; dolgu: 20 piksel; kenarlık: 8 piksel katı rgb(134, 134, 134); kayan nokta: sol; yazı tipi boyutu: %85; konum: sabit; üst: %50; sol: %50; renk: #000; maksimum genişlik: 750 piksel; minimum genişlik: 320 piksel; yükseklik: otomatik ; z-endeksi: 99999; /*--CSS3 kutu gölgesi--*/ -webkit-box-shadow: 0px 0px 20px #000; -moz-box-shadow: 0px 0px 20px #000; kutu-gölge: 0px 0px 20px #000; /*--CSS3 köşe yuvarlama--*/ -webkit-border-radius: 12px; -moz-border-radius: 12px; border-radius: 12px; ) .popup_block p ( yazı tipi-ağırlığı: 400 ; dolgu: 0; kenar boşluğu: 0; renk: #000; satır yüksekliği: 1,6;) : merkez; metin gölgesi: 1px 1px 2px #0D0C0C; ) /* kapat düğmesini oluşturur */ .close ( backgro und-color: rgba(61, 61, 61, 0.8); kenarlık: 2px düz #ccc; yükseklik: 25 piksel; satır yüksekliği: 20 piksel; pozisyon: mutlak; sağ: -17 piksel; yazı tipi ağırlığı: kalın; metin hizalama: merkez; metin-dekorasyon: yok; dolgu: 0; üst: -17 piksel; genişlik: 25 piksel -webkit-border-radius: %50; -moz-border-radius: %50; -ms-border-radius: %50; -o-sınır-yarıçapı: %50; sınır yarıçapı: %50 -moz-box-shadow: 1px 1px 3px #000; -webkit-box-shadow: 1px 1px 3px #000; kutu gölgesi: 1px 1px 3px #000; ) .close:before ( renk: rgba(255, 255, 255, 0.9); içerik: "X"; yazı tipi boyutu: 12 piksel; metin gölgesi: 0 -1 piksel rgba(0, 0, 0, 0.9); ) .close:hover ( background-color: rgba(252, 20, 0, 0.8); ) .shadow ( box-shadow:4px 4px 10px #857373; -webkit-box-shadow:4px 4px 10px #857373; -moz- box-shadow:4px 4px 10px #857373; padding:0; ) /*--IE6 için sabit konumlandırma--*/ *html #fade ( position: mutlak; ) *html .popup_block ( position: mutlak; )
Pencerenin oluşumu ve dış görünüş css kullanarak, belirli bir zorluk olmayacağını düşünüyorum. Stiller doğrudan üzerine yazılabilir HTML sayfası, etiketler arasında
ve veya stillerinizin ayrı bir dosyasına, genellikle bu dosyaya koyabilirsiniz.
stil.css, ya da böyle bir şey.
jquery kurulumu
Modal penceresinin tam çalışması için jQuery'ye bağlanmanız gerekiyor, bu kütüphanenin çalışmasına aşina olmayanlar okuyabilir.
Peki, devam edeceğiz. çoğunu yapabilirsin En son sürüm Kütüphane web sitesinden jQuery veya kapanış etiketinden önceki bölümde belgeye bağlayarak Google'ın bağırsaklarında barındırılan ayrı bir dosya kullanın