Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Menu ad espansione in JavaScript

    Ciao a tutti,

    ho utilizzato all'interno di un sito che ho fatto uno script per un menu ad espansione (Fatto in JavaScript)

    Per capire meglio ecco il sito: Edilstone AG

    Come posso fare per far si che tenga in memoria il modo nel quale era espanso prima di cambiare pagina?

    Mi spiego meglio .... se appro un menù escono i sottomenu, ma naturalmente quando cambio pagina il menù si richiude ... vorrei che anche se si cambia pagina rimanesse in memoria come era stato espanso. È possibile? Pensavo ad un frame ma non saprei ...

    codice:
    /*  Prototype JavaScript framework
     *  (c) 2005 Sam Stephenson <[email protected]>
     *  Prototype is freely distributable under the terms of an MIT-style license.
     *  For details, see the Prototype web site: http://prototype.conio.net/
    /*--------------------------------------------------------------------------*/
    
    //note: modified & stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net).
    
    var Class = {
    	create: function() {
    		return function() {
    			this.initialize.apply(this, arguments);
    		}
    	}
    }
    
    Object.extend = function(destination, source) {
    	for (property in source) destination[property] = source[property];
    	return destination;
    }
    
    Function.prototype.bind = function(object) {
    	var __method = this;
    	return function() {
    		return __method.apply(object, arguments);
    	}
    }
    
    Function.prototype.bindAsEventListener = function(object) {
    var __method = this;
    	return function(event) {
    		__method.call(object, event || window.event);
    	}
    }
    
    function $() {
    	if (arguments.length == 1) return get$(arguments[0]);
    	var elements = [];
    	$c(arguments).each(function(el){
    		elements.push(get$(el));
    	});
    	return elements;
    
    	function get$(el){
    		if (typeof el == 'string') el = document.getElementById(el);
    		return el;
    	}
    }
    
    if (!window.Element) var Element = new Object();
    
    Object.extend(Element, {
    	remove: function(element) {
    		element = $(element);
    		element.parentNode.removeChild(element);
    	},
    
    	hasClassName: function(element, className) {
    		element = $(element);
    		if (!element) return;
    		var hasClass = false;
    		element.className.split(' ').each(function(cn){
    			if (cn == className) hasClass = true;
    		});
    		return hasClass;
    	},
    
    	addClassName: function(element, className) {
    		element = $(element);
    		Element.removeClassName(element, className);
    		element.className += ' ' + className;
    	},
      
    	removeClassName: function(element, className) {
    		element = $(element);
    		if (!element) return;
    		var newClassName = '';
    		element.className.split(' ').each(function(cn, i){
    			if (cn != className){
    				if (i > 0) newClassName += ' ';
    				newClassName += cn;
    			}
    		});
    		element.className = newClassName;
    	},
    
    	cleanWhitespace: function(element) {
    		element = $(element);
    		$c(element.childNodes).each(function(node){
    			if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) Element.remove(node);
    		});
    	},
    
    	find: function(element, what) {
    		element = $(element)[what];
    		while (element.nodeType != 1) element = element[what];
    		return element;
    	}
    });
    
    var Position = {
    	cumulativeOffset: function(element) {
    		var valueT = 0, valueL = 0;
    		do {
    			valueT += element.offsetTop  || 0;
    			valueL += element.offsetLeft || 0;
    			element = element.offsetParent;
    		} while (element);
    		return [valueL, valueT];
    	}
    };
    
    document.getElementsByClassName = function(className) {
    	var children = document.getElementsByTagName('*') || document.all;
    	var elements = [];
    	$c(children).each(function(child){
    		if (Element.hasClassName(child, className)) elements.push(child);
    	});  
    	return elements;
    }
    
    //useful array functions
    Array.prototype.iterate = function(func){
    	for(var i=0;i<this.length;i++) func(this[i], i);
    }
    if (!Array.prototype.each) Array.prototype.each = Array.prototype.iterate;
    
    function $c(array){
    	var nArray = [];
    	for (var i=0;i<array.length;i++) nArray.push(array[i]);
    	return nArray;
    }
    codice:
    /*
    moo.fx, simple effects library built with prototype.js (http://prototype.conio.net).
    by Valerio Proietti (http://mad4milk.net) MIT-style LICENSE.
    for more info (http://moofx.mad4milk.net).
    Sunday, March 05, 2006
    v 1.2.3
    */
    
    var fx = new Object();
    //base
    fx.Base = function(){};
    fx.Base.prototype = {
    	setOptions: function(options) {
    	this.options = {
    		duration: 500,
    		onComplete: '',
    		transition: fx.sinoidal
    	}
    	Object.extend(this.options, options || {});
    	},
    
    	step: function() {
    		var time  = (new Date).getTime();
    		if (time >= this.options.duration+this.startTime) {
    			this.now = this.to;
    			clearInterval (this.timer);
    			this.timer = null;
    			if (this.options.onComplete) setTimeout(this.options.onComplete.bind(this), 10);
    		}
    		else {
    			var Tpos = (time - this.startTime) / (this.options.duration);
    			this.now = this.options.transition(Tpos) * (this.to-this.from) + this.from;
    		}
    		this.increase();
    	},
    
    	custom: function(from, to) {
    		if (this.timer != null) return;
    		this.from = from;
    		this.to = to;
    		this.startTime = (new Date).getTime();
    		this.timer = setInterval (this.step.bind(this), 13);
    	},
    
    	hide: function() {
    		this.now = 0;
    		this.increase();
    	},
    
    	clearTimer: function() {
    		clearInterval(this.timer);
    		this.timer = null;
    	}
    }
    
    //stretchers
    fx.Layout = Class.create();
    fx.Layout.prototype = Object.extend(new fx.Base(), {
    	initialize: function(el, options) {
    		this.el = $(el);
    		this.el.style.overflow = "hidden";
    		this.iniWidth = this.el.offsetWidth;
    		this.iniHeight = this.el.offsetHeight;
    		this.setOptions(options);
    	}
    });
    
    fx.Height = Class.create();
    Object.extend(Object.extend(fx.Height.prototype, fx.Layout.prototype), {	
    	increase: function() {
    		this.el.style.height = this.now + "px";
    	},
    
    	toggle: function() {
    		if (this.el.offsetHeight > 0) this.custom(this.el.offsetHeight, 0);
    		else this.custom(0, this.el.scrollHeight);
    	}
    });
    
    fx.Width = Class.create();
    Object.extend(Object.extend(fx.Width.prototype, fx.Layout.prototype), {	
    	increase: function() {
    		this.el.style.width = this.now + "px";
    	},
    
    	toggle: function(){
    		if (this.el.offsetWidth > 0) this.custom(this.el.offsetWidth, 0);
    		else this.custom(0, this.iniWidth);
    	}
    });
    
    //fader
    fx.Opacity = Class.create();
    fx.Opacity.prototype = Object.extend(new fx.Base(), {
    	initialize: function(el, options) {
    		this.el = $(el);
    		this.now = 1;
    		this.increase();
    		this.setOptions(options);
    	},
    
    	increase: function() {
    		if (this.now == 1 && (/Firefox/.test(navigator.userAgent))) this.now = 0.9999;
    		this.setOpacity(this.now);
    	},
    	
    	setOpacity: function(opacity) {
    		if (opacity == 0 && this.el.style.visibility != "hidden") this.el.style.visibility = "hidden";
    		else if (this.el.style.visibility != "visible") this.el.style.visibility = "visible";
    		if (window.ActiveXObject) this.el.style.filter = "alpha(opacity=" + opacity*100 + ")";
    		this.el.style.opacity = opacity;
    	},
    
    	toggle: function() {
    		if (this.now > 0) this.custom(1, 0);
    		else this.custom(0, 1);
    	}
    });
    
    //transitions
    fx.sinoidal = function(pos){
    	return ((-Math.cos(pos*Math.PI)/2) + 0.5);
    	//this transition is from script.aculo.us
    }
    fx.linear = function(pos){
    	return pos;
    }
    fx.cubic = function(pos){
    	return Math.pow(pos, 3);
    }
    fx.circ = function(pos){
    	return Math.sqrt(pos);
    }

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,073
    Una soluzione l'hai già segnalata tu iframe (soluzione più semplice) oppure devi eseguire una "navigazione" con ajax due div in uno ci metti il menu nell'altro ci carichi le pagine
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3

    re

    i have also a little bit knowledge about java s cript. I just do not understand your language that you have written here in this forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.