mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 19.03.2024 10:25 Benutzername: Passwort: Auto-Login

Thema: bildwechsel per javascript vom 02.02.2011


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> bildwechsel per javascript
Autor Nachricht
C H W O N S
Threadersteller

Dabei seit: 03.05.2004
Ort: -
Alter: 43
Geschlecht: Weiblich
Verfasst Mi 02.02.2011 12:44
Titel

bildwechsel per javascript

Antworten mit Zitat Zum Seitenanfang

hallo, ich habe hier folgenden code

Code:
<script language="JavaScript" type="text/JavaScript">

var bilder = new Array();

bilder[0] = "Bilder/1.jpg";
bilder[1] = "Bilder/2.jpg";
bilder[2] = "Bilder/3.jpg";
bilder[3] = "Bilder/4.jpg";
bilder[4] = "Bilder/5.jpg";
bilder[5] = "Bilder/6.jpg";
bilder[6] = "Bilder/7.jpg";
bilder[7] = "Bilder/8.jpg";

var timer = 10000; <!--Millisekunden-->
var arraylaenge = bilder.length;
var index = Math.floor(Math.random() * arraylaenge);
var Bildstring = '<img src="' + bilder[index] + '">';

function Bildwechsel () {
if (index == arraylaenge-1) {
index = 0;
} else {
index++;
}
Bildstring = '<img src="' + bilder[index] + '">';
document.all.Bild.innerHTML = Bildstring;
setTimeout("Bildwechsel()", timer);
}

function Bildanzeige () {
document.all.Bild.innerHTML = Bildstring;
Bildwechsel();
}
</script>


weiß jemand, ob es möglich ist, einfach nur einen bilderordner anzulegen, auf den das script zugreift. also ohne, dass ich immer die zeile bilder[0] = "Bilder/1.jpg"; im code verändern muss. quasi, dass das script immer auf den ordner /xyz/ zugreift, egal ob da 3 oder 8 bilder drin sind und die dann auch immer benutzt werden.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Karlarsch

Dabei seit: 05.02.2007
Ort: -
Alter: 58
Geschlecht: Männlich
Verfasst Mi 02.02.2011 13:12
Titel

Antworten mit Zitat Zum Seitenanfang

Mit Javascript sind keine Datei-Operationen möglich. Das ginge nur mit jscript oder vbscript im Internet explorer und dann auch nur auf deinem Client-System, nicht auf dem Server.

Für das was du vorhast benötigst du eine serverseitige Sprache deiner Wahl.

Gruß
Karl


Zuletzt bearbeitet von Karlarsch am Mi 02.02.2011 13:13, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 02.02.2011 23:52
Titel

Antworten mit Zitat Zum Seitenanfang

Könntest höchstens per js 'schauen' welche Bilder ladbar
sind (also z.B. von 0.jpg bis z.B. 10.jpg) und nicht die nicht
auffindbaren (über den onerror-event) aus deinem array
schmeißen. Müsstes Du halt vorher erst alle abfragen, bevor
du dein Bilderwechsel-Dingens anschmeißt.

Aber hübsch ist dieser Weg nicht.

Grüße
zweitaccount
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Do 03.02.2011 06:12
Titel

Antworten mit Zitat Zum Seitenanfang

Du kannst auch Bilder per JS austauschen und wechseln lassen. Es sei denn Javascript hat sich in den letzten 2 Jahren geändert und ich hab es nicht mitbekommen
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 03.02.2011 09:15
Titel

Antworten mit Zitat Zum Seitenanfang

Jo, das hat der TO auch vor, nur will er ja ein Script haben
das sich eine undefinierte Anzahl von Bilder aus einen
Ordner rauspickt - also mit einem if file_exsits via
javascript praktisch.

@CHWONS
Das wäre vielleicht eine nützlicher Schnipsel für Dich:
Code:
function file_exists (url) {
    // Returns true if filename exists 
    //
    // version: 1101.3117
    // discuss at: http://phpjs.org/functions/file_exists
    // +   original by: Enrique Gonzalez
    // +      input by: Jani Hartikainen
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // %        note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain.
    // %        note 1: Synchronous so may lock up browser, mainly here for study purposes.
    // *     example 1: file_exists('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm');
    // *     returns 1: '123'
   
    var req = this.window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    if (!req) {throw new Error('XMLHttpRequest not supported');}
     
    // HEAD Results are usually shorter (faster) than GET
    req.open('HEAD', url, false);
    req.send(null);
    if (req.status == 200){
        return true;
    }
   
    return false;
}

http://phpjs.org/functions/file_exists


Zuletzt bearbeitet von zweitaccount am Do 03.02.2011 09:16, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 03.02.2011 10:10
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Jo, das hat der TO auch vor, nur will er ja ein Script haben
das sich eine undefinierte Anzahl von Bilder aus einen
Ordner rauspickt - also mit einem if file_exsits via
javascript praktisch


Häh? Und wie bekommst Du den Dateinamen raus? Via Brute Force beginnend mit 0.jpg oder was? Denken, dann implementieren. Mal davon abgesehen, dass das Ding da nur synchron funktioniert und Dir bei ein paar Bildern mehr erstmal den guten, alten IE aufhängt (immerhin nur den, woanders läuft das Teil nämlich nicht.)

Also entweder Du lässt den Ordner serverseitig auslesen und stellst das Ergebnis dem Javascript-Scope in irgendeiner Form zur Verfügung, oder Du musst halt Hand anlegen. Eine verkürzte Schreibweise für ein Javascript-Array ist übrigens

Code:

  var images = [
    '/bilder/bild_1.jpg',
    '/bilder/bild_2.jpg',
    ...,
     '/bilder/bild_n.jpg'
  ];


Damit sparste Dir immerhin Schreibarbeit, und mal ganz ehrlich: Ausgehen von Deiner Frage, lieber TE, würde ich bei meinen Leisten bleiben und das Ding einfach so weiter pflegen.


Zuletzt bearbeitet von bacon am Do 03.02.2011 10:12, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
zweitaccount

Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 03.02.2011 11:32
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:

Häh? Und wie bekommst Du den Dateinamen raus? Via Brute Force beginnend mit 0.jpg oder was?


Öhm ja? Wenns nur 10 Buidln sind, nummeriert von 0 bis 9 z.B.
Könnte man das doch schön dreckig so machen:

Code:
var loader = (function(){
                var _name = null;
                var _func = null;
                var _counter = 0;
                var _maxImages = 0;
                var _loaded = 0;
                var _images = [];
                var _load = function() {
                   if (_counter >= _max) {
                       _exit();
                   } else {
                       var img = new Image();
                       img.src = _folder + _counter + '.' + _suffix;
                       img.onload = function(){
                           _images[_loaded] = this;
                           _counter++;
                           _loaded++;
                           _load();
                       }
                       img.onerror = function(){
                           _counter++;
                           _load();
                       }
                   }
                };
                var _exit = function() {
                    window[_name] = _images;
                    if(typeof window[_func] == 'function') window[_func]();
                }
                return {
                        init: function(name,maxImages,folder,suffix,func) {
                            _name = name;
                            _max = maxImages;
                            _folder = folder;
                            _suffix = suffix;
                            _func = (func) ? func : false;
                            _load();
                        }
                    };
                })();

            /**
             * @param   <string> Name des Arrays in das die Bilder geladen werden sollen
             *          <number> Max Anzahl von Bildern nach denen gesucht werden soll
             *          <string> Pfad/Ordner zu den Bildern
             *          <string> Dateisuffix der Bilder
             *          <string> Callback funktion nach dem Laden
             */
            loader.init('myImages',10,'images/','jpg','myFunc');

            var myFunc = function(){
                alert('Holla, ein Array mit Img-Elementen: \n' + myImages);
            }


Saut einem die Console halt mit einer Menge 404 zu...

Mädchen!
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 03.02.2011 11:39
Titel

Antworten mit Zitat Zum Seitenanfang

Ich halte das für Quatsch. Anforderung: Alle Bilder eines Ordners dem Client verfügbar machen. Lösung: Testen, wieviele von n Bildern, identifiziert nach festem Benahmungsschema (images/{n}.jpg), nicht vorhanden sind. Bewertung: Thema verfehlt. Sorry ...

Zuletzt bearbeitet von bacon am Do 03.02.2011 11:40, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Bildwechsel mit Javascript
Bildwechsel mit JavaScript
Bildwechsel - Javascript
[JavaScript] Bildwechsel-Schleife
javascript/ bildwechsel/ funzt nicht!!
javascript-bildwechsel in anderen bereich!
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.