Heim > Artikel > Web-Frontend > Der jQuery-Code realisiert den automatischen + manuellen Ein- und Ausblendeffekt von picture wall_jquery
Verwandte Lektüre:
JQuery-Code zur Implementierung des Bildkarusselleffekts (1)
Auf Webseiten kann man häufig den Effekt des automatischen Ein- und Ausblendens von Hintergrundbildern beobachten, was sehr schön und sehr praktisch ist. Heute werde ich mir etwas Zeit nehmen, um den automatischen + manuellen Ein- und Ausblendeffekt der Bilderwand basierend auf JQuery-Code zu teilen. Lassen Sie uns gemeinsam lernen!
Ich zeige Ihnen zuerst die Renderings. Wenn Sie der Meinung sind, dass es gut ist, lesen Sie bitte den spezifischen Implementierungscode.
Fügen Sie ein Div (Klasse=Container) hinzu und legen Sie die Breite und Höhe fest. Hier beträgt die Breite 800 Pixel und die Höhe 450 Pixel. Fügen Sie eine zentrierte Positionierung hinzu. Fügen Sie dem div eine ul-Liste (class="img") hinzu, um die Position des li-Tags im ul auf „absolut“ zu setzen. Zu diesem Zeitpunkt überlappen sich die Bilder und stellen die Anzeige auf „Keine“ ein. Das Bild legt die Breite und Höhe so fest, dass sie mit dem Container übereinstimmen. Fügen Sie dem Container eine weitere ul-Liste hinzu, um die darunter liegende Zahlenreihe aufzunehmen, und positionieren Sie sie dann entsprechend. Fügen Sie zwei Divs hinzu: links und rechts, die jeweils die linke und rechte Schaltfläche sind, und führen Sie die entsprechenden Positionierungen und Einstellungen durch. Die Pfeile darin sind das Größer-als-Zeichen bzw. das Kleiner-als-Zeichen.
Einführung in Umsetzungsideen und -prinzipien:
Wenn sich die Maus über die entsprechende Nummer bewegt, verwenden Sie $(this).index(), um die Seriennummer in dem Container abzurufen, in dem sich die Nummer befindet, und übergeben Sie dann die Seriennummer an die Funktion eq(), um die li zu erhalten label, und fügen Sie dann die Funktion fadeIn( ); hinzu. Auf diese Weise wird das ausgeblendete Bild angezeigt und gleichzeitig sibling().fadeOut() aufgerufen, um die Geschwisterknoten auf derselben Ebene auszublenden, sodass die zuvor angezeigten Bild ist ausgeblendet.
Fügen Sie die Funktion setInterval() hinzu, um gleichzeitig das Bild zu ändern.
Ich denke, ein großes Problem ist der Konflikt zwischen automatischer Umschaltung und manueller Umschaltung, die gestoppt werden sollte, wenn die Maus über das Bild bewegt wird:
Fügen Sie dem Container eine Hover-Funktion hinzu. Verwenden Sie die Funktion „clearInterval()“, um die Zeitintervallfunktion zu entfernen. Auf diese Weise wechselt das Bild nicht. Fügen Sie es hinzu, wenn sich die Maus herausbewegt. Auf diese Weise können die Bilder weiterhin umgeschaltet werden.
Hinweis: i und t müssen als globale Variablen festgelegt werden, damit verschiedene Funktionen gemeinsam genutzt werden können. i stellt den Index des aktuell angezeigten Bildes dar. t ist die ID von setInterval. Wenn sich die Maus herausbewegt, ist es nicht erforderlich, t zu ändern, sondern nur: t=setInterval(time_fun,1500);.
eq(n): Finden Sie das n-te Element
zB: $('li').eq(2).css('background-color', 'red');//Setzen Sie die Hintergrundfarbe des zweiten Li-Tags auf Rot
index(): Finden Sie den Indexwert des Elements
Wenn Sie interessiert sind, lesen Sie den Code:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-"> <title>jquery_img_switch</title> </head> <style type="text/css"> *{ margin: ; padding: ; } .container{ width: px; height: px; margin: px auto; position: relative; } .container .img{ list-style: none; /*position: absolute;*/ } .container .img li{ position: absolute; display: none; } .container .img img{ width: px; height: px; } .container .num{ position: absolute; list-style: none; font-size: ; bottom: px; width: %; text-align: center; } .container .num li{ width: px; height: px; background: rgba(,,,.); border-radius: %; color: #; display: inline-block; line-height: px; text-align: center; font-size: px; margin-right: px; cursor: pointer; } .left, .right{ width: px; height: px; text-align: center; line-height: px; background-color: rgba(,,,.); color: #fff; position: absolute; top: %; margin-top: -px; font-size: px; cursor: pointer; } .left{ left: px; } .right{ right: px; } .container .num .active{ background: rgba(,,,); color: #fff; } </style> <script type="text/javascript" src="../jquery-...min.js"></script> <script type="text/javascript"> var i=; var t; $(document).ready(function(){ $(".container .img li").eq(i).fadeIn().siblings().fadeOut(); $(".container .num li").on("mouseover",active); t=setInterval(time_fun,); $(".container").hover(in_fun,out_fun); $(".container .left").on("click",left_fun); $(".container .right").on("click",right_fun); }); function time_fun(){ i++; if(i==){ i=; } $(".container .num li").eq(i).addClass("active").siblings().removeClass("active"); $(".container .img li").eq(i).fadeIn().siblings().fadeOut(); } function in_fun(){ clearInterval(t); } function out_fun(){ t=setInterval(time_fun,); } function active(){ $(this).addClass("active").siblings().removeClass("active"); $(".container .img li").eq($(this).index()).fadeIn().siblings().fadeOut(); i=$(this).index(); } function left_fun(){ i--; if(i==-){ i=; } $(".container .num li").eq(i).addClass("active").siblings().removeClass("active"); $(".container .img li").eq(i).fadeIn().siblings().fadeOut(); } function right_fun(){ i++; if(i==){ i=; } $(".container .num li").eq(i).addClass("active").siblings().removeClass("active"); $(".container .img li").eq(i).fadeIn().siblings().fadeOut(); } </script> <body> <div class="container"> <ul class="img"> <li ><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> <li><img src="../../Img/.jpg"></li> </ul> <ul class="num"> <li class="active"></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> <div class="left"><</div> <div class="right">></div> </div> </body> </html>
Das Obige ist der jQuery-Code, den Ihnen der Editor zur Verfügung gestellt hat, um den automatischen + manuellen Ein- und Ausblendeffekt der Bildwand zu realisieren. Gleichzeitig hoffe ich, dass er Ihnen hilft Vielen Dank auch für Ihre Unterstützung der Script House-Website!