Autor Zpráva
Smoother
Profil
Ahoj,
mám následující problém:
Buď mi funguje menu s knihovnou Mootools, nebo slideshow galerie, podle toho které soubory jsou v
<head>
jako poslední... Jakoby se ty objekty přepsaly, či co...
Nesetkal se někdo s tím? Existuje obecná rada?
Díky
S.
Witiko
Profil
Knihovny si můžou navzájem přepisovat window.onload (Pisatel kódu možná nenávidí attachEvent a addEventListener pro přehlednou práci s eventy stejně jako moderátor Chamurappi? :) ). Bez živé ukázky těžko posoudit, tohle vypadá jako nejpravděpodobnější varianta. Nebo si navzájem přepsaly nějaké globální proměnné.
Smoother
Profil
Je to dlouhé, tak nevím, zda to sem mám dávat komplet...

menu
UDD.js:
var UvumiDropdown = new Class({
	Implements:Options,
	
	options:{
		clickToOpen:false,	//if set to true,  must click to open submenues
		openDelay:150,	//if hover mode, duration the mouse must stay on target before submenu is opened. if exits before delay expires, timer is cleared 
		closeDelay:500,	//delay before the submenu close when mouse exits. If mouse enter the submenu again before timer expires, it's cleared
		duration:250,	//duration in millisecond of opening/closing effect
		link:'cancel',
		transition:Fx.Transitions.linear,	//effect's transitions. See http://docs.mootools.net/Fx/Fx.Transitions for more details
		mode:'vertical' //if set to horizontal, the top level menu will be displayed horizontally. If set to vertical, it will be displayed vertically. If it does not match any of those two words, 'horizontal' will be used.
	},

	initialize: function(menu,options){
		this.menu = menu;
		this.setOptions(options);
		if(this.options.mode != 'horizontal' && this.options.mode != 'vertical'){
			this.options.mode = 'horizontal';
		}
		//some versions of Safari and Chrome run domready before DOM is actually ready, causing wrong positioning. If you still have some display issues in those browser try to increase the delay value a bit. I tried to keep it as low as possible, but sometimes it can take a bit longer than expected
		if(Browser.Engine.webkit){
			window.addEvent('domready',this.domReady.delay(200,this));
		}else{
			window.addEvent('domready',this.domReady.bind(this));
		}
	},
	
	domReady:function(){
		this.menu = $(this.menu);
		if(!$defined(this.menu)){
			return false;
		}
		//if passed element is not a UL, tries to find one in the children elements
		if(this.menu.get('tag')!='ul'){
			this.menu = this.menu.getElement('ul');
			if(!$defined(this.menu)){
				return false;
			}
		}
		//handles pages written form right to left.
		if(this.menu.getStyle('direction') == 'rtl' || $(document.body).getStyle('direction') == 'rtl'){
			this.rtl = true;
			if(Browser.Engine.trident && $(document.body).getStyle('direction') == 'rtl'){
				this.menu.getParent().setStyle('direction','ltr');
				this.menu.setStyle('direction','rtl');
			}
		}
		//start setup
		this.menu.setStyles({
			visibility:'hidden',
			display:'block',
			overflow:'hidden',
			height:0,
			marginLeft:(Browser.Engine.trident?1:-1)
		});
		//we call the createSubmenu function on the main UL, which is a recursive function
		this.createSubmenu(this.menu);
		//the LIs must be floated to be displayed horisotally
		if(this.options.mode=='horizontal'){
			this.menu.getChildren('li').setStyles({
				'float':(this.rtl?'right':'left'),
				display:'block',
				top:0
			});
		
			//We create an extar LI which role will be to clear the floats of the others
			var clear = new Element('li',{
				html:"&nbsp;",
				styles:{
					clear:(this.rtl?'right':'left'),
					display:(Browser.Engine.trident?'inline':'block'), //took me forever to find that fix
					position:'relative',
					top:0,
					height:0,
					width:0,
					fontSize:0,
					lineHeight:0,
					margin:0,
					padding:0
				}
			}).inject(this.menu);
		}else{
			this.menu.getChildren('li').setStyles({
				display:'block',
				top:0
			});
		}
		this.menu.setStyles({
			height:'auto',
			overflow:'visible',
			visibility:'visible'
		});
		//hack for IE, again
		this.menu.getElements('a').setStyle('display',(Browser.Engine.trident?'inline-block':'block'));
	},






A slide show:

window.addEvent('domready', function(){
  var transition = 'alternate';
  $$('input[name=transition]').addEvent('click', function(){ transition = this.value; });
  var slideAvailable = ['slide-left', 'slide-right', 'slide-top', 'slide-bottom', 'fade'];
  var slideTransition = function(){
    switch(transition){
      case 'alternate':
        if(! $defined(this.count)) this.count = -1;
        return slideAvailable[++this.count % slideAvailable.length];
      case 'random': return slideAvailable.getRandom();
      default: return transition;
    }
  }
  
  
  
  new BarackSlideshow('menu', 'pictures', 'loading', {transition: 'fade', auto: true});


Ale těch JavaScriptů je tam mnoho... Tak nevím, co se vzájemně bije.
Díky
S.
ah01
Profil
Smoother:
Ale těch JavaScriptů je tam mnoho...
Z kousku JS, který náhodně vykopíruješ, ti těžko někdo poradí. Nejlepší bude, když sem dáš odkaz na živou ukázku.
Smoother
Profil
sorry, blbnu:

Odkaz

Jedná se jen o homepage

Menu jede - je prioritní, nejede slideshow...

Scripty jsou rozdělené linkem na css soubor: uvumi-dropdown-vertical.css - nad ním jsou soubory pro slideshow, pod ním pro menu

Díky předem
S.
Smoother
Profil
Za vyřešení mého problému autora samozřejmě finančně odměním!
Smoother
Profil
Tak co pánové (a dámy),
najde se někdo, kdo za úplatu pomůže?

Díky předem
S.
Witiko
Profil
Trochu jsem to script prolézal a zdálo se mi, jako by na konci souboru BarackSlideshow.js chybělo }); na uzavření definice třídy.
Pokud to není ten problém, skoro bych požádal o zaslání zdrojových kódů stránek, abych to mohl testovat z localhostu, prolézat to přes fireBug z online verze je malinko opruz, navíc nemůžu testovat se změnami v kódu. :)
Smoother
Profil
Witiko:
Díval jsem se na to v PSPadu, všechny závorky jsou párové, tzn. uzavřené by mělo být vše...
Ad zdroj: stačí vykopírovat jednotlivé soubory, co konkrétně potřebuješ? Kam po mám případně poslat? Komunikace možná přes smoother(zavináč)centrum
Díky
Kcko
Profil
Smoother:
Obecně se zeptám, musí na to být použito MooTools?
Witiko
Profil
Smoother:

Co jsem v kódu viděl, to jsem viděl, nicméně nevěřím zcela stoprocentně Opeře Dragonflight. Poslal jsem ti na e-mail, co bych potřeboval.
Smoother
Profil
Kcko:
designově se mi líbí jejich řešení, a hlavně už je to zpracované... Witiko se ozval jako první tak počkám na jeho řešení...
Zatím díky
S.
Kcko
Profil
Smoother:
Oky, žádný problém.
Smoother
Profil
Protože Witiko přestal komunikovat, problém je nevyřešen.

Problém je popsaný zde:
Vzájemně se "bijí" dvě js knihovny:
mootools-1.2.1-core-yc.js a mootools-for-dropdown.js. Druhý soubor není žádný plugin, ale ořezaná verze
mootools jádra, která původní jádro předefinuje. Evidentním řešením by bylo použít pouze mootools jádro a plugin nabízený na stránce uvumiTools, nicméně v tom případě opět chybí pluginu pro menu nějaké funkce...

Jde o placenou zakázku dle dohody, prosím jen vážné zájemce. SPĚCHÁ

smoother(zavináč)centrum
_es
Profil
Smoother:
Myslíš, že je dobré dať na firemnú stránku celkovo 9 externých JS súborov?
Zaujíma sa zákazník v prvom rade o nejaké animácie alebo skôr o tovar a ceny?
Smoother
Profil
_es:
Co si budeme povídat, design prodává...
Ano, má to cca 200kb, ale kromě toho v tom problém nevidím. Ale kromě jiného je tato zakázka od toho, abych dostal takové řešení, kdy se tyto dvě knihovny spojí...
Nebo je jiné řešení?
_es
Profil
Smoother:
Ano, má to cca 200kb, ale kromě toho v tom problém nevidím.
1) Musí sa to stiahnuť, navyše až na 9 krát, teda obvykle ešte pomalšie než jeden 200 kB súbor.
2) Prehliadač musí všetky tie JS súbory spracovať - interpretovať alebo skompilovať, na 9 krát, teda na slabších počítačoch ďalší problém.

takové řešení, kdy se tyto dvě knihovny spojí
Zvyčajným počtom knihovní JS na stránke je 0 alebo 1.
Iný počet obvykle znamená zlý návrh.
Smoother
Profil
_es:
OK, rozumím a souhlasím. I toto může být součástí zakázky... Takže má někdo zájem? Díky předem...

smoother(zavináč)centrum

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0