/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
billed størrelse
Fra : Rune Jensen


Dato : 07-06-10 05:53

Jeg sætter et billedes height og width med im.height og im.width. Men
jeg holder ikke styr på billedets originale størrelse, så når jeg senere
skal bruge original størrelse, får jeg scaled størrelse ved at læse
height og width..


Så er der ikke en JS-function til at få original height og width?


MVH
Rune Jensen

 
 
Rune Jensen (07-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 07-06-10 06:17

Den 07-06-2010 06:52, Rune Jensen skrev:

> Så er der ikke en JS-function til at få original height og width?

Jeg fandt naturalHeight og naturalWidth. Det lader til at virke.


MVH
Rune JEnsen

Birger Sørensen (07-06-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-06-10 09:55

Efter mange tanker skrev Rune Jensen:
> Jeg sætter et billedes height og width med im.height og im.width. Men jeg
> holder ikke styr på billedets originale størrelse, så når jeg senere skal
> bruge original størrelse, får jeg scaled størrelse ved at læse height og
> width..
>
>
> Så er der ikke en JS-function til at få original height og width?
>
>
> MVH
> Rune Jensen

Nøjs med den ene..

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (07-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 07-06-10 16:03

Den 07-06-2010 10:54, Birger Sørensen skrev:
> Efter mange tanker skrev Rune Jensen:
>> Jeg sætter et billedes height og width med im.height og im.width. Men
>> jeg holder ikke styr på billedets originale størrelse, så når jeg
>> senere skal bruge original størrelse, får jeg scaled størrelse ved at
>> læse height og width..
>>
>>
>> Så er der ikke en JS-function til at få original height og width?
>>
>>
>> MVH
>> Rune Jensen
>
> Nøjs med den ene..

Den ene hvad?

Jeg forstår ikke det svar.


MVH
Rune Jensen

Birger Sørensen (07-06-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-06-10 16:49

Rune Jensen frembragte:
> Den 07-06-2010 10:54, Birger Sørensen skrev:
>> Efter mange tanker skrev Rune Jensen:
>>> Jeg sætter et billedes height og width med im.height og im.width. Men
>>> jeg holder ikke styr på billedets originale størrelse, så når jeg
>>> senere skal bruge original størrelse, får jeg scaled størrelse ved at
>>> læse height og width..
>>>
>>>
>>> Så er der ikke en JS-function til at få original height og width?
>>>
>>>
>>> MVH
>>> Rune Jensen
>>
>> Nøjs med den ene..
>
> Den ene hvad?
>
> Jeg forstår ikke det svar.
>
>
> MVH
> Rune Jensen


Sæt enten bredde eller højde. Den ikke angivne beregnes selv af
browserne, i forhold til originalbilledet.
Der findes ikke nogen måde - ikke en jeg kender til, i hvert fald - at
js kender dimensionerne på det originale billede.
Hvis js skal kende de oprindelige dimensioner, skal du overføre dem fra
serveren. Evt. hente dem med AJAX.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (07-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 07-06-10 17:27

Den 07-06-2010 17:48, Birger Sørensen skrev:

>
> Sæt enten bredde eller højde. Den ikke angivne beregnes selv af
> browserne, i forhold til originalbilledet.

Hvad - og spare halvdelen af koden??

;)

Udmærket forslag, ja.

> Der findes ikke nogen måde - ikke en jeg kender til, i hvert fald - at
> js kender dimensionerne på det originale billede.
> Hvis js skal kende de oprindelige dimensioner, skal du overføre dem fra
> serveren. Evt. hente dem med AJAX.

Man kan læse height og width såsnart billedet er indlæst, så vidt jeg
forstår. Det er originalstørrelsen man så får. Men når man scaler i
forbindelse med en effekt, altså selv sætter height og width, så passer
de ikke mere med originalstørrelsen.

Jeg fandt naturalWidth og naturalHeight og her får man også
originalstørrelserne selvom de er scalerede, men ikke på aktuelt
billede, men på det forrige - så er det lissom ikke ligeså sjovt.
Sikkert fordi det aktuelle billede ikke er indlæst på det tifspunkt.

Det er noget med, hvor meget kode, man i sidste ende vil have med i
JSen, for jeg kunne bare lægge det ind i array, jeg har beregnet
størrelserne serverside i forvejen, men jeg ville gerne holde koden
simpel og på så få linjer som muligt.

Anyways, visse effekter virker så kun, hvis alle billeder er lige store
(f.eks. zoom ind/ud), visse effekter kan godt bruges alligevel, da der
ikke bruges scaleringseffekter. Jeg tror, jeg holder mig til den, det
skal ikke være en schwitz armyknife. Der bliver nemlig også nødt til at
være en start/stopknap, og alt fylder i koden.


MVH
Rune Jensen

Birger Sørensen (07-06-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-06-10 17:51

Rune Jensen forklarede den 07-06-2010:
> Den 07-06-2010 17:48, Birger Sørensen skrev:
>
>>
>> Sæt enten bredde eller højde. Den ikke angivne beregnes selv af
>> browserne, i forhold til originalbilledet.
>
> Hvad - og spare halvdelen af koden??
>
> ;)
>
> Udmærket forslag, ja.
>
>> Der findes ikke nogen måde - ikke en jeg kender til, i hvert fald - at
>> js kender dimensionerne på det originale billede.
>> Hvis js skal kende de oprindelige dimensioner, skal du overføre dem fra
>> serveren. Evt. hente dem med AJAX.
>
> Man kan læse height og width såsnart billedet er indlæst, så vidt jeg
> forstår. Det er originalstørrelsen man så får. Men når man scaler i
> forbindelse med en effekt, altså selv sætter height og width, så passer de
> ikke mere med originalstørrelsen.
>
> Jeg fandt naturalWidth og naturalHeight og her får man også
> originalstørrelserne selvom de er scalerede, men ikke på aktuelt billede, men
> på det forrige - så er det lissom ikke ligeså sjovt. Sikkert fordi det
> aktuelle billede ikke er indlæst på det tifspunkt.
>
> Det er noget med, hvor meget kode, man i sidste ende vil have med i JSen, for
> jeg kunne bare lægge det ind i array, jeg har beregnet størrelserne
> serverside i forvejen, men jeg ville gerne holde koden simpel og på så få
> linjer som muligt.
>
> Anyways, visse effekter virker så kun, hvis alle billeder er lige store
> (f.eks. zoom ind/ud), visse effekter kan godt bruges alligevel, da der ikke
> bruges scaleringseffekter. Jeg tror, jeg holder mig til den, det skal ikke
> være en schwitz armyknife. Der bliver nemlig også nødt til at være en
> start/stopknap, og alt fylder i koden.
>
>
> MVH
> Rune Jensen

Virker naturalWidth og naturalHeight i alle browserne?
Det jeg kan finde om dem, siger alle at IE har problemer - eller
sigerikke noget om understøttelse...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (07-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 07-06-10 18:35

Den 07-06-2010 18:50, Birger Sørensen skrev:

> Virker naturalWidth og naturalHeight i alle browserne?

Virker i FF i hvert fald. Men ikke helt som jeg vil. Det ser ud som om,
den tager originalstørrelse af forrige billede (hvilket kan have noget
at gøre med selve rutinen for den effekt, den har nok fat i forkert
billede). Men den forstår det, for det er ikke den skalerede størrelse,
man får.

> Det jeg kan finde om dem, siger alle at IE har problemer - eller
> sigerikke noget om understøttelse...

OK, jeg kan ikke teste i IE her, den har besluttet sig for at strække
med alt hvad der handler om det script, og her er den meget konsekvent ;)

Men det er også lige meget, jeg har droppet idéen, når den ikke er
standard. Ellers kunne jeg godt have brugt tid på at teste det i andre
browsere og fejlfinde.

Hvad jeg derfor gør nu er fra starten at gå ud fra, alle billeder har
samme størrelse i en slideshow-sekvens. Det lægger jeg så ind serverside
i beregningen, når der skal skaleres, og altså uden naturalHeight og
naturalWidth.

Jeg har iøvrigt set nogen foreslå clientHeight og clientWidth, men det
kan jeg heller ikke få til at virke.



MVH
Rune Jensen

Birger Sørensen (07-06-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-06-10 19:01

Rune Jensen skrev:
> Den 07-06-2010 18:50, Birger Sørensen skrev:
>
>> Virker naturalWidth og naturalHeight i alle browserne?
>
> Virker i FF i hvert fald. Men ikke helt som jeg vil. Det ser ud som om, den
> tager originalstørrelse af forrige billede (hvilket kan have noget at gøre
> med selve rutinen for den effekt, den har nok fat i forkert billede). Men den
> forstår det, for det er ikke den skalerede størrelse, man får.
>
>> Det jeg kan finde om dem, siger alle at IE har problemer - eller
>> sigerikke noget om understøttelse...
>
> OK, jeg kan ikke teste i IE her, den har besluttet sig for at strække med alt
> hvad der handler om det script, og her er den meget konsekvent ;)
>
> Men det er også lige meget, jeg har droppet idéen, når den ikke er standard.
> Ellers kunne jeg godt have brugt tid på at teste det i andre browsere og
> fejlfinde.
>
> Hvad jeg derfor gør nu er fra starten at gå ud fra, alle billeder har samme
> størrelse i en slideshow-sekvens. Det lægger jeg så ind serverside i
> beregningen, når der skal skaleres, og altså uden naturalHeight og
> naturalWidth.
>
> Jeg har iøvrigt set nogen foreslå clientHeight og clientWidth, men det kan
> jeg heller ikke få til at virke.
>
>
>
> MVH
> Rune Jensen

clientHeight og width er den plads der er inde i elementet - uden
padding, border og margin - og svarer til den der sættes i height i
css. Dog er clientHeight altid i pixels, og uden benævnelse - altså kun
tallet.
Jeg har også set offsetHeight - det er som clientHeight kun et tal og
altis i pixels, men angiver hvor meget elementet fylder - altså incl.
padding, border og margin.
Men her taler vi om HTML-elementer (også <img>), og det har ikke noget
med den oprindelige størrelse at gøre, men med det der vises på
skærmen.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (07-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 07-06-10 20:46

Den 07-06-2010 20:00, Birger Sørensen skrev:

> clientHeight og width er den plads der er inde i elementet - uden
> padding, border og margin - og svarer til den der sættes i height i css.
> Dog er clientHeight altid i pixels, og uden benævnelse - altså kun tallet.
> Jeg har også set offsetHeight - det er som clientHeight kun et tal og
> altis i pixels, men angiver hvor meget elementet fylder - altså incl.
> padding, border og margin.
> Men her taler vi om HTML-elementer (også <img>), og det har ikke noget
> med den oprindelige størrelse at gøre, men med det der vises på skærmen.

Det svarer nogenlunde til min opfattelse, da jeg læste om det (der var
så for så vidt to forklaringer), derfor gjorde jeg heller ikke så meget
for at få det til at virke. Det var kun fordi jeg så det foreslået med
clientWidth og -height.

Men man skal jo også videre, kan ikke sidde og brænde fast i detaljerne.

Nu kommer der en rimelig stor omrokering i koden, for jeg laver de
forskellige dele af scriptet (JS/HTML/CSS) som subrutiner serverside, så
kan jeg rette i det ét sted, og det vil blive ændret både i scriptet til
siden og i det script man får, som kan copy/pastes.

Så skal der start/stop knap på, og så kan man jo overveje at lave
yderligere mulighed for galleri. Det lader til, det også er efterspurgt.

I sidste ende skulle man gerne uanset hvad kunne få et fuldstændigt
optimeret script med lige de funktioner man vil ha' som ren copy/paste.


MVH
Rune Jensen

Rune Jensen (07-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 07-06-10 22:50

Den 07-06-2010 20:00, Birger Sørensen skrev:

> clientHeight og width er den plads der er inde i elementet - uden
> padding, border og margin - og svarer til den der sættes i height i css.
> Dog er clientHeight altid i pixels, og uden benævnelse - altså kun tallet.
> Jeg har også set offsetHeight - det er som clientHeight kun et tal og
> altis i pixels, men angiver hvor meget elementet fylder - altså incl.
> padding, border og margin.
> Men her taler vi om HTML-elementer (også <img>), og det har ikke noget
> med den oprindelige størrelse at gøre, men med det der vises på skærmen.

Nu er jeg gået videre med scriptet, og af ren nysgerrighed - hvor vil
det være bedst at placere en start/stop function?

Jeg mener hvor i scriptet bør den trigges?

Kan man lave en variabel, som gør at scriptet kun kører så længe
variablen er 1 (f.eks.), men at der stadig checkes for onsubmit (for der
skal bruges en knap jo), sådan variablen kan styres fra en knap


MVH
Rune Jensen

Birger Sørensen (07-06-2010)
Kommentar
Fra : Birger Sørensen


Dato : 07-06-10 23:38

Rune Jensen skrev:
> Den 07-06-2010 20:00, Birger Sørensen skrev:
>
>> clientHeight og width er den plads der er inde i elementet - uden
>> padding, border og margin - og svarer til den der sættes i height i css.
>> Dog er clientHeight altid i pixels, og uden benævnelse - altså kun tallet.
>> Jeg har også set offsetHeight - det er som clientHeight kun et tal og
>> altis i pixels, men angiver hvor meget elementet fylder - altså incl.
>> padding, border og margin.
>> Men her taler vi om HTML-elementer (også <img>), og det har ikke noget
>> med den oprindelige størrelse at gøre, men med det der vises på skærmen.
>
> Nu er jeg gået videre med scriptet, og af ren nysgerrighed - hvor vil det
> være bedst at placere en start/stop function?
>
> Jeg mener hvor i scriptet bør den trigges?
>
> Kan man lave en variabel, som gør at scriptet kun kører så længe variablen er
> 1 (f.eks.), men at der stadig checkes for onsubmit (for der skal bruges en
> knap jo), sådan variablen kan styres fra en knap
>
>
> MVH
> Rune Jensen

Du kan sætte det ind hvor timeren for billedskift startes, så den kun
startes når variablen er 1 (eller != 0).
Du skal have variablen med i initialiseringen, og knappens onsubmit,
ændrer værdien ( toggle mellem 1 og 0 - skal så også sætte tekst på
knappen) - f.eks. sådan

function S_click() {
running = ( running == 1) ? 0 : 1;
document.getElementById( 'knappen').value = ( running == 1) ? 'Stop' :
'Start';
if ( running == 1) {
// Start timer for billedskift, eller start skift af billede
}
}
kræver at "knappen" er
<input id="knappen" type="button" value="Stop" onclick="S_click();">
- hvor eventen selvfølgelig bør tildeles unobtrusive... men onclick
som ovenfor kan bruges til test
og at der initialiseres running = 1;, så showet starter ved load -
ellers skal den initialiseres til 0, og knappen hedde Start 8-o

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Rune Jensen (08-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 08-06-10 20:02

Den 08-06-2010 00:37, Birger Sørensen skrev:
> Rune Jensen skrev:

>> Nu er jeg gået videre med scriptet, og af ren nysgerrighed - hvor vil
>> det være bedst at placere en start/stop function?

> Du kan sætte det ind hvor timeren for billedskift startes, så den kun
> startes når variablen er 1 (eller != 0).

Er fixet. Og så lærte jeg lige at lægge en unobtrusive onclick event på
en knap også... Så ved jeg egentlig ikke, om jeg kan finde på mere dér,
men tak for hjælpen ;)

....nåhjo, et PS: Virker det stadig for jer i IE8 på den side?


MVH
Rune Jensen

Birger Sørensen (08-06-2010)
Kommentar
Fra : Birger Sørensen


Dato : 08-06-10 22:49

Den 08-06-2010, skrev Rune Jensen:
> Den 08-06-2010 00:37, Birger Sørensen skrev:
>> Rune Jensen skrev:
>
>>> Nu er jeg gået videre med scriptet, og af ren nysgerrighed - hvor vil
>>> det være bedst at placere en start/stop function?
>
>> Du kan sætte det ind hvor timeren for billedskift startes, så den kun
>> startes når variablen er 1 (eller != 0).
>
> Er fixet. Og så lærte jeg lige at lægge en unobtrusive onclick event på en
> knap også... Så ved jeg egentlig ikke, om jeg kan finde på mere dér, men tak
> for hjælpen ;)
>
> ...nåhjo, et PS: Virker det stadig for jer i IE8 på den side?
>
>
> MVH
> Rune Jensen

Showet virker på siden, også i IE8, og også i komatibilitetstilstand
(dog med knap så elegante skift).
Generelt, er det måske lidt forkert, at man kan stoppe showet, midt i
en overgang.
Der arbejdes med forskellige timere - og den du skal stoope er den der
skifter billedet - ikke den der bruges i overgangen. Jeg tror nok at
jeg har kaldt dem det samme (fordi de ikke vil blive brugt samtidig) -
måske en ide, at bruge to forskellige navne, for overblikkets skyld.

Jeg har ikke haft tid at prøve din generator - skal prøve at se om der
kan blive nogle minutter i løbet af i morgen.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (10-06-2010)
Kommentar
Fra : Stig Johansen


Dato : 10-06-10 07:25

Rune Jensen wrote:

> Man kan læse height og width såsnart billedet er indlæst, så vidt jeg
> forstår. Det er originalstørrelsen man så får. Men når man scaler i
> forbindelse med en effekt, altså selv sætter height og width, så passer
> de ikke mere med originalstørrelsen.
>
> Jeg fandt naturalWidth og naturalHeight og her får man også
> originalstørrelserne selvom de er scalerede, men ikke på aktuelt
> billede, men på det forrige - så er det lissom ikke ligeså sjovt.
> Sikkert fordi det aktuelle billede ikke er indlæst på det tifspunkt.

Jeg er ikke så aktiv mere, men hvis du kigger under /gallery i din backup,
så kan du finde løsningen på det tidsmæssige problem med nyt billede osv.

Kige efter "onload" på _image_, som er nødvendig, da det først er efter load
koordinater og størrelse er kendt.

Det ligger som "onload" i html'et, som ikke er validt (jfr. w3), men kan let
flyttes ud som unobtrusive.

--
Med venlig hilsen
Stig Johansen

Rune Jensen (12-06-2010)
Kommentar
Fra : Rune Jensen


Dato : 12-06-10 06:55

Den 10-06-2010 08:24, Stig Johansen skrev:

> Det ligger som "onload" i html'et, som ikke er validt (jfr. w3), men kan let
> flyttes ud som unobtrusive.

Hvis det er nogenlunde samme sværhedsgrad, som at lave birgers script
unobtrusive, kan jeg godt finde ud af det.


MVH
Rune Jensen

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste