XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Javascript & Ajax (http://xhtmlforum.de/forumdisplay.php?f=83)
-   -   Bildergalerie mit Textwechsel (http://xhtmlforum.de/showthread.php?t=52227)

denyo256 12.06.2008 11:38

Bildergalerie mit Textwechsel
 
Hallo zusammen,

ich habe mir ein schönes Skript für ne Bildergalerie gebastelt, funktioniert auch wunderbar, nur jetzt kommen noch Beschreibungen zu den Bildern dazu. Diese habe ich wie folgt mit in die Galerie gebaut:

Code:

<li class="picr0"><img src="images/gallery/r0.jpg" alt="" /><span>Holzdekor, Glasdekor</span></li>
Erscheinen tut der Text hier:

Code:

<div><p id="beschreibung">y</p></div>
Das Wechseln des Textes funktioniert auch wunderbar, solange ein Text drinsteht. Wenn das <span> leer ist, bleibt der letzte Text drin stehen.

Folgendes JS habe ich verwendet:

PHP-Code:

    if (thumbref.childNodes[1].nodeName == "SPAN") {
        var 
txt thumbref.childNodes[1].firstChild.nodeValue;
    } else {
        var 
txt "";
    }
    
document.getElementById("beschreibung").firstChild.data txt

Das thumbref bezieht sich auf das aktuelle li-Element.

Ich hoffe, ihr könnt mir weiterhelfen.
Denyo

inta 12.06.2008 11:49

Es wäre gut einen lauffähigen Code und/oder noch besser eine URL zu dem Problem zu haben, siehe:
Für Fragende, für Antwortende

denyo256 12.06.2008 12:25

Türsystem 24 - Galerie

http://demo.dermedienwuerfel.de/tuer...ts/rundgang.js

und falls das mit dem Öffnen des Skriptes nicht klappt, hier der Code:

PHP-Code:

// JavaScript Document
function initPage() {

    
// tablinks setzen
    
var tabs document.getElementById("tabbar").getElementsByTagName("span");
    for(var 
i=i<tabs.lengthi++) {
        
tabs[i].onclick = function() {
            
setActive(this);
        }
    }

    
// imglinks setzen
    
var imgs document.getElementById("rundgang").getElementsByTagName("li");
            for(var 
i=0i<imgs.lengthi++) {
                
imgs[i].onclick = function() {
                    
showImage(this);
                }
    }

}


function 
showImage(thumbref) {
    
    var 
imgsrc thumbref.getAttributeNode("class").value;
    
    var 
pfad "images/gallery/";
    var 
endung ".jpg";
    var 
temp pfad.concat(imgsrc);
    var 
img temp.concat(endung);
    
document.getElementById("large_img").src img;

    if (
thumbref.childNodes[1].nodeName == "SPAN") {
        var 
txt thumbref.childNodes[1].firstChild.nodeValue;
    } else {
        var 
txt "";
    }
    
document.getElementById("beschreibung").firstChild.data txt;
}

function 
setActive(tabref) {
    var 
tabs document.getElementById("tabbar").getElementsByTagName("span");
    for(var 
i=0i<tabs.lengthi++) {
        var 
curTab tabs[i];
        
// inaktive tabs
        
if(curTab != tabref) {
          
curTab.className curTab.className.replace("tab_active","");
        }
        
// ausgewaehlten tab einblenden
        
else
        {
            
curTab.className "tab tab_active";
            var 
listref curTab.getAttribute("listref");
            var 
allPages document.getElementById("rundgang").getElementsByTagName("ul");
            for(var 
el=0el<allPages.lengthel++) {
                var 
curPage allPages[el];
                var 
curPageRef curPage.getAttribute("ref");

                
// andere Liste(n) ausblenden
                
if(curPageRef != listref) {
                    
curPage.className "list_inactive";
                }
                
// angewhlte Liste einblenden
                
else
                {
                    
curPage.className curPage.className.replace("list_inactive","");
                }
            }

        }

    }



inta 12.06.2008 12:50

Ah, du prüfst nicht, ob dein firstChild existiert.
So sollte es hinhauen:
PHP-Code:

    if (thumbref.childNodes[1].firstChild && thumbref.childNodes[1].nodeName == "SPAN") {
        var 
txt thumbref.childNodes[1].firstChild.nodeValue;
    } else {
        var 
txt "";
    }
    
document.getElementById("beschreibung").firstChild.data txt


denyo256 12.06.2008 12:56

Exakt, so ging es.

Vielen Dank!


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:38 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023