Suchen
Inside Forum
Nützliche Links
phpforum.de Tipp
 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > andere (Programmier-)Sprachen > JavaScript

JavaScript Alles rund um JavaScript, Ajax und die diversen JS-Frameworks.

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.06.2010, 13:27
fortedennis fortedennis ist offline
Neuer Besucher
 
Registriert seit: 11.06.2010
Beiträge: 24
Standard Javascript Gallerie Problem

Guten Tag,

Bin momentan an unserer Seit dran und habe da eine Frage zu der Gallerie die ich habe.

Die Gallerie ist Open Source und gefält mir sehr gut, allerdings läd dieser hin und wieder einfach die Bilder gar nicht.

Habe diese schon extra auf die Größe Minimiert das es für den Endnutzer, nicht so sehr auffällt das dort was "fehlt", dennoch würde ich schon gerne wissen woran das liegen kann, das es mal funktioniert mal nicht...

Das ganze ist zu Sehen unter dieser Adresse:
http://italienurlaub-kalabrien.de/casa-genovese.html

Sollte es beim ersten mal alles problemlos laden, so aktualisiert einfach, der Bug kommt sehr häufig!

Hier nochmal der Quellcode:
Code:
/*!
 * Galleria v 1.1.2
 * [url]http://galleria.aino.se[/url]
 *
 * Copyright 2010, Aino
 * Licensed under the MIT license.
 */

(function() {

var initializing = false,
    fnTest = /xyz/.test(function(){xyz;}) ? /\b__super\b/ : /.*/,
    Class = function(){},
    window = this;

Class.extend = function(prop) {
    var __super = this.prototype;
    initializing = true;
    var proto = new this();
    initializing = false;
    for (var name in prop) {
        if (name) {
            proto[name] = typeof prop[name] == "function" &&
                typeof __super[name] == "function" && fnTest.test(prop[name]) ?
                (function(name, fn) {
                    return function() {
                        var tmp = this.__super;
                        this.__super = __super[name];
                        var ret = fn.apply(this, arguments);      
                        this.__super = tmp;
                        return ret;
                    };
                })(name, prop[name]) : prop[name];
        }
    }

    function Class() {
        if ( !initializing && this.__constructor ) {
            this.__constructor.apply(this, arguments);
        }
    }
    Class.prototype = proto;
    Class.constructor = Class;
    Class.extend = arguments.callee;
    return Class;
};

var Base = Class.extend({
    loop : function( elem, fn) {
        var scope = this;
        if (typeof elem == 'number') {
            elem = new Array(elem);
        }
        jQuery.each(elem, function() {
            fn.call(scope, arguments[1], arguments[0]);
        });
        return elem;
    },
    create : function( elem, className ) {
        elem = elem || 'div';
        var el = document.createElement(elem);
        if (className) {
            el.className = className;
        }
        return el;
    },
    getElements : function( selector ) {
        var elems = {};
        this.loop( jQuery(selector), this.proxy(function( elem ) {
            this.push(elem, elems);
        }));
        return elems;
    },
    setStyle : function( elem, css ) {
        jQuery(elem).css(css);
        return this;
    },
    cssText : function( string ) {
        var style = document.createElement('style');
        this.getElements('head')[0].appendChild(style);
        if (style.styleSheet) { // IE
            style.styleSheet.cssText = string;
        } else {
            var cssText = document.createTextNode(string);
            style.appendChild(cssText);
        }
        return this;
    },
    cssFile : function(src) {
        var link = document.createElement('link');
        link.media = 'all';
        link.rel = 'stylesheet';
        link.href = src;
        this.getElements('head')[0].appendChild(link);
    },
    moveOut : function( elem ) {
        return this.setStyle(elem, {
            position: 'absolute',
            left: '-10000px'
        });
    },
    moveIn : function( elem ) {
        return this.setStyle(elem, {
            left: '0'
        });
    },
    reveal : function( elem ) {
        return jQuery( elem ).show();
    },
    hide : function( elem ) {
        return jQuery( elem ).hide();
    },
    mix : function( obj, ext ) {
        return jQuery.extend(obj, ext);
    },
    proxy : function( fn, scope ) {
        if ( typeof fn !== 'function' ) {
            return function() {};
        }
        scope = scope || this;
        return function() {
            return fn.apply( scope, Array.prototype.slice.call(arguments) );
        };
    },
    listen : function( elem, type, fn ) {
        jQuery(elem).bind( type, fn );
    },
    forget : function( elem, type ) {
        jQuery(elem).unbind(type);
    },
    dispatch : function( elem, type ) {
        jQuery(elem).trigger(type);
    },
    clone : function( elem, keepEvents ) {
        keepEvents = keepEvents || false;
        return jQuery(elem).clone(keepEvents)[0];
    },
    removeAttr : function( elem, attributes ) {
        this.loop( attributes.split(' '), function(attr) {
            jQuery(elem).removeAttr(attr);
        });
    },
    push : function( elem, obj ) {
        if (typeof obj.length == 'undefined') {
            obj.length = 0;
        }
        Array.prototype.push.call( obj, elem );
        return elem;
    },
    width : function( elem, outer ) {
        return this.meassure(elem, outer, 'Width');
    },
    height : function( elem, outer ) {
        return this.meassure(elem, outer, 'Height');
    },
    meassure : function(el, outer, meassure) {
        var elem = jQuery( el );
        var ret = outer ? elem['outer'+meassure](true) : elem[meassure.toLowerCase()]();
        // fix quirks mode
        if (G.QUIRK) {
            var which = meassure == "Width" ? [ "left", "right" ] : [ "top", "bottom" ];
            this.loop(which, function(s) {
                ret += elem.css('border-' + s + '-width').replace(/[^\d]/g,'') * 1;
                ret += elem.css('padding-' + s).replace(/[^\d]/g,'') * 1;
            });
        }
        return ret;
    },
    toggleClass : function( elem, className, arg ) {
        if (typeof arg !== 'undefined') {
            var fn = arg ? 'addClass' : 'removeClass';
            jQuery(elem)[fn](className);
            return this;
        }
        jQuery(elem).toggleClass(className);
        return this;
    },
    hideAll : function( el ) {
        jQuery(el).find('*').hide();
    },
    animate : function( el, options ) {
        var elem = jQuery(el);
        if (!elem.length) {
            return;
        }
        if (options.from) {
            elem.css(from);
        }
        elem.animate(options.to, {
            duration: options.duration || 400,
            complete: options.complete || function(){}
        });
    },
    wait : function(fn, callback, err, max) {
        fn = this.proxy(fn);
        callback = this.proxy(callback);
        err = this.proxy(err);
        var ts = new Date().getTime() + (max || 3000);
        window.setTimeout(function() {
            if (fn()) {
                callback();
                return false;
            }
            if (new Date().getTime() >= ts) {
                err();
                callback();
                return false;
            }
            window.setTimeout(arguments.callee, 1);
        }, 1);
        return this;
    },
    getScript: function(url, callback) {
       var head = document.getElementsByTagName("head")[0];
       var script = document.createElement("script");
       script.src = url;
       callback = this.proxy(callback);

       // Handle Script loading
       {
          var done = false;

          // Attach handlers for all browsers
          script.onload = script.onreadystatechange = function(){
             if ( !done && (!this.readyState ||
                   this.readyState == "loaded" || this.readyState == "complete") ) {
                done = true;
                callback();

                // Handle memory leak in IE
                script.onload = script.onreadystatechange = null;
             }
          };
       }
       head.appendChild(script);
       return this;
    }
});

var Picture = Base.extend({
    __constructor : function(order) {
        this.image = null;
        this.elem = this.create('div', 'galleria-image');
        this.setStyle( this.elem, {
            overflow: 'hidden',
            position: 'relative' // for IE Standards mode
        } );
        this.order = order;
        this.orig = { w:0, h:0, r:1 };
    },
   
    cache: {},
   
    add: function(src) {
        if (this.cache[src]) {
            return this.cache[src];
        }
        var image = new Image();
        image.src = src;
        this.setStyle(image, {display: 'block'});
        if (image.complete && image.width) {
            this.cache[src] = image;
            return image;
        }
        image.onload = (function(scope) {
            return function() {
                scope.cache[src] = image;
            };
        })(this);
        return image;
    },
   
    isCached: function(src) {
        return this.cache[src] ? this.cache[src].complete : false;
    },
   
    make: function(src) {
        var i = this.cache[src] || this.add(src);
        return this.clone(i);
    },
   
    load: function(src, callback) {
        callback = this.proxy( callback );
        this.elem.innerHTML = '';
        this.image = this.make( src );
        this.moveOut( this.image );
        this.elem.appendChild( this.image );
        this.wait(function() {
            return (this.image.complete && this.image.width);
        }, function() {
            this.orig = {
                h: this.image.height,
                w: this.image.width
            };
            callback( {target: this.image, scope: this} );
        }, function() {
            G.raise('image not loaded in 10 seconds: '+ src)
        }, 10000);
        return this;
    },
   
    scale: function(w, h, crop, max, margin, complete) {
        margin = margin || 0;
        complete = complete || function() {};
        if (!this.image) {
            return this;
        }
        this.wait(function() {
            width  = w || this.width(this.elem);
            height = h || this.height(this.elem);
            return width && height;
        }, function() {
            var ratio = Math[ (crop ? 'max' : 'min') ](width / this.orig.w, height / this.orig.h);
            if (max) {
                ratio = Math.min(max, ratio);
            }
            this.setStyle(this.elem, {
                width: width,
                height: height
            });
            this.image.width = Math.ceil(this.orig.w * ratio) - margin*2;
            this.image.height = Math.ceil(this.orig.h * ratio) - margin*2;
            this.setStyle(this.image, {
                position : 'relative',
                top :  Math.round(this.image.height * -1 / 2 + (height / 2)) - margin,
                left : Math.round(this.image.width * -1 / 2 + (width / 2)) - margin
            });
            complete.call(this);
        });
        return this;
    }
});

var tID; // the private timeout handler

var G = window.Galleria = Base.extend({
   
    __constructor : function(options) {
        if (typeof options.target === 'undefined' ) {
            G.raise('No target.');
        }
        this.playing = false;
        this.playtime = 3000;
        this.active = null;
        this.queue = {};
        this.data = {};
        this.dom = {};
        this.controls = {
            active : 0,
            swap : function() {
                this.active = this.active ? 0 : 1;
            },
            getActive : function() {
                return this[this.active];
            },
            getNext : function() {
                return this[Math.abs(this.active - 1)];
            }
        };
        this.thumbnails = {};
        this.options = this.mix({
            preload: 2,
            image_crop: false,
            thumb_crop: true,
            thumb_quality: 'auto',
            image_margin: 0,
            thumb_margin: 0,
            transition: G.transitions.fade,
            transition_speed: 400,
            carousel: true,
            carousel_speed: 200,
            carousel_steps: 'auto',
            carousel_follow: true,
            popup_links: false,
            max_scale_ratio: undefined,
            thumbnails: true,
            data_type: 'auto',
            data_image_selector: 'img',
            data_source: options.target,
            data_config : function( elem ) { return {}; },
            queue: true,
            remove_original: true
        }, options);
       
        this.target = this.dom.target = this.getElements(this.options.target)[0];
        if (!this.target) {
             G.raise('Target not found.');
        }
       
        this.stageWidth = 0;
        this.stageHeight = 0;
       
        var elems = 'container stage images image-nav image-nav-left image-nav-right ' +
                    'info info-link info-text info-title info-description info-author info-close ' +
                    'thumbnails thumbnails-list thumbnails-container thumb-nav-left thumb-nav-right ' +
                    'loader counter';
        elems = elems.split(' ');
       
        this.loop(elems, function(blueprint) {
            this.dom[ blueprint ] = this.create('div', 'galleria-' + blueprint);
        });
    },
   
    bind : function(type, fn) {
        this.listen( this.get('container'), type, this.proxy(fn) );
        return this;
    },
   
    trigger : function( type ) {
        type = typeof type == 'object' ?
            this.mix( type, { scope: this } ) :
            { type: type, scope: this };
        this.dispatch( this.get('container'), type );
        return this;
    },
    run : function() {
       
        var o = this.options;
        if (!this.data.length) {
            G.raise('Data is empty.');
        }
        this.target.innerHTML = '';
        this.loop(2, function() {
            var image = new Picture();
            this.setStyle( image.elem, {
                position: 'absolute',
                top: 0,
                left: 0
            });
            this.setStyle(this.get( 'images' ), {
                position: 'relative',
                top: 0,
                left: 0,
                width: '100%',
                height: '100%'
            });
            this.get( 'images' ).appendChild( image.elem );
            this.push(image, this.controls);
        }, this);
       
        for( var i=0; this.data[i]; i++ ) {
            var thumb;
            if (o.thumbnails) {
                thumb = new Picture(i);
                var src = this.data[i].thumb || this.data[i].image;
                this.get( 'thumbnails' ).appendChild( thumb.elem );
                thumb.load(src, this.proxy(function(e) {
                    var orig = this.width(e.target);
                    e.scope.scale(null, null, o.thumb_crop, o.max_scale_ratio, o.thumb_margin, this.proxy(function() {
                        // set high quality if downscale is moderate
                        this.toggleQuality(e.target, o.thumb_quality === true || ( o.thumb_quality == 'auto' && orig < e.target.width * 3 ));
                        this.trigger({
                            type: G.THUMBNAIL,
                            thumbTarget: e.target,
                            thumbOrder: e.scope.order
                        });
                    }));
                }));
                if (o.preload == 'all') {
                    thumb.add(this.data[i].image);
                }
            } else {
                thumb = {
                    elem:  this.create('div','galleria-image'),
                    image: this.create('span','img')
                };
                thumb.elem.appendChild(thumb.image);
                this.get( 'thumbnails' ).appendChild( thumb.elem );
            }
            thumb.elem.rel = i;
            this.listen(thumb.elem, 'click', this.proxy(function(e) {
                var ind = e.currentTarget.rel;
                if (this.active !== ind) {
                    this.show( ind );
                }
            }));
            this.push(thumb, this.thumbnails );
        }
        this.build();
        this.target.appendChild(this.get('container'));
        this.wait(function() {
            this.stageWidth = this.width(this.get( 'stage' ));
            this.stageHeight = this.height( this.get( 'stage' ));
            return this.stageHeight && this.stageWidth;
        }, function() {
            var thumbWidth = this.thumbnails[0] ? this.width(this.thumbnails[0].elem, true) : 0;
           
            var thumbsWidth = thumbWidth * this.thumbnails.length;
            if (thumbsWidth < this.stageWidth) {
                o.carousel = false;
            }

            if (o.carousel) {
                this.toggleClass(this.get('thumbnails-container'), 'galleria-carousel');
                this.carousel = {
                    right: this.get('thumb-nav-right'),
                    left: this.get('thumb-nav-left'),
                    overflow: 0,
                    setOverflow: this.proxy(function(newWidth) {
                        newWidth = newWidth || this.width(this.get('thumbnails-list'));
                        this.carousel.overflow = Math.ceil( ( (thumbsWidth - newWidth) / thumbWidth ) + 1 ) * -1;
                    }),
                    pos: 0,
                    setClasses: this.proxy(function() {
                        this.toggleClass( this.carousel.left, 'disabled', this.carousel.pos === 0);
                        this.toggleClass( this.carousel.right, 'disabled', this.carousel.pos == this.carousel.overflow + 1);
                    }),
                    animate: this.proxy(function() {
                        this.carousel.setClasses();
                        this.animate( this.get('thumbnails'), {
                            to: { left: thumbWidth * this.carousel.pos },
                            duration: o.carousel_speed
                        });
                    })
                };
                this.carousel.setOverflow();
           
                this.setStyle(this.get('thumbnails-list'), {
                    overflow:'hidden',
                    position: 'relative' // for IE Standards mode
                });
                this.setStyle(this.get('thumbnails'), {
                    width: thumbsWidth,
                    position: 'relative'
                });
               
                this.proxy(function(c, steps) {
                    steps = (typeof steps == 'string' && steps.toLowerCase() == 'auto') ? this.thumbnails.length + c.overflow : steps;
                    c.setClasses();
                    this.loop(['left','right'], this.proxy(function(dir) {
                        this.listen(c[dir], 'click', function(e) {
                            if (c.pos === ( dir == 'right' ? c.overflow : 0 ) ) {
                                return;
                            }
                            c.pos = dir == 'right' ? Math.max(c.overflow + 1, c.pos - steps) : Math.min(0, c.pos + steps);
                            c.animate();
                        });
                    }));
                })(this.carousel, o.carousel_steps);
            }
            this.listen(this.get('image-nav-right'), 'click', this.proxy(function() {
                this.next();
            }));
            this.listen(this.get('image-nav-left'), 'click', this.proxy(function() {
                this.prev();
            }));
            this.trigger( G.READY );
        }, function() {
            G.raise('Galleria could not load. Make sure stage has a height and width.');
        }, 5000);
    },
    addElement : function() {
        this.loop(arguments, function(b) {
            this.dom[b] = this.create('div', 'galleria-' + b );
        });
        return this;
    },
    getDimensions: function(i) {
        return {
            w: i.width,
            h: i.height,
            cw: this.stageWidth,
            ch: this.stageHeight,
            top: (this.stageHeight - i.height) / 2,
            left: (this.stageWidth - i.width) / 2
        };
    },
    attachKeyboard : function(map) {
        jQuery(document).bind('keydown', {map: map, scope: this}, this.keyNav);
        return this;
    },
    detachKeyboard : function() {
        jQuery(document).unbind('keydown', this.keyNav);
        return this;
    },
    keyNav : function(e) {
        var key = e.keyCode || e.which;
        var map = e.data.map;
        var scope = e.data.scope;
        var keymap = {
            UP: 38,
            DOWN: 40,
            LEFT: 37,
            RIGHT: 39,
            RETURN: 13,
            ESCAPE: 27,
            BACKSPACE: 8
        };
        for( var i in map ) {
            var k = i.toUpperCase();
            if ( keymap[k] ) {
                map[keymap[k]] = map[i];
            }
        }
        if (typeof map[key] == 'function') {
            map[key].call(scope, e);
        }
    },
    build : function() {
        this.append({
            'info-text' :
                ['info-title', 'info-description', 'info-author'],
            'info' :
                ['info-link', 'info-text', 'info-close'],
            'image-nav' :
                ['image-nav-right', 'image-nav-left'],
            'stage' :
                ['images', 'loader', 'counter', 'image-nav'],
            'thumbnails-list' :
                ['thumbnails'],
            'thumbnails-container' :
                ['thumb-nav-left', 'thumbnails-list', 'thumb-nav-right'],
            'container' :
                ['stage', 'thumbnails-container', 'info']
        });
    },
   
    appendChild : function(parent, child) {
        try {
            this.get(parent).appendChild(this.get(child));
        } catch(e) {}
    },
   
    append : function(data) {
        for( var i in data) {
            if (data[i].constructor == Array) {
                for(var j=0; data[i][j]; j++) {
                    this.appendChild(i, data[i][j]);
                }
            } else {
                this.appendChild(i, data[i]);
            }
        }
        return this;
    },
   
    rescale : function(width, height) {
       
        var check = this.proxy(function() {
            this.stageWidth = width || this.width(this.get('stage'));
            this.stageHeight = height || this.height(this.get('stage'));
            return this.stageWidth && this.stageHeight;
        });
        if ( G.WEBKIT ) {
            this.wait(check);// wekit is too fast
        } else {
            check.call(this);
        }
        this.controls.getActive().scale(this.stageWidth, this.stageHeight, this.options.image_crop, this.options.max_scale_ratio, this.options.image_margin);
        if (this.carousel) {
            this.carousel.setOverflow();
        }
       
    },
   
    show : function(index, rewind) {
        if (!this.options.queue && this.queue.stalled) {
            return;
        }
        rewind = typeof rewind != 'undefined' ? !!rewind : index < this.active;
        this.active = index;
        this.push([index,rewind], this.queue);
        if (!this.queue.stalled) {
            this.showImage();
        }
        return this;
    },
   
    showImage : function() {
        var o = this.options;
        var args = this.queue[0];
        var index = args[0];
        var rewind = !!args[1];
        if (o.carousel && this.carousel && o.carousel_follow) {
            this.proxy(function(c) {
                if (index <= Math.abs(c.pos)) {
                    c.pos = Math.max(0, (index-1))*-1;
                    c.animate();
                } else if ( index >= this.thumbnails.length + c.overflow + Math.abs(c.pos)) {
                    c.pos = this.thumbnails.length + c.overflow - index - 1 + (index == this.thumbnails.length-1 ? 1 : 0);
                    c.animate();
                }
            })(this.carousel);
        }
       
        var src = this.getData(index).image;
        var active = this.controls.getActive();
        var next = this.controls.getNext();
        var cached = next.isCached(src);
        if (active.image) {
            this.toggleQuality(active.image, false);
        }
        var complete = this.proxy(function() {
            this.queue.stalled = false;
            this.toggleQuality(next.image, o.image_quality);
            this.setStyle( active.elem, { zIndex : 0 } );
            this.setStyle( next.elem, { zIndex : 1 } );
            this.moveOut( active.image );
            this.controls.swap();
            if (this.getData( index ).link) {
                this.setStyle( next.image, { cursor: 'pointer' } );
                this.listen( next.image, 'click', this.proxy(function() {
                    if (o.popup_links) {
                        var win = window.open(this.getData( index ).link, '_blank');
                    } else {
                        window.location.href = this.getData( index ).link;
                    }
                }));
            }
            Array.prototype.shift.call( this.queue );
            if (this.queue.length) {
                this.showImage();
            }
            this.playCheck();
        });
        if (typeof o.preload == 'number' && o.preload > 0) {
            var p,n = this.getNext();
            try {
                for (var i = o.preload; i>0; i--) {
                    p = new Picture();
                    p.add(this.getData(n).image);
                    n = this.getNext(n);
                }
            } catch(e) {}
        }
        this.trigger( {
            type: G.LOADSTART,
            cached: cached,
            imageTarget: next.image,
            thumbTarget: this.thumbnails[index].image
        } );
        next.load( src, this.proxy(function(e) {
            next.scale(this.stageWidth, this.stageHeight, o.image_crop, o.max_scale_ratio, o.image_margin, this.proxy(function(e) {
                this.toggleQuality(next.image, false);
                this.trigger({
                    type: G.LOADFINISH,
                    cached: cached,
                    imageTarget: next.image,
                    thumbTarget: this.thumbnails[index].image
                });
                this.queue.stalled = true;
                var transition = G.transitions[o.transition] || o.transition;
                if (typeof transition == 'function') {
                    transition.call(this, {
                        prev: active.image,
                        next: next.image,
                        rewind: rewind,
                        speed: o.transition_speed || 400
                    }, complete );
                } else {
                    complete();
                }
            }));
            this.setInfo(index);
            this.get('counter').innerHTML = '<span class="current">' + (index+1) +
                '</span> / <span class="total">' + this.thumbnails.length + '</span>';
        }));
    },
   
    getNext : function(base) {
        base = base || this.active;
        return base == this.data.length - 1 ? 0 : base + 1;
    },
   
    getPrev : function(base) {
        base = base || this.active;
        return base === 0 ? this.data.length - 1 : base - 1;
    },
   
    next : function() {
        this.show(this.getNext(), false);
        return this;
    },
   
    prev : function() {
        this.show(this.getPrev(), true);
        return this;
    },
   
    get : function( elem ) {
        return this.dom[ elem ] || false;
    },
   
    getData : function( index ) {
        return this.data[index] || this.data[this.active];
    },
   
    play : function(delay) {
        this.playing = true;
        this.playtime = delay || this.playtime;
        this.playCheck();
        return this;
    },
   
    pause : function() {
        this.playing = false;
        return this;
    },
   
    playCheck : function() {
        if (this.playing) {
            window.clearInterval(tID);
            tID = window.setTimeout(this.proxy(function() {
                if (this.playing) {
                    this.next();
                }
            }), this.playtime);
        }
    },
   
    setActive: function(val) {
        this.active = val;
        return this;
    },
   
    setInfo : function(index) {
        var data = this.getData(index);
        var set = this.proxy(function() {
            this.loop(arguments, function(type) {
                var elem = this.get('info-'+type);
                var fn = data[type] && data[type].length ? 'reveal' : 'hide';
                this[fn](elem);
                elem.innerHTML = data[type];
            });
        });
        set('title','description','author');
        return this;
    },
   
    hasInfo : function(index) {
        var d = this.getData(index);
        var l = d.title + d.description + d.author;
        return !!l.length;
    },
   
    getDataObject : function(o) {
        var obj = {
            image: '',
            thumb: '',
            title: '',
            description: '',
            author: '',
            link: ''
        };
        return o ? this.mix(obj,o) : obj;
    },
   
    jQuery : function( str ) {
        var ret = [];
        this.loop(str.split(','), this.proxy(function(elem) {
            elem = elem.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
            if (this.get(elem)) {
                ret.push(elem);
            }
        }));
        var jQ = jQuery(this.get(ret.shift()));
        this.loop(ret, this.proxy(function(elem) {
            jQ = jQ.add(this.get(elem));
        }));
        return jQ;
    },
   
    $ : function( str ) {
        return this.jQuery( str );
    },
   
    toggleQuality : function(img, force) {
        if (!G.IE7 || typeof img == 'undefined' || !img) {
            return this;
        }
        if (typeof force === 'undefined') {
            force = img.style.msInterpolationMode == 'nearest-neighbor';
        }
        img.style.msInterpolationMode = force ? 'bicubic' : 'nearest-neighbor';

        return this;
    },
   
    load : function() {
        var loaded = 0;
        var o = this.options;
        if (
            (o.data_type == 'auto' &&
                typeof o.data_source == 'object' &&
                !(o.data_source instanceof jQuery) &&
                !o.data_source.tagName
            ) || o.data_type == 'json' || o.data_source.constructor == 'Array' ) {
            this.data = o.data_source;
            this.trigger( G.DATA );
           
        } else { // assume selector
            var images = jQuery(o.data_source).find(o.data_image_selector);
            var getData = this.proxy(function( elem ) {
                var i,j,anchor = elem.parentNode;
                if (anchor && anchor.nodeName == 'A') {
                    if (anchor.href.match(/\.(png|gif|jpg)/)) {
                        i = anchor.href;
                    } else {
                        j = anchor.href;
                    }
                }
                var obj = this.getDataObject({
                    title: elem.title,
                    thumb: elem.src,
                    image: i || elem.src,
                    description: elem.alt,
                    link: j || elem.getAttribute('longdesc')
                });
                return this.mix(obj, o.data_config( elem ) );
            });
           
            this.loop(images, function( elem ) {
                loaded++;
                this.push( getData( elem ), this.data );
                if (o.remove_original) {
                    elem.parentNode.removeChild(elem);
                }
                if ( loaded == images.length ) {
                    this.trigger( G.DATA );
                }
            });
        }
    }
});

G.log = function() {
    try {
        console.log.apply( console, Array.prototype.slice.call(arguments) );
    } catch(e) {
        try {
            opera.postError.apply( opera, arguments );
        } catch(er) {
              alert( Array.prototype.join.call( arguments, " " ) );
        }
    }
};

G.DATA = 'data';
G.READY = 'ready';
G.THUMBNAIL = 'thumbnail';
G.LOADSTART = 'loadstart';
G.LOADFINISH = 'loadfinish';

var nav = navigator.userAgent.toLowerCase();

G.IE7 = (window.XMLHttpRequest && document.expando);
G.IE6 = (!window.XMLHttpRequest);
G.IE = !!(G.IE6 || G.IE7);
G.WEBKIT = /webkit/.test( nav );
G.SAFARI = /safari/.test( nav );
G.CHROME = /chrome/.test( nav );
G.QUIRK = (G.IE && document.compatMode && document.compatMode == "BackCompat");
G.MAC = /mac/.test(navigator.platform.toLowerCase());

var tempPath = ''; // we need to save this in a global private variable later
var tempName = ''; // the last loaded theme
var tempLoading = false; // we need to manually check if script has loaded
var tempFile = ''; // the theme file

G.themes = {
    create: function(obj) {
        var orig = ['name','author','version','defaults','init'];
        var proto = G.prototype;
        proto.loop(orig, function(val) {
            if (!obj[ val ]) {
                G.raise(val+' not specified in theme.');
            }
            if ( typeof G.themes[obj.name] == 'undefined') {
                G.themes[obj.name] = {};
            }
            if (val != 'name' && val != 'init') {
                G.themes[obj.name][val] = obj[val];
            }
        });
        if (obj.css) {
            if (!tempPath.length) { // try to find the script in the head tag to determine tempPath
                var theme_src = proto.getElements('script');
                proto.loop(theme_src, function(el) {
                    var reg = new RegExp('galleria.'+obj.name+'.js');
                    if(reg.test(el.src)) {
                        tempPath = el.src.replace(/[^\/]*$/, "");
                    }
                });
            }
            obj.cssPath = tempPath + obj.css;
            tempPath = '';
        }
        tempName = obj.name;
        G.themes[obj.name].init = function(o) {
            if (obj.cssPath) {
                var link = proto.getElements('#galleria-styles');
                if (link.length) {
                    link = link[0];
                } else {
                    link = proto.create('link');
                    link.id = 'galleria-styles';
                    link.rel = 'stylesheet';
                    link.media = 'screen';
                    proto.getElements('head')[0].appendChild(link);
                }
                link.href = obj.cssPath;
            }
            if (obj.cssText) {
                proto.cssText(obj.cssText);
            }
            o = proto.mix( G.themes[obj.name].defaults, o );
            var gallery = new G( o );
            gallery.bind(G.DATA, function() {
                gallery.run();
            });
            gallery.bind(G.READY, function() {
                obj.init.call(gallery, o);
                if (typeof o.extend == 'function') {
                    o.extend.call(gallery, o);
                }
            });
            gallery.load();
            return gallery;
        };
    }
};

G.raise = function(msg) {
    if ( G.debug ) {
        throw Error( msg );
    }
},

G.loadTheme = function(src, callback) {
    tempLoading = true;
    tempPath = src.replace(/[^\/]*$/, "");
    tempFile = src;
    G.prototype.getScript(src, function() {
        tempLoading = false;
        if (typeof callback == 'function') {
            callback();
        }
    });
};

jQuery.easing.galleria = function (x, t, b, c, d) {
    if ((t/=d/2) < 1) {
        return c/2*t*t*t*t + b;
    }
    return -c/2 * ((t-=2)*t*t*t - 2) + b;
};

G.transitions = {
    add: function(name, fn) {
        if (name != arguments.callee.name ) {
            this[name] = fn;
        }
    },
    fade: function(params, complete) {
        jQuery(params.next).show().css('opacity',0).animate({
            opacity: 1
        }, params.speed, complete);
        if (params.prev) {
            jQuery(params.prev).css('opacity',1).animate({
                opacity: 0
            }, params.speed);
        }
    },
    flash: function(params, complete) {
        jQuery(params.next).css('opacity',0);
        if (params.prev) {
            jQuery(params.prev).animate({
                opacity: 0
            }, (params.speed/2), function() {
                jQuery(params.next).animate({
                    opacity: 1
                }, params.speed, complete);
            });
        } else {
            jQuery(params.next).animate({
                opacity: 1
            }, params.speed, complete);
        }
    },
    slide: function(params, complete) {
        var image = jQuery(params.next).parent();
        var images =  this.$('images');
        var width = this.stageWidth;
        image.css({
            left: width * ( params.rewind ? -1 : 1 )
        });
        images.animate({
            left: width * ( params.rewind ? 1 : -1 )
        }, {
            duration: params.speed,
            queue: false,
            easing: 'galleria',
            complete: function() {
                images.css('left',0);
                image.css('left',0);
                complete();
            }
        });
    },
    fadeslide: function(params, complete) {
        if (params.prev) {
            jQuery(params.prev).css({
                opacity: 1,
                left: 0
            }).animate({
                opacity: 0,
                left: 50 * ( params.rewind ? 1 : -1 )
            },{
                duration: params.speed,
                queue: false,
                easing: 'swing'
            });
        }
        jQuery(params.next).css({
            left: 50 * ( params.rewind ? -1 : 1 ),
            opacity: 0
        }).animate({
            opacity: 1,
            left:0
        }, {
            duration: params.speed,
            complete: complete,
            queue: false,
            easing: 'swing'
        });
    }
};

/* The flickr method is deprecated. Use Flickr plugin instead. */



G.flickr = {
    key: null,
    options: {
        max: 30,
        use_original: false,
        data_config: function() {}
    },
    setOptions: function(o) {
        this.options = Galleria.prototype.mix(this.options, o);
        return this;
    },
    search: function(key, params, callback) {
        this.key = key;
        var obj = {};
        var proto = Galleria.prototype;
       
        params = proto.mix({
            method: 'flickr.photos.search',
            extras: 'o_dims, url_t, url_m, url_o',
            sort: 'interestingness-desc'
        }, params);
       
        this.load(key, params, function(data) {
            var photos = data.photos.photo;
            var len = Math.min(this.options.max, photos.length);
            for (var i=0; i<len; i++) {
                var item = proto.getDataObject({
                    thumb: photos[i].url_t,
                    image: (photos[i].url_o && this.options.use_original) ? photos[i].url_o : photos[i].url_m,
                    title: photos[i].title
                });
                proto.push( proto.mix( item, this.options.data_config( photos[i] ) ), obj );
            }
            callback(obj);
        });
        return this;
    },
    load: function(key, params, callback) {
        var url = 'http://api.flickr.com/services/rest/?';
        var scope = this;
        params = $.extend({
            format : 'json',
            jsoncallback : '?',
            api_key : key || this.key
        }, params);
        jQuery.each(params, function(key, value) {
            url += '&'+ key + '=' +value;
        });
        jQuery.getJSON(url, function(data) {
            if (data.stat == 'ok') {
                callback.call(scope, data);
            } else {
                G.raise('Flickr data failed. Check API Key.');
            }
        });
        return this;
    }
};

jQuery.fn.galleria = function() {
    var selector = this.selector;
    var a = arguments;
    G.prototype.wait(function() {
        return !tempLoading;
    }, function() {
        var hasTheme = typeof a[0] == 'string';
        var theme = hasTheme ? a[0] : tempName;
        var options = hasTheme ? a[1] || {} : a[0] || {};
        options = G.prototype.mix(options, { target: selector } );
        G.debug = !!options.debug;
        if (typeof G.themes[theme] == 'undefined') {
            var err = theme ? 'Theme '+theme+' not found.' : 'No theme specified';
            G.raise(err);
            return null;
        } else {
            return G.themes[theme].init(options);
        }
    }, function() {
        G.raise('Theme file '+tempFile+' not found.');
    });
};

})();


Ich wäre Euch sehr verbunden, sofern Ihr eine Lösung für dieses ätzende Problem habt...

Liebe Grüße
Dennis

Geändert von fortedennis (11.06.2010 um 13:32 Uhr)
Mit Zitat antworten
  #2  
Alt 11.06.2010, 13:30
traxer traxer ist offline
Vorbildlicher Helfer
 
Registriert seit: 21.03.2006
Beiträge: 4.190
Standard AW: Javascript Gallerie Problem

Standardantwort/FAQ:
Im Normalfall übernimmt die Forensoftware die Gestaltung Deines Text-Layouts. Für das Einbringen von Quellcode ist es aber wichtig, dass dieser genauso dargestellt wird, wie z.B. in Deinem normalen Editor auf dem PC.

Um dies zu ermöglichen bietet die Forensoftware einige vbCode/bbCode-Tags an:

[code][/code]für Quellcode allgemein
[php][/php]für PHP-Quellcode
[html][/html]für HTML-Quellcode
[sql][/sql]für SQL-Quellcode
.

Bei Verwendung der obigen Tags wird der Code in einer Festbreitenschrift inklusive aller Einrückungen dargestellt. Bei Verwendung der letzten drei Tags wird zudem der Inhalt farblich aufgearbeitet.

Weitere Informationen über die Formatierungsmöglichkeiten dieses Forums findest Du außerdem in der Hilfe zum Thema BB-Code hier im Forum.

Bitte nutze diese Möglichkeiten in Deinen Beiträgen, insbesondere wenn Du Quellcode einfügst. Uns Helfern erleichtert es das Lesen Deiner Frage und für Dich erhöht sich die Chance, schnell eine kompetente Antwort zu erhalten.
__________________
~/.signatrue: file not found
I am a signature virus. Please copy me to your signature to help me spread.
Mit Zitat antworten
  #3  
Alt 11.06.2010, 13:38
Stacksyard Stacksyard ist offline
Besucher
 
Registriert seit: 10.06.2010
Beiträge: 46
Standard AW: Javascript Gallerie Problem

Äh ja.. also ich denke bevor man jetzt den Fuzzel-Code analysiert hat man schneller selbst geschrieben was die an Funkionalität bietet

Soviel tut sich ja da nicht
__________________
Dir hat mein Beitrag geholfen / gefallen?
Dann sei so nett und schenke mir Whuffie: http://thewhuffiebank.org/stacksyard
Entweder selbst dort registrieren, oder als Twitter User: Click
Ihr dürft auch gerne mehr als nur #1 Whuffie verschenken
Mit Zitat antworten
  #4  
Alt 11.06.2010, 13:39
fortedennis fortedennis ist offline
Neuer Besucher
 
Registriert seit: 11.06.2010
Beiträge: 24
Standard AW: Javascript Gallerie Problem

Das mag sein, ich sollte vlt. noch mit anfügen, das ich keine Aktien in Javascript habe und mich leider in dem Fach gar nicht auskenne
Mit Zitat antworten
  #5  
Alt 11.06.2010, 13:49
Stacksyard Stacksyard ist offline
Besucher
 
Registriert seit: 10.06.2010
Beiträge: 46
Standard AW: Javascript Gallerie Problem

Versuch ma
Code:
<script>Galleria.loadTheme('galleria/themes/calabria/galleria.calabria.js');</script>


weiter unten im body aufzurufen.. .machen die im beispiel genauso

vielleicht bringts ja was

Ist nur n Schuss in's Blaue.. weil das nach nem Timing Problem aussieht

Die rufen das auf jedenfall erst auf nachdem die Bilder im Body kamen
__________________
Dir hat mein Beitrag geholfen / gefallen?
Dann sei so nett und schenke mir Whuffie: http://thewhuffiebank.org/stacksyard
Entweder selbst dort registrieren, oder als Twitter User: Click
Ihr dürft auch gerne mehr als nur #1 Whuffie verschenken
Mit Zitat antworten
  #6  
Alt 11.06.2010, 13:57
fortedennis fortedennis ist offline
Neuer Besucher
 
Registriert seit: 11.06.2010
Beiträge: 24
Standard AW: Javascript Gallerie Problem

Habe das mal ausprobiert, allerdings ohne Erfolg, im Gegenteil, er lud es gar nicht mehr
Mit Zitat antworten
  #7  
Alt 11.06.2010, 14:13
Stacksyard Stacksyard ist offline
Besucher
 
Registriert seit: 10.06.2010
Beiträge: 46
Standard AW: Javascript Gallerie Problem

Code:
<script>Galleria.loadTheme('galleria/themes/calabria/galleria.calabria.js');</script>

und
Code:
<script>$('.images').galleria();
</script>

oben entfernt und unten vor den body geklemmt:
Code:
<script>Galleria.loadTheme('http://italienurlaub-kalabrien.de/galleria/themes/calabria/galleria.calabria.js');$('.images').galleria();</script>
</body></html>


sollte problemlos funken
__________________
Dir hat mein Beitrag geholfen / gefallen?
Dann sei so nett und schenke mir Whuffie: http://thewhuffiebank.org/stacksyard
Entweder selbst dort registrieren, oder als Twitter User: Click
Ihr dürft auch gerne mehr als nur #1 Whuffie verschenken
Mit Zitat antworten
  #8  
Alt 11.06.2010, 14:20
fortedennis fortedennis ist offline
Neuer Besucher
 
Registriert seit: 11.06.2010
Beiträge: 24
Standard AW: Javascript Gallerie Problem

Stacksyard ich danke Dir vielmals!

Also bisher habe ich einige male aktualisiert und das Problem ist bisher nicht einmal mehr aufgetreten!

Danke Dir echt!

Hoffe das es nun so bleibt :-)

@Stacksyard vlt. kannst du mir auch bei einem anderen Problem helfen?

Und zwar, das Menu, du siehst der Hover effekt ist rot, als ich das anfangs alles in HTML schrieb, hatte ich auch noch ein active:link mit drin, allerdings habe ich es in PHP nicht mehr hinbekommen das sozusagen die aktive Seite dann rot bleibt im menu, hast du da evtl. eine Ahnung?

Lg
Mit Zitat antworten
  #9  
Alt 11.06.2010, 14:57
Stacksyard Stacksyard ist offline
Besucher
 
Registriert seit: 10.06.2010
Beiträge: 46
Standard AW: Javascript Gallerie Problem

Kenne dein System nicht..

Aber sowas sollte gehen, oder dir zumindest den Weg zeigen:
PHP Quellcode:
<?php
/*
Geht nur wenn index.html und casa-vinola.html ... etc.. alles in einer PHP-Datei ist
z.B. index.php und die nur einfach andere inhalte reinholt
Dann einfach folgende Funktion einfügen
*/


function returnMenuCSS($a){
// erster wert für class name aktiv, zweiter für nicht aktiv
$css = Array("nameAktiv","nameNichtAktiv");
  // dateiname in url
  $dateiname = $_SERVER['PHP_SELF'];
 
  if($dateiname == $a){
    return $css[0];
  }
  else {
    return $css[1];
  }
}
?> 
 
Kann dann so genutzt werden
 
<a href="bla/blubb/index.html" class="<?php returnMenuCSS('index.html'); ?>">linktitel</a>
<a href="bla/asdf/casa-vinola.html" class="<?php returnMenuCSS('casa-vinola.html'); ?>">linktitel</a>
__________________
Dir hat mein Beitrag geholfen / gefallen?
Dann sei so nett und schenke mir Whuffie: http://thewhuffiebank.org/stacksyard
Entweder selbst dort registrieren, oder als Twitter User: Click
Ihr dürft auch gerne mehr als nur #1 Whuffie verschenken
Mit Zitat antworten
  #10  
Alt 11.06.2010, 15:04
fortedennis fortedennis ist offline
Neuer Besucher
 
Registriert seit: 11.06.2010
Beiträge: 24
Standard AW: Javascript Gallerie Problem

Danke für deine schnelle Antwort.

Also ich habe das Menu als externe PHP Datei und habe einfach in jeder Datei die menu.php somit eingebunden über include, und meine menu.php datei sie wie folgt aus:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Calabria - Home</title>
  <link href="main.css" rel="stylesheet" media="screen, projection" type="text/css" />
  <!--[if lt IE 7]>
  <link href="iecss.css" rel="stylesheet"  media="screen,projection" type="text/css" />
  <![endif]-->
  </head>
<body id="home">
  <div id="outer">
    <div id="header1">
      <ul id="nav">
        <li><a href="index.html">Home</a></li>
        <li><a href="casa-vinola.html">Casa Vinola</a></li>
        <li><a href="casa-genovese.html">Casa Genovese</a></li>
        <li><a href="kontakt.html">Kontakt</a></li>
      </ul>
      <h1 id="tagline"><div style="width:125px;height:25px; padding: 55px 0 0 15px;">Calabria</div></h1>
      <div id="header2">
      </div>
    </div>
</body>
</html>
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gallerie Problem styli66 PHP 9 11.02.2010 18:45
PHP-Gallerie badblueboy PHP 7 19.12.2007 13:08
Gallerie Problem (mehrere dateien) evillan PHP 7 26.09.2007 16:30
PHP-Gallerie badblueboy Skriptsuche 5 10.08.2007 15:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:22 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC