Wenn Sie auf der Seite auf die Schaltfläche „Anmelden“ oder „Registrierung“ klicken, wird ein modales Fenster geöffnet, bei dem es sich um eine Popup-Ebene handelt. Wir können die Anmelde- und Registrierungsformulare einfach auf der Popup-Ebene wechseln, was sehr praktisch ist für Benutzer und muss nicht geschlossen werden. Klicken Sie auf die Ebene, um zu anderen Vorgängen zu wechseln, was auf vielen Websites weit verbreitet ist.
Dieser Artikel kombiniert Beispiele, um diesen Effekt durch die Verwendung von jQuery sowie CSS3- und HTML5-Technologien zu erzielen.
HTML
Wir haben jetzt zwei Link-Buttons auf der Hauptseite, nämlich den Login- und den Registrierungs-Button.
<nav class="main_nav"> <ul> <li><a class="cd-signin" href="#0">登录</a></li> <li><a class="cd-signup" href="#0">注册</a></li> </ul> </nav>
Erstellen Sie dann eine modale Fenster-Popup-Ebene div.cd-user-modal, platzieren Sie zwei Links zum Umschalten von ul.cd-switcher in der Popup-Ebene und platzieren Sie dann die Anmelde- und Registrierungsformulare, die div entsprechen #cd-login und div#cd-signup.
<div class="cd-user-modal"> <div class="cd-user-modal-container"> <ul class="cd-switcher"> <li><a href="#0">用户登录</a></li> <li><a href="#0">注册新用户</a></li> </ul> <div id="cd-login"> <form class="cd-form"> <!-- 登录表单 --> </form> </div> <div id="cd-signup"> <form class="cd-form"> <!-- 注册表单 --> </form> </div> </div> </div>
Das Obige ist die gesamte HTML-Struktur, der Formularteil wird hier weggelassen. Sie können Ihre Formularstruktur frei nach Ihren Bedürfnissen schreiben. Sie können den Quellcode auch direkt herunterladen und anzeigen.
CSS
Das standardmäßige modale Fenster hat die Stile Sichtbarkeit: ausgeblendet; und Deckkraft: 0;, was bedeutet, dass es standardmäßig unsichtbar ist. Verwenden Sie .is-visible, um zu entscheiden, ob die Anzeige eingeblendet werden soll. Das Folgende ist der Haupt-CSS-Code. Für detailliertere CSS-Codes laden Sie bitte den Quellcode herunter, um ihn anzuzeigen.
.cd-user-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(52, 54, 66, 0.9); z-index: 3; overflow-y: auto; cursor: pointer; visibility: hidden; opacity: 0; -webkit-transition: opacity 0.3s 0, visibility 0 0.3s; -moz-transition: opacity 0.3s 0, visibility 0 0.3s; transition: opacity 0.3s 0, visibility 0 0.3s; } .cd-user-modal.is-visible { visibility: visible; opacity: 1; -webkit-transition: opacity 0.3s 0, visibility 0 0; -moz-transition: opacity 0.3s 0, visibility 0 0; transition: opacity 0.3s 0, visibility 0 0; } .cd-user-modal.is-visible .cd-user-modal-container { -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); transform: translateY(0); } .cd-user-modal-container { position: relative; width: 90%; max-width: 600px; background: #FFF; margin: 3em auto 4em; cursor: auto; border-radius: 0.25em; -webkit-transform: translateY(-30px); -moz-transform: translateY(-30px); -ms-transform: translateY(-30px); -o-transform: translateY(-30px); transform: translateY(-30px); -webkit-transition-property: -webkit-transform; -moz-transition-property: -moz-transform; transition-property: transform; -webkit-transition-duration: 0.3s; -moz-transition-duration: 0.3s; transition-duration: 0.3s; } .cd-user-modal-container .cd-switcher:after { content: ""; display: table; clear: both; } .cd-user-modal-container .cd-switcher li { width: 50%; float: left; text-align: center; } .cd-user-modal-container .cd-switcher li:first-child a { border-radius: .25em 0 0 0; } .cd-user-modal-container .cd-switcher li:last-child a { border-radius: 0 .25em 0 0; } .cd-user-modal-container .cd-switcher a { display: block; width: 100%; height: 50px; line-height: 50px; background: #d2d8d8; color: #809191; } .cd-user-modal-container .cd-switcher a.selected { background: #FFF; color: #505260; } #cd-login, #cd-signup { display: none; } #cd-login.is-selected, #cd-signup.is-selected{ display: block; }
jQuery
Die Popup- und Schließeffekte der Popup-Ebene werden von jQuery mithilfe des Aufrufs style.is-visible gesteuert, und das Wechselformular wird von jQuery mithilfe des Aufrufs demo.is-selected gesteuert.
jQuery(document).ready(function($){ var $form_modal = $('.cd-user-modal'), $form_login = $form_modal.find('#cd-login'), $form_signup = $form_modal.find('#cd-signup'), $form_modal_tab = $('.cd-switcher'), $tab_login = $form_modal_tab.children('li').eq(0).children('a'), $tab_signup = $form_modal_tab.children('li').eq(1).children('a'), $main_nav = $('.main_nav'); //弹出窗口 $main_nav.on('click', function(event){ if( $(event.target).is($main_nav) ) { // on mobile open the submenu $(this).children('ul').toggleClass('is-visible'); } else { // on mobile close submenu $main_nav.children('ul').removeClass('is-visible'); //show modal layer $form_modal.addClass('is-visible'); //show the selected form ( $(event.target).is('.cd-signup') ) ? signup_selected() : login_selected(); } }); //关闭弹出窗口 $('.cd-user-modal').on('click', function(event){ if( $(event.target).is($form_modal) || $(event.target).is('.cd-close-form') ) { $form_modal.removeClass('is-visible'); } }); //使用Esc键关闭弹出窗口 $(document).keyup(function(event){ if(event.which=='27'){ $form_modal.removeClass('is-visible'); } }); //切换表单 $form_modal_tab.on('click', function(event) { event.preventDefault(); ( $(event.target).is( $tab_login ) ) ? login_selected() : signup_selected(); }); function login_selected(){ $form_login.addClass('is-selected'); $form_signup.removeClass('is-selected'); $form_forgot_password.removeClass('is-selected'); $tab_login.addClass('selected'); $tab_signup.removeClass('selected'); } function signup_selected(){ $form_login.removeClass('is-selected'); $form_signup.addClass('is-selected'); $form_forgot_password.removeClass('is-selected'); $tab_login.removeClass('selected'); $tab_signup.addClass('selected'); } });
Dieses Beispiel hat auch einen guten Anzeigeeffekt auf mobilen Geräten wie Mobiltelefonen. Wenn Sie den IE-Browser verwenden, aktualisieren Sie bitte die Version auf IE9 oder höher. Es wird dringend empfohlen, den Quellcode herunterzuladen und einige geringfügige Änderungen vorzunehmen, um ihn direkt auf Ihr Projekt anzuwenden.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.