Natives JavaScript zum Erzielen von Folieneffekten

Natives JavaScript zum Erzielen von Folieneffekten

Wenn wir eine Seite erstellen, insbesondere eine Homepage, entwerfen wir normalerweise eine Navigationsleiste, die auf andere Hauptseiten der gesamten Website verweisen kann, oder einen Absatz mit Einführungstext der Website, der den Sprung zu dieser Seite enthält. Normalerweise verwenden wir das Titelattribut, um diesen Sprunglinks einen erklärenden Text hinzuzufügen, aber wir können das Benutzererlebnis verbessern, indem wir eine Foliendemo erstellen. Wenn der Benutzer die Maus über einen Link bewegt, wird darunter die entsprechende Bildvorschau angezeigt. Dies verschönert nicht nur die Seite, sondern erhöht auch die Interaktivität der gesamten Website erheblich. Lassen Sie uns gemeinsam ein schönes Diashow-Skript erstellen.

Vorbereitung: Bevor Sie das Skript erstellen, müssen Sie ein Bild erstellen, das alle Vorschaueffekte zeigen soll, wie unten gezeigt:

Hauptseite

Erstellen Sie eine geordnete Liste und fügen Sie einige Seitenlinks hinzu

<Text>
 <h1>Einfache Animationsproduktion</h1>
 <p>Link-Sprungzielanzeige</p>
 <ol id="Liste">
 <li>
 <a href="list1.html" >Vorname</a>
 </li>
 <li>
 <a href="list2.html" >Zweite</a>
 </li>
 <li>
 <a href="list3.html" >Drittens</a>
 </li>
 </ol>
 <!--Dynamisch hinzugefügter Bildanzeigebereich>-->
<script src="script.js"></script>
</body>

Stil.css

Fügen Sie dieser Navigationsleiste einige Stile hinzu

ol{
 Polsterung links: 20px;
}
altes li{
 Anzeige: inline;
 Rand rechts: 10px;
}
#Sicht{
 Breite: 600px;
 Höhe: 200px;
 Position: absolut;
}
#Diashow{
 Breite: 200px;
 Höhe: 200px;
 Überlauf: versteckt;
 Position: relativ;
}

script.js

Umsetzungsideen:

Bevor wir ein Skript erstellen, sollten wir unsere Gedanken ordnen und festlegen, was wir tun möchten.
1. Erstellen Sie einige Knoten, um Vorschaubilder anzuzeigen
2. Fügen Sie dem a-Tag das Ereignis onmouseover hinzu
3. Der Animationseffekt wird durch die Funktion setTimeout () und die Bewegung des linken und oberen Offsets des Bildelements vervollständigt (die linken und oberen Attribute müssen beim Abrufen der festgelegten Attribute in Ganzzahlen umgewandelt werden).

/*Geteilte Last*/
Funktion addLoadEvent(Spaß){
 var oldLoad = Fenster.onload;
 wenn(Typ von oldLoad != "Funktion"){
  window.onload = Spaß;
 }anders{
  fenster.onload = funktion(){
   alteLoad();
   Spaß();
  }
 }
}

/*EinfügenNach*/
Funktion insertAfter(neuerKnoten,alterKnoten){
 var parent = alterNode.parentNode;
 wenn(übergeordnet.letztesKind == alterKnoten){
  übergeordnetes Element.anhängenKind(neuer Knoten);
 }anders{
  parent.insertBefore(neuerKnoten,alterKnoten.nächstesGeschwisterelement);
 }
}

Funktion zeigen(){
 /* Abwärtskompatibilität */
 wenn(!document.getElementById) false zurückgibt;
 wenn(!document.getElementsByTagName) false zurückgibt;
 wenn(!document.createElement) false zurückgibt;

 /*Liste der Listen abrufen*/
 var Liste = document.getElementById("Liste");

 /*Bildanzeigebereich erstellen*/
 /*Äußeres Div*/
 var div = document.createElement("div");
 div.setAttribute("id","Diashow");
 /*Bild*/
 var img = document.createElement("img");
 img.setAttribute("id","ansicht");
 img.setAttribute("src","bild.jpg");
 img.setAttribute("alt","Bildvorschau");
 /*Fügen Sie die Funktion insertAfter() hinzu, um sicherzustellen, dass das div direkt nach der Liste steht*/
 einfügenNach(div,Liste);
 div.appendChild(img);

 /*Bind-Ereignis*/
 var a = list.getElementsByTagName("a");
 a[0].onmouseover = Funktion(){
  moveElement("Ansicht",0,0,10);
 };
 a[1].onmouseover = Funktion(){
  moveElement("Ansicht",-200,0,10);
 };
 a[2].onmouseover = Funktion(){
  moveElement("Ansicht",-400,0,10);
 };
}


/*Die Bedeutung der Bewegungs*-Parameter: die ID des Elements, in dem sich das Bild befindet; der Offset nach links, um den das Bild verschoben werden soll; der obere Offset; die Zeit*/
Funktion moveElement(elementID,links,oben,intervall){
 /* Abwärtskompatibilität */
 wenn(!document.getElementById) false zurückgibt;
 wenn(!document.getElementById(elementID)) false zurückgibt;

 /*Bild abrufen*/
 var img = document.getElementById(elementID);

 /*Bestimmen Sie, ob sich das aktuelle Element bereits in einer Animationsfunktion befindet*Ansammlung von Animationen verhindern*/
 wenn(img.moveNow){
  /* Lösche den Animationsstapel */
  : Lösche Timeout (img.moveNow);
 }

 /*Bestimmen Sie, ob das Element links und oben gesetzt ist*/
 wenn(!img.style.left){
  img.style.left = "0px";
 }
 wenn(!img.style.top){
  img.style.top = "0px";
 }


 /* Aktuelle Position des Bildes abrufen* Der zu diesem Zeitpunkt abgerufene Wert liegt im Zeichenfolgenformat vor. Verwenden Sie parseInt(), um die Konvertierung in eine Zeichenfolge zu erzwingen*/
 var oldLeft = parseInt(img.style.left);
 var oldTop = parseInt(img.style.top);

 /*Vergleiche die aktuelle Position mit der Zielposition*/
 wenn(altLinks == links && altOben == oben){
  gibt true zurück;
 }

 /*Um das Benutzererlebnis zu gewährleisten, sollte die Bewegung bei großen Entfernungen schneller sein.*Bei kleinen Entfernungen kann sie langsamer sein.*Beurteilen Sie die Entfernung anhand der Entfernungsdifferenz und bewegen Sie sich jedes Mal um 1/10 der Entfernungsdifferenz.
 */
 /*Die Variable „dist“ wird verwendet, um die Distanz zwischen dem aktuellen Offset und dem Ziel-Offset zu speichern*/
 var dist = 0;
 wenn(altLinks < links){
  /*ceil() rundet auf, um Dezimalstellen und Zahlen kleiner als 1 zu vermeiden*/
  dist = Math.ceil((left-oldLeft)/10);
  altLinks = altLinks+Entfernung;
 }
 wenn (altesLinks > links) {
  dist = Math.ceil((altesLinks-links)/10);
  altLinks = altLinks - Abstand;
 }
 wenn(altesTop < top){
  dist = Math.ceil((oben-altOben)/10);
  altesTop = altesTop+dist;
 }
 wenn(altesTop > oben){
  dist = Math.ceil((altesTop-Top)/10);
  altesTop = altesTop - Vert;
 }

 /*bewegen*/
 img.style.left = altesLeft+"px";
 img.style.top = altesTop+"px";

 /*Funktion aufrufen*/
 var Ergebnis = "moveElement('"+elementID+"',"+left+","+top+","+interval+")";
 /*Legen Sie die Funktion, die die Animation ausführt, als Attribut dieses Elements fest*/
 img.moveNow = setTimeout(Ergebnis,Intervall);
}

addLoadEvent(anzeigen);

Endgültiger Ausführungseffekt

Wenn wir jetzt die Maus über verschiedene Listenelemente bewegen, werden die Bilder unter der Liste an die entsprechende Position des Vorschaubilds verschoben.

An diesem Punkt ist eine einfache Diashow-Demo abgeschlossen.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Implementierung von JS-Folien
  • JavaScript zum Erreichen des Quellcodes für den Folieneffekt beim Bildwechsel
  • Schöner Code für den Bildrotationseffekt im JS-Tab (anpassbare Diashow und Bildpufferumschaltung)
  • JS+FLASH-Diashow-Bildskript, der Code ist so organisiert, dass der Aufruf bequemer ist!
  • Verwenden von JavaScript zum Erstellen von wartbarem Diashow-Code
  • js, um Beispielcode für Diashow-Bilder zu erhalten
  • Diashow-Umschalteffekt durch JS implementiert
  • JS realisiert den Effekt der Wiedergabe mehrerer Bilder nacheinander
  • So implementieren Sie den Taobao-Diashow-Effekt mit JS
  • js mit einigen automatischen Bildkarussell-Diashow-Spezialeffekten Code-Sharing

<<:  Die einfachste Lösung für das Problem, dass Sublime Text in Ubuntu kein Chinesisch eingeben kann

>>:  So ändern Sie die Standardspeicher-Engine in MySQL

Artikel empfehlen

ThingJS-Partikeleffekte, um Regen- und Schneeeffekte mit einem Klick zu erzielen

Inhaltsverzeichnis 1. Partikeleffekte 2. Laden Si...

8 leistungsstarke Techniken zum Erstellen von HTML-Webseiten

<br />Es gibt zwar viele Tools zum Erstellen...

css Alle Elemente ab dem n-ten abrufen

Der spezifische Code lautet wie folgt: <div id...

Analyse der allgemeinen Konfigurationsmethoden für virtuelle Hosts von Apache

1. Installation und Konfiguration des Apache-Serv...

Docker Link realisiert die Containerverbindung

Inhaltsverzeichnis 1.1. Netzwerkzugriff zwischen ...

Backup zwischen MySQL-Datenbank und Oracle-Datenbank importieren

Importieren Sie die aus der Oracle-Datenbank expo...

Spezifische Verwendung der Schnittstelle wx.getUserProfile im Applet

Kürzlich hat das WeChat Mini-Programm Anpassungen...

Manuelles Implementieren des Eingabefelds für den js-SMS-Bestätigungscode

Vorwort Dieser Artikel beschreibt eine allgemeine...

Grundprinzipien für die Zusammenstellung einer Website-Homepage

1. Die Organisationsstruktur des Hypertext-Dokumen...

Tutorial zur Verwendung des Multitail-Befehls unter Linux

MultiTail ist eine Software zum gleichzeitigen Üb...