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

HTML-Lernhinweise – Detaillierte Erklärung der HTML-Syntax (unbedingt lesen)

1. Was ist die HTML-Auszeichnungssprache? HTML is...

Erste Schritte mit SELinux

Bereits zu Kernel 2.6-Zeiten wurde ein neues Sich...

Eine kurze Analyse zum Upgrade von PHP 5.4 auf 5.6 in CentOS 7

1. Überprüfen Sie die PHP-Version nach dem Aufruf...

Fallbeispiel zur TypeScript-Schnittstellendefinition

Die Rolle der Schnittstelle: Schnittstelle, auf E...

Die Implementierung der Ereignisbindung in React verweist auf drei Methoden

1. Pfeilfunktion 1. Nutzen Sie die Tatsache, dass...

Drei Möglichkeiten zum Kopieren von MySQL-Tabellen (Zusammenfassung)

Tabellenstruktur und deren Daten kopieren Die fol...

Beispiel für die Verwendung von JS, um zu bestimmen, ob ein Element ein Array ist

Hier sind die Arten von Daten, die überprüft werd...

Lösung für den Absturz der Grafikkarte auf Linux-Servern

Wenn die Auflösung der Anmeldeoberfläche besonder...

Dieser Artikel entführt Sie in die Welt der js-Datentypen und Datenstrukturen

Inhaltsverzeichnis 1. Was ist dynamische Typisier...

Detaillierte Erklärung der dynamischen Angular-Komponenten

Inhaltsverzeichnis Anwendungsszenarien So erreich...