suchen
HeimWeb-Frontendjs-TutorialBeispielcode für JavaScript+CSS-Fotoalbum-Spezialeffekte

Der Editor unten zeigt Ihnen einen Beispielcode für JavaScript+CSS-Fotoalbumeffekte an. Der Herausgeber findet es ziemlich gut, deshalb teile ich jetzt den Quellcode von JavaScript + CSS mit Ihnen und gebe ihm eine Referenz. Wenn Sie daran interessiert sind, Fotoalben mit JavaScript und CSS zu erstellen, folgen Sie bitte dem Editor und werfen Sie einen Blick darauf

Nun, das ist ein Beispiel, das Sie im Video gelernt haben ist in der Praxis nicht sehr nützlich, kann aber helfen, die JS-Sprache zu verstehen und sich mit CSS3-Stilen vertraut zu machen.

Design:

Beobachten Sie die Änderungen in einem Bild und finden Sie:

1. Bildskalierung (zufällig). , und sich nicht gleichzeitig bewegen)

1. Von groß nach klein

2. Von klein nach groß, Transparenz von 1 bis 0 (beginnen Sie direkt nach dem ersten Schritt von Übung ist abgeschlossen)

2. Bildrotation (zufällig und nicht gleichzeitig bewegen. Es muss gestartet werden, nachdem alle Bewegungen abgeschlossen sind)

3. Da sich jedes Bild zufällig verändert, ist die Startzeit unterschiedlich. Hier können Sie einen Verzögerungs-SetTimeout festlegen und die Zeit mithilfe von „Random“ zufällig generieren.

4. Da setTimeout i in der for-Schleife ignoriert, kann es sein, dass ich jedes Mal einen Fehler mache Um zu sparen, schätze ich es jedes Mal.

5. Das p der Schaltfläche kann während der Konvertierung nicht angeklickt werden und erfordert eine Markierung und Beurteilung.

6. Es gibt zwei Bewegungen, Skalierung und Rotation. Beachten Sie, dass die Rotation erst beginnen kann, nachdem die Skalierung abgeschlossen ist.

Hinweise:

Skalierung ist die Skalierung

Übergangsübergang, Verzögerung

Unter -Funktion Das Ändern des Werts des Vaters ist ein Abschluss

Die selbstausführende Funktion wird hauptsächlich zum Speichern jedes Werts von i verwendet

Wenn Sie a hinzufügen Timer direkt, es wird ignoriert. Zu diesem Zeitpunkt weiß ich nicht, wo es außerhalb der Grenzen liegt >Der von Math.random() generierte Wert ist ein Parameter von setTimeout.

Die Verzögerungszeit von setTimeout wird auch von der Computerkarte

transitionend beeinflusst, solange der Übergang ausgeführt wird wird erstellt. Es wird basierend auf dem Stil

berechnet.

Zoom und Transparenz lösen transitend

call() aus, um das Objekt zu ändern, auf das dieses Dann wird es direkt implementiert und dieser Spezialeffekt wird beim Laden der Seite ausgeführt.

Fügen Sie einige Informationen aus der Mitte hinzu:

1.CSS3-Deckkraftattribut:

2.HTML-DOM-Skala ( ) Methode:

描述
value 指定不透明度。从0.0(完全透明)到1.0(完全不透明)
inherit Opacity属性的值应该从父元素继承
Parameter

Beschreibung

Die Methode „scale()“ fügt der aktuellen Transformationsmatrix der Leinwand eine Skalierungstransformation hinzu. Die Skalierung erfolgt mit unabhängigen horizontalen und vertikalen Skalierungsfaktoren. Wenn Sie beispielsweise einen Wert von 2,0 und 0,5 übergeben, wird der Zeichenpfad doppelt so breit und halb so hoch. Die Angabe eines negativen sx-Werts führt dazu, dass die X-Koordinate entlang der Y-Achse gefaltet wird, und die Angabe eines negativen sy führt dazu, dass die Y-Koordinate entlang der X-Achse gefaltet wird.

Einer meiner direkten Parameter besteht darin, gleichzeitig die Höhe und Breite zu reduzieren

3

p ist in diesem Fall das p-Label Wird an die Höhe des Bildes im Inneren angepasst. Standardmäßig schweben die IMG-Tags nach links, genau 10 pro Zeile, jeweils 80 Pixel.
margin: 0 auto ist die Abkürzung für margin: 0 auto 0 auto, that Das heißt, der linke und der rechte Rand werden automatisch zentriert. Das obere p sollte der obere Rand sein: 80 Pixel automatisch, und der äußere Rand des unteren p wurde auf 80 Pixel Abstand eingestellt

Die Höhe von BTN wurde nicht festgelegt, sie wird von der Schriftart unterstützt

Der Rest ist Der Code ist detailliert, die Kommentare sind sehr detailliert und es gibt viele Rückruffunktionen . . :

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style>
  /*图片容器整体样式,左右居中 视角景深800px */
  #imgWrap{
  width: 800px;
  height: 400px;
  margin: 80px auto;
  perspective: 800px;
  }

  /*左对齐,高宽*数量=整体p*/
  #imgWrap img{
  float: left;
  width: 80px;
  height: 80px;
  }

  #btn{
  width: 100px;
  /*height: 40px 这里不定义就是跟font大小一样*/
  background: rgb(0,100,0);
  padding: 0 20px;
  /*font-size 和 line-height 中可能的值。*/
  font: 16px/40px "微软雅黑";
  color: #fff;
  margin: 0 auto;
  border-radius: 5px;
  box-shadow: 2px 2px 5px #000;
  cursor: pointer;
  }
 </style>
 <script>
  /*
  * 1、图片缩放(随机,并且不是同时运动)
  * 1、从大到小
  * 2、从小到大,透明度从1到0(在第一步运动完成后立马开始)
  *
  * 2、图片旋转(随机,并且不是同时运动的。需要在全部运动走完以后开始)
  */

  window.onload=function(){
  var btn=document.getElementById("btn");
  // 选择所有元素
  var imgs=document.querySelectorAll("img");
  var endNum=0; //它代表图片运动完成的数量
  var canClick=true; //它代表用户能否再次点击

  btn.onclick=function(){
   if(!canClick){
   return; //以下的代码不要走了
   }
   canClick=false;


   for(var i=0;i<img src="/static/imghwm/default1.png"  data-src="images/1.jpg"  class="lazy" s.length;i++){
   (function(i){
    setTimeout(function(){
    /*imgs[i].style.transition=&#39;100ms&#39;;
    imgs[i].style.transform=&#39;scale(0)&#39;;
    imgs[i].style.opacity=&#39;0&#39;;

    imgs[i].addEventListener(&#39;transitionend&#39;,function(){
     console.log(1);
    });*/

    motion(imgs[i],&#39;50ms&#39;,function(){
     this.style.transform=&#39;scale(0)&#39;;
    },function(){
     motion(this,&#39;1s&#39;,function(){
     this.style.transform=&#39;scale(1)&#39;;
     this.style.opacity=&#39;0&#39;;
     },function(){
     //在这里表示图片缩放的运动已经全部完成了,接着走第二个运动

     endNum++;
     if(endNum==imgs.length){
      //所有的运动都完成了
      //console.log(&#39;所有的运动都完成了&#39;)
      rotate();
      //endNum=0;
     }
     });
    });
    },Math.random()*1000);
   })(i);
   }
  };


  //旋转功能
  function rotate(){
   for(var i=0;i<img src="/static/imghwm/default1.png"  data-src="images/1.jpg"  class="lazy" s.length;i++){
   //给运动来一下初始化
   imgs[i].style.transition=&#39;&#39;;
   /*imgs[i].style.opacity=1;*/
   imgs[i].style.transform=&#39;rotateY(0deg) translateZ(-&#39;+Math.random()*500+&#39;px)&#39;;

   //运动来了,自执行函数
   (function(i){
    setTimeout(function(){
    motion(imgs[i],&#39;2s&#39;,function(){
     this.style.opacity=1;
     this.style.transform=&#39;rotateY(-360deg) translateZ(0)&#39;;
    },function(){
     endNum--; //因为在上次运动结束的时候,endNum的值已经加到了50了
     //console.log(endNum);
     if(endNum==0){
     //所有的运动都完成了
     canClick=true;
     //endNum=0
     }
    });
    },Math.random()*1000);
   })(i);
   }
  }

  //运动函数
  function motion(obj,timer,doFn,callBack){
   //motion(运动对象,运动时间(字符串+单位),运动属性(函数),运动结束后的回调函数)
   obj.style.transition=timer;
   doFn.call(obj);//改变对象

   var end=true; //用来知道过渡有没有完成一次

   //结束事件处理函数
   function endFn(){
   if(end){
    //callBack&&callBack.call(obj);
    if(callBack){
    callBack.call(obj);
    }

    end=false; //改成false,下次就不会走这个if了
   }

   obj.removeEventListener(&#39;transitionend&#39;,endFn); //结束后就把这个事件取消掉,要不它会一直带在身上
   }

   obj.addEventListener(&#39;transitionend&#39;,endFn);
  }
  };
 </script>
 </head>
 <body>
 <p id="imgWrap">
  <img src="/static/imghwm/default1.png"  data-src="images/1.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/2.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/3.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/4.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/5.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/6.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/7.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/8.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/9.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/10.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/11.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/12.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/13.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/14.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/15.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/16.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/17.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/18.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/19.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/20.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/21.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/22.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/23.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/24.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/25.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/26.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/27.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/28.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/29.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/30.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/31.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/32.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/33.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/34.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/35.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/36.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/37.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/38.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/39.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/40.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/41.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/42.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/43.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/44.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/45.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/46.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/47.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/48.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/49.jpg"  class="lazy"   alt="" />
  <img src="/static/imghwm/default1.png"  data-src="images/50.jpg"  class="lazy"   alt="" />
 </p>
 <p id="btn">点击查看效果</p>
 </body>
</html>

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er kann jedem beim Lernen helfen! !

Verwandte Empfehlungen:

Javascript-Array-Flattening-Methode wird ausführlich erklärt

JavaScript implementiert das Auswahl-Dropdown Box Teilen von Beispielen für das Hinzufügen und Löschen von Elementen in

Beispielcode für den binären Suchbaum des Javascript-Algorithmus

Das obige ist der detaillierte Inhalt vonBeispielcode für JavaScript+CSS-Fotoalbum-Spezialeffekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Von C/C nach JavaScript: Wie alles funktioniertVon C/C nach JavaScript: Wie alles funktioniertApr 14, 2025 am 12:05 AM

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

JavaScript -Engines: Implementierungen vergleichenJavaScript -Engines: Implementierungen vergleichenApr 13, 2025 am 12:05 AM

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Jenseits des Browsers: JavaScript in der realen WeltJenseits des Browsers: JavaScript in der realen WeltApr 12, 2025 am 12:06 AM

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

Erstellen einer SaaS-Anwendung mit mehreren Mietern mit Next.js (Backend Integration)Erstellen einer SaaS-Anwendung mit mehreren Mietern mit Next.js (Backend Integration)Apr 11, 2025 am 08:23 AM

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen

So erstellen Sie eine SaaS-Anwendung mit mehreren Mietern mit Next.js (Frontend Integration)So erstellen Sie eine SaaS-Anwendung mit mehreren Mietern mit Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Dieser Artikel zeigt die Frontend -Integration mit einem Backend, das durch die Genehmigung gesichert ist und eine funktionale edtech SaaS -Anwendung unter Verwendung von Next.js. erstellt. Die Frontend erfasst Benutzerberechtigungen zur Steuerung der UI-Sichtbarkeit und stellt sicher, dass API-Anfragen die Rollenbasis einhalten

JavaScript: Erforschung der Vielseitigkeit einer WebspracheJavaScript: Erforschung der Vielseitigkeit einer WebspracheApr 11, 2025 am 12:01 AM

JavaScript ist die Kernsprache der modernen Webentwicklung und wird für seine Vielfalt und Flexibilität häufig verwendet. 1) Front-End-Entwicklung: Erstellen Sie dynamische Webseiten und einseitige Anwendungen durch DOM-Operationen und moderne Rahmenbedingungen (wie React, Vue.js, Angular). 2) Serverseitige Entwicklung: Node.js verwendet ein nicht blockierendes E/A-Modell, um hohe Parallelitäts- und Echtzeitanwendungen zu verarbeiten. 3) Entwicklung von Mobil- und Desktop-Anwendungen: Die plattformübergreifende Entwicklung wird durch reaktnative und elektronen zur Verbesserung der Entwicklungseffizienz realisiert.

Die Entwicklung von JavaScript: Aktuelle Trends und ZukunftsaussichtenDie Entwicklung von JavaScript: Aktuelle Trends und ZukunftsaussichtenApr 10, 2025 am 09:33 AM

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

Entmystifizieren JavaScript: Was es tut und warum es wichtig istEntmystifizieren JavaScript: Was es tut und warum es wichtig istApr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

See all articles

Heiße KI -Werkzeuge

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.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft