[JS] autoresize pro Operu - doladění

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod vanDave 11. 3. 2009 18:13

Zdravím, z http://opera-prehliadac.com/index.php/c ... 315.html#3 jsem si stáhl 2 různé JS soubory pro automatickou změnu velikosti obrázků v Opeře.
Oba skripty fungují, ale na každém mně něco vadí a chtěl bych jeden z nich doladit.

Na autosizer.js mně vadí, že se občas obrázek prvně vykreslí v plné velikosti a až potom se automaticky přizpůsobí velikosti obrazovky. Zkoušel jsem stejnou fotku otevřít v FF a IE7 a tam se ta fotka rovnou vykreslí zmenšená. Navíc u tohoto JS to zmenšení neprobíhá plynule, ale fotka se prvně zmenší a pak se naopak trošku zvětší.

V autosizer2-0.js ("Autosizer - verzia: 2.02") se taky fotka prvně vykreslí v plné velikosti, ale po zmenšení už neposkočí, ale navíc mně tam vadí, že se neukazuje klasický kurzor a že se vpravo objevuje nabídka.
Stačilo by mně, když bych kliknutím myši na obrázek mohl přepínat mezi maximální velikostí a Fit to Windth, jak u ostatních prohlížečů.
Potřeboval bych poradit, co upravit v jedné z těch verzí JS, aby to takhle fungovalo.
Nebo pokud víte ještě o nějakém jiném JS, který tohle umí, tak dejte vědět.

Sice mám nějaké základy v C++ a občas dělám v HTML, ale v JS jsem nikdy nedělal... :-)

Předem dík za jakoukoliv radu.
->>> Seznam hifiprodejen: http://forum.avmania.e15.cz/viewtopic.php?f=1724&t=767373 <<<-
Gangsta asesoríz: Hlavní je řetěz. Skorozlaté řetězy se dají sehnat v metráži v železářství. Koupíme asi tak 5 metrů. :D
Olympus E-PM1 + 14-42mm
vanDave
Junior
Uživatelský avatar

Odeslat příspěvekod kernel_panic [passed] 11. 3. 2009 18:52

pracujme s verzí 2.02

Kód: Vybrat vše
document.getElementById("mode_selector").style.display="block";
document.getElementById("mode_indicator").style.display="block";

nahraď

Kód: Vybrat vše
document.getElementById("mode_selector").style.display="none";
document.getElementById("mode_indicator").style.display="none";

a nakonec si v celým scriptu odstraň text cursor:crosshair;
k bití internetovejch nihilistů jsem už příliš starej, ale za ty roky mně narostl krunýř, o kterej se vždy báječně rozplácnete; takže, mám zůstat čelem nebo?
kernel_panic [passed]
Přeborník Živě roku 2008
Uživatelský avatar

Odeslat příspěvekod vanDave 14. 3. 2009 19:10

Dík moc, otevřel jsem to v PSpadu a celý "přečetl", abych aspoň trochu pochopil, jak to má řešený. :)
Na konci zdroj. souboru jsem zjistil, že na přepínání mezi jedn. módy zobrazení jdou použít i klávesy B, N, M. Tu nabídku jsem tam nakonec nechal, jenom jsem nastavil this.indicator_delay = 0, aby se neukazovala při každém načtení fotky, i tak občas při načítání fotky problikne info o aktuálně zvoleném módu. Zatím jsem ho zakázal pomocí té změny na document.getElementById("mode_indicator").style.display="none";
Pak jsem ještě přeložil tu nabídku a upravil její barvy. :)

Nevíš, jak zajistit, aby se ten obrázek ukázal rovnou v přizpůsobené velikosti a ne prvně v plné a pak v přizpůsobené?

Pak bych ještě potřeboval udělat, aby se při klikání myší na obrázek přepínalo jenom mezi Original a Shring to Fit (Prizpusobit (pouze vetsi)) s tím, že pokud si budu chtít vybrat jiný mód, tak půjdu do té nabídky vpravo.

Původní:
Kód: Vybrat vše
var itemNames = ["Original", "Shrink to Fit", "Maximize", "Fit to Width", "Fit to Height"];
var fit_modes = [
      "cursor:crosshair;display:block; margin:auto auto", // no fit
      "display:block;max-width:100%;max-height:100%;margin:0 auto;padding:0;cursor:crosshair", //fit to window
      "display:block;width:100%;height:auto;margin:0 auto;padding:0;cursor:crosshair", //fit to width
      "display:block;width:auto;height:100%;margin:0 auto;padding:0;cursor:crosshair;" //fit to height
    ]

    default_mode--;


Ten středník v řádku s //fit to height má být až za tou hranatou závorkou o řádek níž, ne?

Po úpravě:
Kód: Vybrat vše
var itemNames = ["Original", "Prizpusobit (pouze vetsi)", "Maximalizovat", "Prizpusobit sirce fotky", "Prizpusobit vysce fotky"]; // nadefinovani nazvu polozek
var fit_modes = [
      "display:block; margin:auto auto", // no fit, asi 0, Original, vymaz cursor:crosshair;
      "display:block;max-width:100%;max-height:100%;margin:0 auto;padding:0;cursor:crosshair", //fit to window, asi 1, Prizpusobit, vymaz ;cursor:crosshair
      "display:block;width:100%;height:auto;margin:0 auto;padding:0;cursor:crosshair", //fit to width, asi 2, vymaz ;cursor:crosshair
      "display:block;width:auto;height:100%;margin:0 auto;padding:0;cursor:crosshair" //fit to height, asi 4, vymaz ;cursor:crosshair;
    ]

    default_mode--;


Ještě jsem v to zdrojáku narazil na default:, to je správně?
->>> Seznam hifiprodejen: http://forum.avmania.e15.cz/viewtopic.php?f=1724&t=767373 <<<-
Gangsta asesoríz: Hlavní je řetěz. Skorozlaté řetězy se dají sehnat v metráži v železářství. Koupíme asi tak 5 metrů. :D
Olympus E-PM1 + 14-42mm
vanDave
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků