Antworten auf deine Fragen:
Neues Thema erstellen

Bild faden per buttonklick

silence12121

Grünschnabel

Hallo, ich weiß is spät, aber das is ja gott sei dank relativ...:rolleyes:

Ich hab n problem, und entweder steh ich voll auf dem schlauch oder ich bin mittlerweile betriebsblind.
Erstmal zu meinem Problem. Ich möchte eine Bildergalerie erstellen, wo beim Bildwechsel ein-bzw. ausgeblendet wird. Soweit die theorie.
Als Interval funktioniert das ganze auch soweit. Aber ich versuche irgendwie schon seit ner ganzen weile die stelle zu finden, wo ich das script anpassen muss, damit es per buttonclick funzt. Aber egal was ich versuche, es klappt einfach nicht. :':)'(

Vielleicht könnte einer von euch mir n tipp geben, wo ich anfangen muss.

Ich poste das Script mal als lauffähigen Interval um das als Grundlage zu nehmen. Meine unzähligen missglückten Versuche möchte ich euch gerne ersparen. Buttons / Bilder sind im script schon mitangelegt, müssten von euch ggf. als kl. Datei erstellt werden.

Wär jedenfalls super, wenn mir einer von euch n denkanreiz geben könnte, weil wie gesagt, bei mir sitzt n Elefant auf der leitung.

Das Script
Code:
<html>

<head>
    <script type="text/javascript">
function imageLine()
    {
        var checkInterval = null,
            imageLineInterval = null,
            currentImage = -1;

        images = new Array(
                'bild0.jpg',                                                                // Alle Bilder die angezeigt werden sollen
                'bild1.jpg',
                'bild2.jpg',
                'bild3.jpg',
                'bild4.jpg',
                'bild5.jpg'
                );
        
        
        loadingImages = new Array();                                       
 // Dieses Array enthält später alle Objekte
        
        this.run = function()
        {
            checkInterval = window.setInterval('this.checkIfLoaded();', 100);    
// Alle 100 Millisekunden prüfen ob alle Bilder geladen sind
            
            for(i = 0;i < images.length;i++)                                   
 // Alle Images in dem Array einzeln Durchgehen
            {
                image = images[i];
                loadingImages.push(new Image);                           
 // Array für die Objekte für Bilder vorbereiten
                loadingImages[i].src = image;                                
// neuen Objekt die Url des momentanen Bildes geben
            }
        }
        
        this.checkIfLoaded = function()
        {
           allLoaded = true;
            for(i = 0;i < loadingImages.length;i++)                        
// Alle Objekte durchgehen
            {
                loadingImage = loadingImages[i];
                if(!loadingImage.complete)                                        
// Prüfen ob das aktuelle Objekt / Bild geladen ist
                    allLoaded = false;                                                
// Falls nicht dann die Variable zur Prüfung auf false setzen
            }

           if(allLoaded)                                                                 
// Wenn alle Objekte / Bilder geladen sind
            {
                window.clearInterval(checkInterval);                        
// Die Interval für das Prüfen löschen
                this.startImageLine();                                                
// Das erste Bild anzeigen
                window.setInterval('this.startImageLine();', 3000);    
// Bilder wechseln alle 3 Sekunden ausführen
            }
        }
        
        this.startImageLine = function()
        {
            this.showImage();                                                        
// Bild anzeigen
            
            if(currentImage == (loadingImages.length - 1))           
 // vergleiche Anzahl Bilder
                currentImage = 0;                                                    
// wenn max. Anzahl erreicht, fange bei 0 an
            else
                currentImage += 1;                                                
// wenn nicht, dann zähle +1
             
            element = document.getElementById('imageline');         
 // Element für die Bilderanzeige
            element.style.height = loadingImages[currentImage].height + 'px';
            element.style.width = loadingImages[currentImage].width + 'px';           
 // Dem Element die Breite und Höhe des momentanen Bildes geben
            element.style.backgroundImage = 'url(' + loadingImages[currentImage].src + ')';       
// legt das aktuelle Bild als Hintergrund fest
            
            window.setTimeout('this.hideImage();', 2500);               
 // Bild in 2,5 Sekunden ausblenden
        }
        
        this.hideImage = function()                                                
// Bild verstecken
        {
            element = document.getElementById('imageline');        
// aktuelles Bild aus div beziehen
            for(i = 0;i <= 100;i++)
                window.setTimeout('element.style.filter = "Alpha(opacity=' + (100 - i) + ')"; element.style.MozOpacity = ' + (1 - i / 100) + '; element.style.opacity = ' + (1 - i / 100) + ';', i * 5);
            // Von 0 bis 100 (Prozent)
            // Das i * 5 dient dazu, dass das Ausblenden nicht zu schnell geht
        }
        
        this.showImage = function()                                           
 // Bild anzeigen
        {
            element = document.getElementById('imageline');       
 // aktuelles Bild aus div beziehen
            for(i = 0;i <= 100;i++)
                window.setTimeout('element.style.filter = "Alpha(opacity=' + i + ')"; element.style.MozOpacity = ' + i / 100 + '; element.style.opacity = ' +  i / 100 + ';', i * 5);
                                                                                            
        }
        
        this.run();
    }
    


    
    </script>
    <style>     img {border:none;}    </style>
</head>


<body onLoad="imageLine();">

<div id="imageline"></div>
<a href="javascript:this.startImageLine"><img src="b1.png"></a>
<a href="javascript:this.startImageLine"><img src="b2.png"></a>
    
</body>
</html>
Danke!!!!!!!
 

sokie

Mod | Web

AW: Bild faden per buttonklick

Aber ich versuche irgendwie schon seit ner ganzen weile die stelle zu finden, wo ich das script anpassen muss, damit es per buttonclick funzt. Aber egal was ich versuche, es klappt einfach nicht. :':)'(

Vielleicht könnte einer von euch mir n tipp geben, wo ich anfangen muss.
Mir ist nicht klar, was du meinst: "per buttonclick"

wenn das ganze erst losgehen soll, wenn man einen button klickt, musst du es nicht per body onload machen, sondern das auf den button legen:
Code:
<body>
<a href="javascript:imageLine()"><img src="b1.png"></a>
 

silence12121

Grünschnabel

AW: Bild faden per buttonklick

Danke erstmal, hilft mir auch n bisschen weiter. Aber vielleicht hab ich was in meiner Erläuterung vergessen.
Also:
Die Galerie soll eigentlich nicht im Intervall abspielen, sondern dieser fade-Effekt soll beim durchklicken der Galerie auf den Bildern liegen. Und da liegt das problem. Ich find den Punkt nicht.

Ich hab das jetzt so weit das der effekt beim klicken auf dem Button zusammen mit einem Bildwechsel ausgeführt wird. Aber leider wird das Bild gleichzeitig ein und ausgeblendet. und das soll so nicht sein. Ich geh davon aus dass ich nur 1 Befehl oder so nicht hab, aber weiß net was. Bin dankbar für jede art von hilfe

Danke schon mal fürs reingucken. Das Script ist ein wenig anders, dsa ich es von ner anderen Sicht versucht hab...

Code:
<html>
<head>
<script type="text/javascript">
var nr=0;                                        // legt Variable nr fest (Bildnummer)
var mein_bild = new Image();                    // Legt Variable für ein Bild an
mein_bild.src = "bild0.jpg";                    // Legt in Variable Pfad für erstes Bild (ggf. Bildnamen + Pfad aktualisieren)
mein_bild.onclick = bei_click;                    // ruft beim Anklicken Funktion bei_click auf
var max_anzahl=5;                                // maximale Anzahl der Bilder ( WICHTIG  Immer aktualisieren!!!)

function init_bildwechsel()                        // Initialisiert den Bildwechsel beim Seitenaufruf
    {
    document.getElementById("bildwechsler").appendChild(mein_bild);    
    }                                            // legt in das Objekt mit dem Namen "Bildwechsler" das 
                                                // Bild was in der Variablen mein_bild gespeichert ist

function bildwechsel(max_nr)                    // Funktion Bildwechsel aufwärts
    {
    hidden();                                    // aktuelle Bild ausblenden
    nr++;                                        // nr + 1 (Bildnummer +1)
    if (nr > max_anzahl) nr=0;                    // Wenn Bildnummer größer ist als Max. Anzahl der Bilder, setze Bildnummer zurück
    mein_bild.src = 'bild' + nr + '.jpg';        // setzt Quellenangabe aus Bildname, Bildnummer (nr), und Bildtyp zusammen
    showbild();                                    // neue Bild einblenden
    }
    
function bildwechselmin(min_nr)                    // Funktion Bildwechsel abwärts
    {
    hidden();
    nr--;                                        // nr -1 (Bildnummer - 1)
    if (nr < min_nr) nr=max_anzahl;                // Wenn Bildnummer kleiner ist als 0, setze Bildnummer auf maximale Anzahl der Bilder
    mein_bild.src = 'bild' + nr + '.jpg';        // setzt Quellenangabe aus Bildname, Bildnummer (nr), und Bildtyp zusammen
    showbild();
    }

function bei_click()                            // Wenn das Bild angeklickt wird, dann 
    {
    document.close();                            // rufe das Bild mit gr_ und dem derzeitigen angezeigten Bildnamen auf
    window.location.href = 'gr_' + this.src.match(/[^\/]+$/);
    }    
    
function hidden()
    {
        bild=document.getElementById('bildwechsler');
        for(i = 0;i <= 100;i++)
        window.setTimeout('bild.style.filter = "Alpha(opacity=' + (100 - i) + ')"; bild.style.MozOpacity = ' + (1 - i / 100) + '; bild.style.opacity = ' + (1 - i / 100) + ';', i * 5);
            // Von 0 bis 100 (Prozent)
            // Das i * 5 dient dazu, dass das Ausblenden nicht zu schnell geht
    }
        
function showbild()
    {
        for(i = 0;i <= 100;i++)
        window.setTimeout('mein_bild.style.filter = "Alpha(opacity=' + i + ')"; mein_bild.style.MozOpacity = ' + i / 100 + '; mein_bild.style.opacity = ' +  i / 100 + ';', i * 5);
            // Hier das selbe wie bei hideImage
    }
</script>
    <style>   img {border:none;}  </style>
</head>
<body onLoad="init_bildwechsel();">
<div id="bildwechsler">
</div>
<a href="javascript:bildwechselmin(0)"><img src="b1.png"></a>
<a href="javascript:bildwechsel()"><img src="b2.png"></a>
</body>
</html>
 
Zuletzt bearbeitet:

silence12121

Grünschnabel

AW: Bild faden per buttonklick

Hi, ich bins nochmal.
Hatte jetzt wieder zeit mich darum zu kümmern. Hatte prüfungsstress und so...

Ich habs jetzt mal mit dem fadeIn() und fadeOut() probiert.

Es hat auch funktioniert. Und jetzt net mehr und ich weiß net warum!!:':)(

Ich hab hier noch mal das Script... Kann mir jemand sagen ob da n fehler drin is den ich net sehe? Bitte!
Bin auch ewig dafür dankbar.. Hätt ich net mit eigenen Augen gesehen, dass es funktioniert hat, würd ich es ja auch net glauben aber es ging
Und ich hab hinter nix verändert

Code:
<html>
<head>
<script src="jquery.js" type="text/javascript">
var nr=0;                                        // legt Variable nr fest (Bildnummer)
var mein_bild = new Image();                    // Legt Variable für ein Bild an
mein_bild.src = "bild0.jpg";                    // Legt in Variable Pfad für erstes Bild (ggf. Bildnamen + Pfad aktualisieren)
mein_bild.onclick = bei_click;                    // ruft beim Anklicken Funktion bei_click auf
var max_anzahl=5;                                // maximale Anzahl der Bilder ( WICHTIG  Immer aktualisieren)
function init_bildwechsel()                        // Initialisiert den Bildwechsel beim Seitenaufruf
    {
    document.getElementById("bildwechsler").appendChild(mein_bild);    
    }                                            // legt in das Objekt mit dem Namen "bildwechsler" das 
$(document).ready(function() 
    {
        $("#weiter").click(function() 
            {
                $("#bildwechsler").fadeOut("slow", function() 
                    {
                        nr++;                                        // nr + 1 (Bildnummer +1)
                        if (nr > max_anzahl) nr=0;                    // Wenn Bildnummer größer ist als Max. Anzahl der Bilder, setze Bildnummer zurück
                        mein_bild.src = 'bild' + nr + '.jpg';    
                        
                        $("#bildwechsler").fadeIn("slow", function(){};);    
                    });
            });
        $("#zurueck").click(function() 
            {
                $("#bildwechsler").fadeOut("slow", function() 
                    {
                        nr--;                                        // nr -1 (Bildnummer - 1)
                        if (nr < min_nr) nr=max_anzahl;                // Wenn Bildnummer kleiner ist als 0, setze Bildnummer auf maximale Anzahl der Bilder
                        mein_bild.src = 'bild' + nr + '.jpg';
                        
                        $("#bildwechsler").fadeIn("slow", function(){};);    
                    });
            });
    });
function bei_click()                            // Wenn das Bild angeklickt wird, dann 
    {
    document.close();                            // rufe das Bild mit gr_ und dem derzeitigen angezeigten Bildnamen auf
    window.location.href = 'gr_' + this.src.match(/[^\/]+$/);
    }    

</script>
<style>
    img {border:none;}
    #bildwechsler {height:200px; width:200px; }
</style>
</head>
<body onLoad="init_bildwechsel();">
<div id="bildwechsler">  </div>
    <input id="zurueck" type="button" value="Zurück">
    <input id="weiter" type="button" value="weiter">
</body>
</html>

Bin danbar für jede Hilfe!!!

LG Silence
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.068
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben