<label id="r53fh"></label>
    <\/div>
    <\/div>
    <\/div>
    <\/div><\/div><\/body><\/html><\/pre>

    事件監(jiān)聽<\/h2>

    此時窗口里只顯示一個頁面,我們給其加上滾動監(jiān)聽,因為firefox和非firefox瀏覽器對滾動監(jiān)聽支持不同,firefox瀏覽器向上滾動是-120,向下滾動是120,而其他瀏覽器向上是5,向下是-5,所以需要作判斷:<\/p>

    	
    
    
    
    
    
    
    

    国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

    Inhaltsverzeichnis
    頁面結(jié)構(gòu)
    事件監(jiān)聽
    加入動畫
    Heim Web-Frontend HTML-Tutorial CSS3實現(xiàn)整屏切換效果_html/css_WEB-ITnose

    CSS3實現(xiàn)整屏切換效果_html/css_WEB-ITnose

    Jun 24, 2016 am 11:42 AM

    總是能看見很多廣告或者網(wǎng)站都是使用整屏滾動的效果,一直看著都心癢癢,想自己也實現(xiàn)一個。最近剛學(xué)習(xí)到css3的動畫效果,所以嘗試使用css3做了一個整屏切換。

    頁面結(jié)構(gòu)

    實現(xiàn)思路與大眾方法類似,如圖

    每個section就是一頁內(nèi)容,它的大小充滿了屏幕(紅色區(qū)域),一個container由多個section構(gòu)成,我們通過改變container的位置,來達(dá)到頁面切換的效果。container向下走,頁面好像上移了,container向上走,頁面就下移了。
    html結(jié)構(gòu)如下:

    <!DOCTYPE html><html><head lang="ch">    <meta charset="UTF-8">    <!--適配移動端-->    <meta name=”viewport” content="width=device-width, user-scalable=no, initial-scale=1.0">    <title></title>    <style> body, html{ padding: 0; margin: 0; } body, html { height: 100%; /**隱藏滾動條**/ overflow: hidden; } #container, .section { height: 100%; } #section0 { background-color: #83af9b; } #section1 { background-color: #764d39; } #section2 { background-color: #ff9000; } #section3 { background-color: #380d31; } </style></head><body><div id="container">    <div class="section" id="section0"></div>    <div class="section" id="section1"></div>    <div class="section" id="section2"></div>    <div class="section" id="section3"></div></div></body></html>

    事件監(jiān)聽

    此時窗口里只顯示一個頁面,我們給其加上滾動監(jiān)聽,因為firefox和非firefox瀏覽器對滾動監(jiān)聽支持不同,firefox瀏覽器向上滾動是-120,向下滾動是120,而其他瀏覽器向上是5,向下是-5,所以需要作判斷:

    <script src="http://code.jquery.com/jquery-latest.js"></script><script> //當(dāng)前頁面索引 var curIndex = 0; var scrollFunc = function (e) { e = e || window.event; var t = 0; if (e.wheelDelta) {//IE/Opera/Chrome t = e.wheelDelta; if (t > 0 && curIndex > 0) { //上滾動 movePrev(); } else if (t < 0 && curIndex < sumCount - 1) { //下滾動 moveNext(); } } else if (e.detail) {//Firefox t = e.detail; if (t < 0 && curIndex > 0) { //上滾動 movePrev(); } else if (t > 0 && curIndex < sumCount - 1) { //下滾動 moveNext(); } } }; function moveNext(){ } function movePrev(){ } function init(){ /*注冊事件*/ if (document.addEventListener) { document.addEventListener('DOMMouseScroll', scrollFunc, false); }//W3C window.onmousewheel = document.onmousewheel = scrollFunc;//IE/Opera/Chrome } init(); </script>

    為了防止在第一個頁面用戶上滾,最后一個頁面用戶下滾,所以用curIndex代表當(dāng)前頁面索引在滾動時作了監(jiān)聽,當(dāng)然如果要使頁面循環(huán)滾動,只需修改條件限制即可。

    加入動畫

    動畫使用到了css3里的transform屬性的translate3D,我們首先需要獲取到屏幕的高度,然后當(dāng)頁面切換的時候?qū)ontainer上移一個屏幕高度或下移一個屏幕高度。
    使用translate3D的原因是在手機端會開啟硬件加速,使動畫更流暢,它接收三個參數(shù),分別是x軸、y軸和z軸的位移。如

    transform: tanslate3D(10px, 30px, 0);

    修改后的js代碼如下:

    <script> //當(dāng)前頁面索引 var curIndex = 0; //container元素 var container = $("#container"); //頁面總數(shù) var sumCount = $(".section").length; //窗體元素 var $window = $(window); //動畫時間 var duration = 500; var scrollFunc = function (e) { e = e || window.event; var t = 0; if (e.wheelDelta) {//IE/Opera/Chrome t = e.wheelDelta; if (t > 0 && curIndex > 0) { //上滾動 movePrev(); } else if (t < 0 && curIndex < sumCount - 1) { //下滾動 moveNext(); } } else if (e.detail) {//Firefox t = e.detail; if (t < 0 && curIndex > 0) { //上滾動 movePrev(); } else if (t > 0 && curIndex < sumCount - 1) { //下滾動 moveNext(); } } }; function moveNext(){ container.css("transform", "translate3D(0, -" + (++curIndex) * $window.height() + "px, 0)"); } function movePrev(){ container.css("transform", "translate3D(0, -" + (--curIndex) * $window.height() + "px, 0)"); } function init(){ /*注冊事件*/ if (document.addEventListener) { document.addEventListener('DOMMouseScroll', scrollFunc, false); }//W3C window.onmousewheel = document.onmousewheel = scrollFunc;//IE/Opera/Chrome //設(shè)置動畫 container.css({ "transition": "all 0.5s", "-moz-transition": "all 0.5s", "-webkit-transition": "all 0.5s" }); } </script>

    為了防止頁面在滾動的時候用戶繼續(xù)滾動打亂節(jié)奏,可以用時間來強制控制,即在滾動期間不允許調(diào)用moveNext和movePrev函數(shù),最終代碼如下:

    <!DOCTYPE html><html><head lang="ch">    <meta charset="UTF-8">    <meta name=”viewport” content="width=device-width, user-scalable=no, initial-scale=1.0">    <title></title>    <style> body, html{ padding: 0; margin: 0; } body, html { height: 100%; overflow: hidden; } #container, .section { height: 100%; } .section { background-color: #000; background-size: cover; background-position: 50% 50%; } #section0 { background-color: #83af9b; } #section1 { background-color: #764d39; } #section2 { background-color: #ff9000; } #section3 { background-color: #380d31; } </style></head><body><div id="container">    <div class="section" id="section0"></div>    <div class="section" id="section1"></div>    <div class="section" id="section2"></div>    <div class="section" id="section3"></div></div><script src="http://code.jquery.com/jquery-latest.js"></script><script> var curIndex = 0; var container = $("#container"); var sumCount = $(".section").length; var $window = $(window); var duration = 500; //時間控制 var aniTime = 0; var scrollFunc = function (e) { //如果動畫還沒執(zhí)行完,則return if(new Date().getTime() < aniTime + duration){ return; } e = e || window.event; var t = 0; if (e.wheelDelta) {//IE/Opera/Chrome t = e.wheelDelta; if (t > 0 && curIndex > 0) { //上滾動 movePrev(); } else if (t < 0 && curIndex < sumCount - 1) { //下滾動 moveNext(); } } else if (e.detail) {//Firefox t = e.detail; if (t < 0 && curIndex > 0) { //上滾動 movePrev(); } else if (t > 0 && curIndex < sumCount - 1) { //下滾動 moveNext(); } } }; function moveNext(){ //獲取動畫開始時的時間 aniTime = new Date().getTime(); container.css("transform", "translate3D(0, -" + (++curIndex) * $window.height() + "px, 0)"); } function movePrev(){ //獲取動畫開始時的時間 aniTime = new Date().getTime(); container.css("transform", "translate3D(0, -" + (--curIndex) * $window.height() + "px, 0)"); } function init(){ /*注冊事件*/ if (document.addEventListener) { document.addEventListener('DOMMouseScroll', scrollFunc, false); }//W3C window.onmousewheel = document.onmousewheel = scrollFunc;//IE/Opera/Chrome container.css({ "transition": "all 0.5s", "-moz-transition": "all 0.5s", "-webkit-transition": "all 0.5s" }); } init(); </script></body></html>

    版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

    Erkl?rung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Hei?e KI -Werkzeuge

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

    Hei?e Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Hei?e Themen

    PHP-Tutorial
    1502
    276
    Konfigurieren von Dokumentmetadaten im HTML -Kopfelement Konfigurieren von Dokumentmetadaten im HTML -Kopfelement Jul 09, 2025 am 02:30 AM

    Metadaten in HTMLhead sind entscheidend für das Verhalten von SEO-, Social Sharing und Browser. 1. Setzen Sie den Seitentitel und die Beschreibung, verwenden Sie es und halten Sie es pr?zise und einzigartig. 2. Fügen Sie OpenGraph- und Twitter -Karteninformationen hinzu, um die Auswirkungen auf die soziale Freigabe zu optimieren, auf die Bildgr??e zu achten und Debugging -Tools zum Testen zu verwenden. 3. Definieren Sie die Einstellungen für den Zeichensatz und die Ansichtsfenster, um sicherzustellen, dass die Unterstützung mehrsprachiger Unterstützung an das mobile Terminal angepasst wird. 4. Optionale Tags wie das Urheberrecht des Autors, die Kontrolle der Roboter und die kanonische Verhindern doppelter Inhalte sollten auch vernünftig konfiguriert werden.

    Bestes HTML -Tutorial für Anf?nger im Jahr 2025 Bestes HTML -Tutorial für Anf?nger im Jahr 2025 Jul 08, 2025 am 12:25 AM

    Tolearnhtmlin2025, ChooseatutororyThatbalancesHands-On-Practionwithmoderit und IntegrateCsSandjavaScriptbasics.1.PrioritizeHands-OnLearningWithStep-by-Stepprojects-?hnlich

    HTML für E -Mail -Vorlagen -Tutorial HTML für E -Mail -Vorlagen -Tutorial Jul 10, 2025 pm 02:01 PM

    Wie mache ich HTML -Mail -Vorlagen mit guter Kompatibilit?t? Zun?chst müssen Sie eine Struktur mit Tabellen erstellen, um die Verwendung von Div -Flex- oder Netzlayout zu vermeiden. Zweitens müssen alle Stile eingefügt werden und k?nnen sich nicht auf externe CSS verlassen. Dann sollte das Bild mit ALT -Beschreibung hinzugefügt werden und eine ?ffentliche URL verwenden, und die Schaltfl?chen sollten mit einer Tabelle oder TD mit Hintergrundfarbe simuliert werden. Schlie?lich müssen Sie die Details zu mehreren Clients testen und anpassen.

    Was sind die am h?ufigsten verwendeten globalen Attribute in HTML? Was sind die am h?ufigsten verwendeten globalen Attribute in HTML? Jul 10, 2025 am 10:58 AM

    Klasse, ID, Stil, Daten und Titel sind die am h?ufigsten verwendeten globalen Attribute in HTML. Die Klasse wird verwendet, um einen oder mehrere Klassennamen anzugeben, um die Stileinstellung und JavaScript -Vorg?nge zu erleichtern. ID bietet eindeutige Kennungen für Elemente, die für Anker -Sprünge und JavaScript -Kontrolle geeignet sind. Durch den Stil k?nnen Inline-Stile hinzugefügt werden, geeignet für ein vorübergehendes Debuggen, aber nicht für die Verwendung von gro?em Ma?stab empfohlen. Data-Properties werden verwendet, um benutzerdefinierte Daten zu speichern, was für die Interaktion mit Front-End- und Back-End-Interaktion geeignet ist. Der Titel wird verwendet, um Mausover -Eingaben hinzuzufügen, aber sein Stil und sein Verhalten werden durch den Browser begrenzt. Eine angemessene Auswahl dieser Attribute kann die Entwicklungseffizienz und die Benutzererfahrung verbessern.

    Wie kann ich mit Formularen in HTML ohne Server umgehen? Wie kann ich mit Formularen in HTML ohne Server umgehen? Jul 09, 2025 am 01:14 AM

    Wenn es keinen Backend-Server gibt, kann die Einreichung von HTML-Formular weiterhin über Front-End-Technologie oder Drittanbieterdienste verarbeitet werden. Zu den spezifischen Methoden geh?ren: 1. JavaScript verwenden, um die Einreichungen von Formulareingaben abzufangen, um die Eingabeüberprüfung und das Benutzerfeedback zu erhalten. Die Daten werden jedoch nicht bestehen. 2. Verwenden Sie serverlose Formulardienste von Drittanbietern wie F?rse, um Daten zu sammeln und E-Mail-Benachrichtigungs- und Umleitungsfunktionen bereitzustellen. 3.. Verwenden Sie LocalStorage, um tempor?re Clientdaten zu speichern, die zum Speichern von Benutzerpr?ferenzen oder zum Verwalten von Anwendungsstatus einseitig geeignet sind, jedoch nicht für die langfristige Speicherung vertraulicher Informationen geeignet sind.

    Implementierung des nativen faulen Ladens für Bilder in HTML Implementierung des nativen faulen Ladens für Bilder in HTML Jul 12, 2025 am 12:48 AM

    Native Lazy Loading ist eine integrierte Browserfunktion, die das faule Laden von Bildern durch Hinzufügen von Loading = "Lazy" zum Tag hinzufügen kann. 1. Es erfordert keine Bibliotheken von JavaScript oder Drittanbietern und wird direkt in HTML verwendet. 2. Es ist für Bilder geeignet, die nicht auf dem ersten Bildschirm unterhalb der Seite, die Scrolling-Add-Ons und gro?e Bildressourcen angezeigt werden. 3. Es ist nicht für Bilder mit dem ersten Bildschirm oder Display geeignet: keine; 4. Bei der Verwendung sollte ein geeigneter Platzhalter festgelegt werden, um Layout -Jitter zu vermeiden. 5. Es sollte das Laden von Responsive Bild in Kombination mit SRCSet- und Gr??enattributen optimieren. 6. Kompatibilit?tsprobleme müssen berücksichtigt werden. Einige alte Browser unterstützen es nicht. Sie k?nnen durch Merkmalserkennung verwendet und mit JavaScript -L?sungen kombiniert werden.

    Wie füge ich ein Video als Hintergrund in HTML hinzu? Wie füge ich ein Video als Hintergrund in HTML hinzu? Jul 08, 2025 am 12:03 AM

    Um einer Webseite einen Videohintergrund hinzuzufügen, besteht der Schlüssel darin, HTML -Tags korrekt zu verwenden und relevante Attribute zu optimieren. 1. Verwenden Sie Tags als Hintergrund und verwenden Sie die CSS -Positionierung, um die Seite oder den lokalen Bereich zu füllen. 2. Das Videoformat wird bevorzugt. 3. Fügen Sie ged?mpfte und PlaySInline -Attribute hinzu, um eine automatische Wiedergabe auf der mobilen Seite zu gew?hrleisten. 4. Steuern Sie die Videogr??e, um die Ladegeschwindigkeit zu optimieren, und es wird empfohlen, sie bei zehn MB zu halten. 5. Schleifen hinzufügen, um eine nahtlose Schleifenwiedergabe zu erreichen. 6. Es kann flexibel auf Vollbild- oder Lokalbl?cke angewendet werden, und unterschiedliche Effekte werden durch Anpassen der Beh?ltergr??e und Positionierungsmethode erzielt. Die obigen Schritte k?nnen einen stabilen und sch?nen Videohintergrund erreichen.

    Wie mache ich ein reaktionsschnelles Iframe? Wie mache ich ein reaktionsschnelles Iframe? Jul 09, 2025 am 01:39 AM

    Um Iframes reagieren zu lassen, besteht der Kern darin, CSS zu verwenden, um das Seitenverh?ltnis zu steuern und ihn mit dem Verpackungsbeh?lter zu kombinieren, um eine Anpassung zu erreichen. 1. Verwenden Sie Polstertechniken, um Containerboxen mit festen Proportionen zu erstellen. H?ufige Verh?ltnisse wie 16: 9 entsprechen Padding-Top56,25%, 4: 3 entsprechen 75%und 1: 1 entsprechen 100%; 2. Stellen Sie die Iframe-Breite auf 100% ein und verwenden Sie die absolute Positionierung, um den Container zu füllen, oder verwenden Sie das Aspektverh?ltnisattribut, um den Anteil beizubehalten. 3. Steuern Sie bei der Verarbeitung von Drittanbietern eingebetteter Inhalte, steuern Sie das Verh?ltnis über Containerverpackung und stellen Sie sicher, dass das zul?ssige Attribut für das zul?ssige Bildschirm hinzugefügt wird, um die Vollbildwiedergabe in mobilen Terminals zu unterstützen. Beherrschen Sie die Einstellungen für Container und Verh?ltnisse, um die Reaktionsf?higkeit des Iframe zu erkennen

    See all articles