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

    domanda su script Js showcase

    Buondì,
    ho una domanda sullo script in oggetto: volevo sapere, per chi lo conosce, se è possibile eliminare la leggera trasparenza che si vede tra le immagini parzialmente sovrapposte dove bisogna intervenire per toglierla e come!


    il codice del js è il seguente:


    codice:
    Showcase = Class.create(Abstract, {
    	initialize: function (sections, controls, options) {
    	
    		this.allSections 	= this.sections = sections;
    		this.controls 		= controls;	
    		
    		this.options = Object.extend({
    			ratio: 					0.5,
    			initialDelay: 			1,
    			duration: 				0.5,			
    			size:					this.sections.size()
    			}, options || {});
    			
    		this.running 		= false;
    		this.queue			= new Array;
    		
    		this.computeMetrics();	
    		
    		this.sections = this.allSections.slice(this.currentIndex - this.half, this.currentIndex + this.half + 1);
    		
    		this.allSections.each((function (section, index) {
    			section.setStyle({position: 'absolute', zIndex: Math.abs(index - this.sections.size()), left: '50%', top: '50%', marginLeft: -Math.round(section.getWidth() / 2) + 'px', marginTop: -Math.round(section.getHeight() / 2) + 'px'}).initialIndex = index;			
    			
    			section.observe('click', this.jump.bind(this)).observe('mouseover', function (event) {
    				section.setOpacity(1);
    				}).observe('mouseout', function () {
    					section.setOpacity(section.opacity);
    					}).opacity = 1;
    					
    			if (!this.sections.member(section)) {
    				this.queue.push(section.hide());
    				}
    			}).bind(this));
    		
    		for (i = 0; i <= this.half; i++) {
    			this.sections.push(this.sections.shift());
    			}
    			
    		this.controls.invoke('observe', 'click', this.click.bind(this));			
    		(this.animate.bind(this)).delay(this.options.initialDelay);
    		},
    
    	computeMetrics: function () {
    		this.half 			= this.currentIndex = (this.options.size - 1) / 2;		
    		this.ratioStep 		= Math.round(((1 - this.options.ratio) / this.currentIndex) * 100) / 100;
    		this.positionStep 	= Math.round(50 / this.half * 100) / 100;		
    		this.maxDimensions 	= this.sections.first().getDimensions();
    		},
    		
    	click: function (event) {
    		event.stop();
    		var element = event.findElement('a');
    		if (!this.running) {
    			eval("this." + element.rel + "()");
    			}		
    		this.animate(element.rel);
    		},
    		
    	previous: function () {
    		if (this.options.size < this.allSections.size()) {
    			var sectionIn 	= this.queue.shift();
    			var sectionOut 	= this.sections.pop();		
    		
    			this.sections.unshift(sectionIn);
    			this.queue.push(sectionOut.fade({duration: this.options.duration}));
    			} else {
    				this.sections.unshift(this.sections.pop());
    				}
    		},
    	
    	next: function () {		
    		if (this.options.size < this.allSections.size()) {			
    			var sectionIn 	= this.queue.shift();
    			var sectionOut 	= this.sections.shift();
    		
    			this.sections.push(sectionIn);
    			this.queue.push(sectionOut.fade({duration: this.options.duration}));
    			} else {
    				this.sections.push(this.sections.shift());
    				}
    		},
    	
    	jump: function (event) {
    		event.stop();
    		
    		if (!this.running) {
    			var section = this.sections[this.sections.indexOf(event.findElement('li'))];
    			
    			var direction = '';
    			
    			if (section.index < this.half) {
    				(this.half - section.index).times((function () {				
    					this.previous();
    					}).bind(this));
    				direction = 'previous';
    				} else if (section.index == this.half) {
    					} else {
    						(section.index - this.half).times((function () {
    							this.next();
    							}).bind(this));
    						direction = 'next';
    						}
    			}
    		
    		this.animate(direction);
    		},
    	
    	runEffects: function () {
    		
    		this.stackSections.bind(this).delay(this.options.duration / 2);
    	
    		this.running = new Effect.Parallel(
    			this.effects.map(function (effect) {
    				return new Effect.Parallel([
    					new Effect.Morph(effect.section, {
    						style: effect.style,
    						sync: true,
    						delay: 1,
    						transition: Effect.Transitions.linear
    						}),
    					new Effect.Appear(effect.section, {
    						to: Math.min(effect.section.ratio, 1),
    						sync: true
    						})
    					], {
    						sync: true,
    						beforeStart: function () {							
    							}
    						});
    				}), {
    					duration: this.options.duration,
    					afterFinish: (function () {
    						this.running = false;					
    						}).bind(this)
    					});
    		},
    		
    	stackSections: function () {
    		this.sections.each(function (section) {
    			section.setStyle({zIndex: section.stackIndex});
    			});
    		},
    		
    	indexSections: function () {	
    		this.sections.each((function (section, index) {
    			section.index 			= index;
    			section.modifier 		= Math.abs(Math.abs((section.index - (this.sections.size() - 1) / 2)) - this.half);
    			
    			section.ratio 			= Math.round(((section.modifier * this.ratioStep) + this.options.ratio) * 100) / 100;			
    						
    			section.width 			= Math.min(Math.round(this.maxDimensions.width * section.ratio), this.maxDimensions.width);
    			section.height 			= Math.min(Math.round(this.maxDimensions.height * section.ratio), this.maxDimensions.height);		
    			
    			section.positionIndex 	= (section.index - (this.sections.size() - 1) / 2);
    			section.stackIndex 		= Math.abs(Math.abs((section.index - (this.sections.size() - 1) / 2)) - this.half) + 1;					
    			
    			section.left 			= section.top = Math.round((this.half + section.positionIndex) * this.positionStep);
    			section.opacity			= Math.min(section.ratio, 1);			
    			}).bind(this));
    		}	
    });
    	
    Showcase.Horizontal = Class.create(Showcase, {
    	
    	animate: function (direction) {
    		this.indexSections();
    		
    		this.effects = new Array();		
    		this.sections.each((function (section) {
    			var style = {
    				left: 		section.left + '%', 
    				top:		'50%',
    				marginTop:	-Math.abs(section.height / 2) + 'px',
    				width: 		section.width + 'px', 
    				height: 	section.height + 'px'
    				};
    			
    			if (section.left == 0) {
    				style.marginLeft = '0px';
    				} else if (section.left == 50) {
    					style.marginLeft 		= -Math.round(section.width / 2) + 'px';					
    					} else if (section.left == 100) {
    						style.marginLeft 	= -section.width + 'px';
    						} else {
    							style.marginLeft = -Math.round(section.width / 2) + 'px';
    							}
    			
    			this.effects.push({section: section, style: style});		
    			}).bind(this));
    
    		this.currentIndex = this.sections[this.half].initialIndex;			
    		
    		this.runEffects();
    		}
    	
    	});
    	
    Showcase.Vertical = Class.create(Showcase, {
    	
    	animate: function (direction) {
    		this.indexSections();
    		
    		this.effects = new Array();		
    		this.sections.each((function (section) {
    			var style = {
    				top: 				section.top + '%', 
    				left:				'50%',
    				marginLeft:			-Math.abs(section.width / 2) + 'px',				
    				width: 				section.width + 'px', 
    				height: 			section.height + 'px'				
    				};
    			
    			if (section.top == 0) {
    				style.marginTop = '0px';
    				} else if (section.top == 50) {
    					style.marginTop = -Math.round(section.height / 2) + 'px';					
    					} else if (section.top 	== 100) {
    						style.marginTop = -section.height + 'px';
    						} else {
    							style.marginTop = -Math.round(section.height / 2) + 'px';
    							}
    			
    			this.effects.push({section: section, style: style});
    			}).bind(this));
    
    		this.currentIndex = this.sections[this.half].initialIndex;			
    		
    		this.runEffects();
    		}
    	});
    	
    Showcase.Diagonal = Class.create(Showcase, {
    	
    	animate: function (direction) {
    		this.indexSections();
    		
    		this.effects = new Array();		
    		this.sections.each((function (section) {
    			var style = {
    				left: 		section.left + '%', 
    				top: 		section.top + '%',				
    				width: 		section.width + 'px', 
    				height: 	section.height + 'px'
    				};
    			
    			if (section.left == 0) {
    				style.marginLeft = '0px';
    				} else if (section.left == 50) {
    					style.marginLeft 		= -Math.round(section.width / 2) + 'px';					
    					} else if (section.left == 100) {
    						style.marginLeft 	= -section.width + 'px';
    						} else {
    							style.marginLeft = -Math.round(section.width / 2) + 'px';
    							}
    							
    			if (section.top == 0) {
    				style.marginTop = '0px';
    				} else if (section.top == 50) {
    					style.marginTop = -Math.round(section.height / 2) + 'px';					
    					} else if (section.top 	== 100) {
    						style.marginTop = -section.height + 'px';
    						} else {
    							style.marginTop = -Math.round(section.height / 2) + 'px';
    							}							
    			
    			this.effects.push({section: section, style: style});		
    			}).bind(this));
    
    		this.currentIndex = this.sections[this.half].initialIndex;			
    		
    		this.runEffects();
    		}
    	
    	});
    Per utilizzare questo script sono presenti altri due js: effect.js e prototype.js
    Fatemi sapere se devo intervenire su quelli.

    Grazie!!
    Livia

  2. #2
    ciao ragazzi ho visto questo script e volevo capire se c'è un modo per far partire la visualizzazione delle foto in automatico.

    Qualcuno può darmi un aiuto?

    grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.