Forum: NOF - Tutorials (185 anschauliche Tutorials zum Lesen und Nacharbeiten) > Bildgalerien, Slider, Bildwechsler, Videogalerien
Kleine Wechsel-Bild-Galerie mit mouseover-Effekt und scrollenden Thumbs
(1/1)
nettesekel:
Kürzlich habe ich auf Wunsch eines Users den Einfau dieser Galerie nochmal ausfühlich erläutert. https://www.nof-community.de/index.php?topic=1961.0
Nun habe ich das kleine Script, welches ich auch für den Contentslider verendet habe genutzt, um diese Galerie ein wenig auszubauen.
Während bei der einfachen Variante 4 Thumbs starr über dem großen Bild lagen und weitere Thumbs dann darüber oder daneben platziert werden mussten, kann man bei der modifizierten Variante nun einfach den Thumb-Container scrollen.
Wie das in NOF eingebaut aussieht, dazu gibt es wie immer ein Beispielprojekt:
http://demos.nof-community.de/kleine-wechselbildgalerie-mit-scrollenden-thumbs-in-netobjects-fusion/demo.html
Achtung! Damit der -Thumb-Slider auch im IE fehlerfrei funktioniert, publiziert die Seite bitte unter dem Doctype LOOSE.
Für Nutzer älterer NOF-Versionen gibt es hierfür eine Komponente von SwissKnife die ihr hier downloaden könnt: http://www.nof-academy.de/html/SwissKnife-Komponenten_fuer_NetObjects_Fusion.php
Und hier findet ihr eine Anleitung zur Verwendung der Kompo: http://www.nof-academy.de/SwissKnife-Tutorials/DocType/
nettesekel:
Der Slider besteht im Prinzip auch 3 Bestandteilen:
jQuery
CSS
HTML
Platziert also zunächst mal die folgende Verlinkung zwischen den head-Tags der Seite, auf welcher der Slider laufen soll:
--- Code: HTML5 ---<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
Wer nicht weiß, wie das geht, findet ihr eine Anleitung dazu: www.nof-community.de/index.php/topic,851.0
Da der Slider wahrscheinlich nicht auf allen Seiten laufen soll, würde ich empfehlen die Verlinkung im Layout-html (F9) einzutragen.
Zusätzlich fügt ihr dieses kleine Javascript am Body-Ende der Seite ein. Habt ihr euch bei der Verlinkung fürs Layout-html entschieden, so solltet ihr auch diese Einfügung im Layout-html vornehmen.
--- Code: Javascript ---<script type="text/javascript">var $gal = $('#gallery'), $sli = $('#slider'), $box = $('div.slide',$sli), W = $gal.width(), // 500 N = $box.length, // 3 C = 0; // a counter $sli.width(W*N); $('#prev, #next').click(function(){ C = (this.id=='next' ? ++C : --C) <0 ? N-1 : C%N; $sli.stop().animate({left: -C*W },800);}); </script>
nettesekel:
Als nächstes wenden wir uns der CSS-Datei zu. Im Beispielprojekt habe ich die CSS zwischen den head-Tags der Seite eingefügt, was grundsätzlich kein Problem darstellt. Möchtet ihr in eurem Projekt genauso vorgehen, dann fügt ihr folgenden Code zwischen den Head-tags eurer Seite ein. Ihr könnt ihn im Prinzip direkt eine Zeile (eventuell eine Leerzeile dazwischen) unter der vorher eingefügten Verlinkung einfügen.
--- Code: HTML5 ---<style type="text/css">#gallery{ position:relative; margin: 0 auto; overflow:hidden; width:502px; height:128px; /* +20 = space for buttons */ text-align:center; /* to center the buttons */}#slider{ position:absolute; left:0; height:108px; text-align:left; /* to reset text inside slides */}#slider > div { position:relative; float:left; width:502px; height:108px;}#prev, #next{ color: gray; display:inline-block; position:relative; top:108px; cursor:pointer;}#prev{ padding-right:230px;}#next{ padding-left:230px;}.first{ margin-right:20px; width:105px; height:105px;}.image{ border: 1px solid gray; width:105px; height:105px;}</style>
Alternativ könnt ihr die Styleangaben aber auch in eine eigene Styledatei schreiben und dann eine Verlinkung zu dieser Datei zwischen den head-Tags der Seite einbinden.
Dazu öffnet ihr euren Editor kopiert ihr diesen Code in eine leer Datei und speichert sie unter slider.css ab.
--- Code: HTML5 ---#gallery{ position:relative; margin: 0 auto; overflow:hidden; width:502px; height:128px; /* +20 = space for buttons */ text-align:center; /* to center the buttons */}#slider{ position:absolute; left:0; height:108px; text-align:left; /* to reset text inside slides */}#slider > div { position:relative; float:left; width:502px; height:108px;}#prev, #next{ color: gray; display:inline-block; position:relative; top:108px; cursor:pointer;}#prev{ padding-right:230px;}#next{ padding-left:230px;}.first{ margin-right:20px; width:105px; height:105px;}.image{ border: 1px solid gray; width:105px; height:105px;}
Diese Datei kopiert dann in den html-Ordner eurer lokalen Publizierung und ebenfalls in den html-Order auf eurem Server.
Anstelle des CSS-Codes fügt ihr dann nur noch die Verlinkung zu dieser Datei zwischen den Head-Tags eurer Seite ein. Achtet darauf dass beim Einsatz auf der Startseite der Pfad zur Style-Datei mit nur einem Punkt beginnen darf!
--- Code: HTML5 ---<link rel="stylesheet" type="text/css" href="../html/slider.css">
Eine dritte Variante ist die, die Datei direkt in NOF einzubinden. Wie das funktioniert, ist hier beschrieben: https://www.nof-community.de/index.php/topic,1536.0
nettesekel:
Kommen wir nun zu den Bildern. Um eine solche Galerie zu erstellen, benötigt ihr von jedem Bild je eine kleine und eine große Version.
Alle Maße der kleinen Bilder sollten identisch sein, alle Maße der großen Bilder ebenfalls, damit die Bilder später nicht hüpfen und ein einheitliches Bild ergeben.
Auch solltet Ihr die Bezeichnungen für die zueinandergehörenden Bilder immer so wählen, dass ihr sie gut zuordnen könnt. Also wie in meinem Beispiel
galerie1.jpg >> galerie1-s.jpg (s für small = klein)
Meine kleinen Bilder heißen:
galerie1-s.jpg
galerie2-s.jpg
galerie3-s.jpg
galerie4-s.jpg
usw.
Meine großen Bilder heißen:
galerie1.jpg
galerie2.jpg
galerie3.jpg
galerie4.jpg
usw.
Nun fügt ihr die große Version des Bildes in der Arbeitsansicht ein, das zuerst in eurer Galerie erscheinen soll. Legt dieses Bild am besten auf einen Layoutbereich, so lassen sich ungewollte Abstände zwischen Slider und großem Bild besser unterbinden.
Im zweiten Schritt geben wir dem großen eingefügten Bild einen Namen, damit der Browser später weiß, welches Bild bei Mouseover durch die anderen Bilder ausgetauscht werden soll.
Hierzu kopiert ihr euch zunächst folgenden Code:
--- Code: HTML5 ---name="wechselbild"
In NOF markiert ihr nun das große Bild mit einem einfachen Klick und klickt im Anschluss den "html"-Button auf der EP. Es öffnet sich ein Fenster und ihr sucht euch am oberen Fensterrand das Icon für "Innen".
Klickt das Icon an... und dort wo nun der Cursor blinkt, fügt ihr den kopierten Codeschnipsel ein. Mit einem Klick auf den OK-Button am untern Fensterrand ist der Vorgang abgeschlossen.
Im Anschluss bindet ihr alle anderen großen Bilder und alle euren kleinen Bilder als zusätzliche Assets in euer Projekt ein. Eine Anleitung dazu, wie man das macht, findet ihr hier: www.nof-community.de/index.php/topic,11.0
Achtet bitte auch darauf dass ihr eure Publizierungsstruktur auf "nach Assettyp" gestellt habst, ansonsten wird die Galerie nicht funktionieren. Wie man das - falls nötig - umstellen kann, ist hier beschrieben. www.nof-community.de/index.php/topic,1540.0
nettesekel:
Nun fügt ihr oberhalb eures großen Bildes, linksbündig ein Textfeld ein (ebenfalls auf den Layoutbereich).
Ins html dieses Textfeldes gebt ihr nun den Code für euren Thumbnail-Slider ein. Wie da geht, ist hier beschrieben: www.nof-community.de/index.php/topic,47.0
--- Code: HTML5 ---<div id="gallery"> <div id="slider"> <div> <img src="./assets/images/galerie1-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie1.jpg';" class="first image"> <img src="./assets/images/galerie2-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie2.jpg';" class="first image"> <img src="./assets/images/galerie3-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie3.jpg';" class="first image"> <img src="./assets/images/galerie4-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie4.jpg';" class="image"> </div> <div> <img src="./assets/images/galerie5-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie5.jpg';" class="first image"> <img src="./assets/images/galerie6-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie6.jpg';" class="first image"> <img src="./assets/images/galerie7-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie7.jpg';" class="first image"> <img src="./assets/images/galerie8-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie8.jpg';" class="image"> </div> <div> <img src="./assets/images/galerie9-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie9.jpg';" class="first image"> <img src="./assets/images/galerie10-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie10.jpg';" class="first image"> <img src="./assets/images/galerie11-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie11.jpg';" class="first image"> <img src="./assets/images/galerie12-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie12.jpg';" class="image"> </div> <div> <img src="./assets/images/galerie13-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie13.jpg';" class="first image"> <img src="./assets/images/galerie14-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie14.jpg';" class="first image"> <img src="./assets/images/galerie15-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie15.jpg';" class="first image"> <img src="./assets/images/galerie16-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie16.jpg';" class="image"> </div> <div> <img src="./assets/images/galerie17-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie17.jpg';" class="first image"> <img src="./assets/images/galerie18-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie18.jpg';" class="first image"> <img src="./assets/images/galerie19-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie19.jpg';" class="first image"> <img src="./assets/images/galerie20-s.jpg" title="" onMouseover="wechselbild.src='./assets/images/galerie20.jpg';" class="image"> </div> </div> <span id="prev">&#9664;</span> <span id="next">&#9654;</span></div>
Eine Erklärung zur Anpassung von html-und CSS-Code findet ihr unter folgendem Link: http://demos.nof-community.de/ContentNewsSlider/html/erklarung_slidegalerie.html
Nach dem Publizieren sollte euere Galerie nun über einen Thumb-Slider verfügen.
Gutes Gelingen!
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln