Autor Zpráva
Richo
Profil
Zdravím.
Snažím se zprovoznit fotogalerii pomocí jquery. Vykradl jsem kód z www.mmreality.cz a celkem už mi to "chodí". Nevíte někdo Jak se u jquery změní velikost okna prohlížeče obrázků? Už se s tím párám dva týdny.... Dík.
Richo
Profil
Tak pořád študuju kód.
Potřeboval bych zvětšit výšku prohlížeče. Šířka se mění automaticky, ale výška je nastavená napevno.
Mohlo by to být někde tady?:

	function fancybox_draw(pos) {
		var width	= Math.round(start_pos.width	+ (final_pos.width	- start_pos.width)	* pos);
		var height	= Math.round(start_pos.height	+ (final_pos.height	- start_pos.height)	* pos);

		var top		= Math.round(start_pos.top	+ (final_pos.top	- start_pos.top)	* pos);
		var left	= Math.round(start_pos.left	+ (final_pos.left	- start_pos.left)	* pos);

		wrap.css({
			'width'		: width		+ 'px',
			'height'	: height	+ 'px',
			'top'		: top		+ 'px',
			'left'		: left		+ 'px'
		});

		width	= Math.max(width - currentOpts.padding * 2, 0);
		height	= Math.max(height - (currentOpts.padding * 2 + (titleh * pos)), 0);

		inner.css({
			'width'		: width		+ 'px',
			'height'	: height	+ 'px'
		});

		if (typeof final_pos.opacity !== 'undefined') wrap.css('opacity', (pos < 0.5 ? 0.5 : pos));
	};

	function _finish() {
		inner.css('overflow', overflow = (currentOpts.scrolling == 'auto' ? (currentOpts.type == 'image' || currentOpts.type == 'iframe' || currentOpts.type == 'swf' ? 'hidden' : 'auto') : (currentOpts.scrolling == 'yes' ? 'auto' : 'visible')));

		if (!$.support.opacity) {
			inner.get(0).style.removeAttribute('filter');
			wrap.get(0).style.removeAttribute('filter');
		}

		$('#fancybox-title').show();

		if (currentOpts.hideOnContentClick)	inner.one('click',		$.fancybox.close);
		if (currentOpts.hideOnOverlayClick)	overlay.one('click',	$.fancybox.close);

		if (currentOpts.showCloseButton) close.show();

		fancybox_set_navigation();

		$(window).bind("resize.fb", $.fancybox.center);

		currentOpts.centerOnScroll ? $(window).bind("scroll.fb", $.fancybox.center) : $(window).unbind("scroll.fb");

		if ($.isFunction(currentOpts.onComplete)) currentOpts.onComplete(currentArray, currentIndex, currentOpts);

		busy = false;

		fancybox_preload_images();
	};

	function fancybox_get_zoom_to() {
		var view	= fancybox_get_viewport();
		var to		= {};

		var margin = currentOpts.margin;
		var resize = currentOpts.autoScale;

		var horizontal_space	= (shadow + margin) * 2 ;
		var vertical_space		= (shadow + margin) * 2 ;
		var double_padding		= (currentOpts.padding * 2);

		if (currentOpts.width.toString().indexOf('%') > -1) {
			to.width = ((view[0] * parseFloat(currentOpts.width)) / 100) - (shadow * 2) ;
			resize = false;

		} else {
			to.width = currentOpts.width + double_padding;
		}

		if (currentOpts.height.toString().indexOf('%') > -1) {
			to.height = ((view[1] * parseFloat(currentOpts.height)) / 100) - (shadow * 2);
			resize = false;

		} else {
			to.height = currentOpts.height + double_padding;
		}

		if (resize && (to.width > (view[0] - horizontal_space) || to.height > (view[1] - vertical_space))) {
			if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {
				horizontal_space	+= double_padding;
				vertical_space		+= double_padding;

				var ratio = Math.min(Math.min( view[0] - horizontal_space, currentOpts.width) / currentOpts.width, Math.min( view[1] - vertical_space, currentOpts.height) / currentOpts.height);

				to.width	= Math.round(ratio * (to.width	- double_padding)) + double_padding;
				to.height	= Math.round(ratio * (to.height	- double_padding)) + double_padding;

			} else {
				to.width	= Math.min(to.width,	(view[0] - horizontal_space));
				to.height	= Math.min(to.height,	(view[1] - vertical_space));
			}
		}

		to.top	= view[3] + ((view[1] - (to.height	+ (shadow * 2 ))) * 0.5);
		to.left	= view[2] + ((view[0] - (to.width	+ (shadow * 2 ))) * 0.5);

		if (currentOpts.autoScale == false) {
			to.top	= Math.max(view[3] + margin, to.top);
			to.left	= Math.max(view[2] + margin, to.left);
		}

		return to;
	};
Witiko
Profil
Richo:
Vykradl jsem kód z www.mmreality.cz a celkem už mi to "chodí"
Autorský zákon chrání jakýkoliv obsah Díla (webových stránek), zdrojový kód nevyjímaje.

... kód ...
Co mohu posoudit, jedná se o s problémem nesouvisející úsek kódu. Přinejmenším v něm chybí definice odkazovaných objektů - hlavně kontejneru s nastaveními, jehož referenci by měla obsahovat proměnná currentOpts.

MM Reality na svých webových stránkách zdá se používají volně šiřitelný "prohlížeč obrázků" ThickBox. Proč nevyužít rovnou daný jQuery plugin, případně proč si nevybrat z tisíce volně dostupných lightbox alternativ?
Richo
Profil
No, myslím, že mi to bude stačit zhruba tak jak to je. Když jsem se díval na soubory co mi stáhnul prohlížeč, tak v nich byla uvedena licence pro volné šíření s podmínkou ponechání kontaktu na autora, takže to budou asi ty pluginy. Nakonec jsem si to stejně musel přizpůsobit k mé stránce. 99% toho co tam mají nakódováno stejně nepotřebuju. šlo mi hlavně o stínované okraje prohlížeče a umístění navigačních tlačítek, kčemuž bych se stejně, pracně, někdy dostal s dlouhodobým otravováním lidí na forech. Šel jsem opačným směrem. Stáhnul jsem si kód s výsledkem, který se mi líbí a postupně umazával nepotřebné věci a študoval, co to s výsledkem udělá.
Dík za napomenutí, ale myslím, že podobně jedná každý druhý začátečník (ne-li každý první...)
Witiko
Profil
Richo:
ale myslím, že podobně jedná každý druhý začátečník
Ale ne každý se tím tak okatě chlubí. :-)

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:

Prosím používejte diakritiku a interpunkci.

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

0