Gå till innehåll
Just nu i M3-nätverket

Hämta höjd på bild med Javascript


pal8

Rekommendera Poster

Någon som vet hur man kan hämta höjd på en bild som är dynamiskt skapad med new Image() eller createElement('img'). Jag lyckas inte. Inte heller om jag kör det onLoad.

Länk till kommentar
Dela på andra webbplatser

Menar du innan eller efter bilden renderats? Efter att den renderats är det väl attributet .offsetHeight.

Utan att rendera bilden vet jag inte om det går att få reda på dess dimensioner.

Länk till kommentar
Dela på andra webbplatser

På en allra minsta nivå så kan man använda något i stil med:

 

 

 

var widthAndheight = {

 

// Globala variabler

width: null,

height, null,

 

 

getWidth: function() {

var theImage = document.getElementById('imageId');

 

widthAndheight .width = theImage.width;

 

},

 

 

 

 

getHeight: function() {

var theImage = document.getElementById('imageId');

 

widthAndheight .height = theImage.height;

}

 

}

Länk till kommentar
Dela på andra webbplatser

På en allra minsta nivå så kan man använda något i stil med:

 

 

 

var widthAndheight = {

 

// Globala variabler

width: null,

height, null,

 

 

getWidth: function() {

var theImage = document.getElementById('imageId');

 

widthAndheight .width = theImage.width;

 

},

 

 

 

 

getHeight: function() {

var theImage = document.getElementById('imageId');

 

widthAndheight .height = theImage.height;

}

 

}

 

Mitt problem är att hämta höjden direkt efter man skapat en ny bild med t ex createElement. Att hämta höjd på en existerande bild är inga problem.

Länk till kommentar
Dela på andra webbplatser

Mitt problem är att hämta höjden direkt efter man skapat en ny bild med t ex createElement. Att hämta höjd på en existerande bild är inga problem.

 

 

 

Så med andra ord vill du att efter man skapat en tag med createElement('img') så vill du ha ut höjden på den innan man processar hela koden? D.v.s exempel laddar upp bilden på en server eller liknande?

Länk till kommentar
Dela på andra webbplatser

Så med andra ord vill du att efter man skapat en tag med createElement('img') så vill du ha ut höjden på den innan man processar hela koden? D.v.s exempel laddar upp bilden på en server eller liknande?

 

 

Ja typ. Den ska sedan visas centrerat på sidan.

Länk till kommentar
Dela på andra webbplatser

Ja typ. Den ska sedan visas centrerat på sidan.

 

Du lär inte få mycket hjälp när du är så kortfattad! Formulera om ditt problem så man förstår det bättre istället.

 

Du vill ha ut höjden och bredden på en bild efter att skapat ett img element med createElement('img') och jag har get dig ett förslag som inte var lösningen. Vad är du då exakt ute efter mr.Kort-fattad! huh.gif

Länk till kommentar
Dela på andra webbplatser

Du lär inte få mycket hjälp när du är så kortfattad! Formulera om ditt problem så man förstår det bättre istället.

 

Du vill ha ut höjden och bredden på en bild efter att skapat ett img element med createElement('img') och jag har get dig ett förslag som inte var lösningen. Vad är du då exakt ute efter mr.Kort-fattad! huh.gif

 

Jag tycker inte man kan förklara det på ett mer begripligt sätt än så. Vet du vad createElement är?

Länk till kommentar
Dela på andra webbplatser

Jag tycker inte man kan förklara det på ett mer begripligt sätt än så. Vet du vad createElement är?

 

 

 

Om jag inte vetat det hade jag väl inte ens valt att svara på ditt inlägg? Pucko! happy.gifwink.gif

Länk till kommentar
Dela på andra webbplatser

Om jag inte vetat det hade jag väl inte ens valt att svara på ditt inlägg? Pucko! happy.gifwink.gif

 

Lugna ner dig. Tack för din hjälp men sådana svar har inte här att göra och inte i forum överhuvudtaget. Hur kan du komma så snabbt till ordet "pucko" bara för att du inte förstår frågan? Jag kan inte hjälpa att du inte förstår en enkel problemställning som har med javascript att göra.

 

Min förhoppning var att någon som känner till problemet och kan mer om javascript visste svaret. Den personen kommer veta exakt vad jag talar om på grundval av det jag sagt. D v s hur hämtar man höjden på en bild skapad med createElement. Googlar man hittar man fler med samma problem men jag har inte hittat svaret än. Eller jo, kanske. Någon var inne på att hämta det när bilden skapats med onLoad satt på bilden, vilket är helt logiskt, men det vill sig inte. Så därav min chansning att fråga här.

 

Eftersom du inte tycks förstå problematiken så behöver du inte heller svara eller bli så upprörd.

Länk till kommentar
Dela på andra webbplatser

Du har inte gett något kodexempel, så jag måste gissa lite.

 

Om du kör myImg.naturalHeight, vad får du då? Har du angett någon höjd för objektet efter createElement('img')?

Länk till kommentar
Dela på andra webbplatser

Du har inte gett något kodexempel, så jag måste gissa lite.

 

Om du kör myImg.naturalHeight, vad får du då? Har du angett någon höjd för objektet efter createElement('img')?

 

Koden är fortfarande createElement('img') och sedan hämta höjden. Mycket enkelt.

 

Används naturalHeight? Det räcker väl med .height. Men ingen skillnad.

Länk till kommentar
Dela på andra webbplatser

Jag tycker inte heller att det är helt självklart var problemet ligger.

 

Detta fungerar alldeles utmärkt för mig:

 

var img = document.createElement('img');

img.src = 'myImage.png';

alert(img.height);

 

Jag antar därför att det inte är alls så du menar?

Länk till kommentar
Dela på andra webbplatser

Anger du, precis som Chalk säger, ingen källa så borde du rimligen inte få någon höjd heller.

Länk till kommentar
Dela på andra webbplatser

Lugna ner dig. Tack för din hjälp men sådana svar har inte här att göra och inte i forum överhuvudtaget. Hur kan du komma så snabbt till ordet "pucko" bara för att du inte förstår frågan? Jag kan inte hjälpa att du inte förstår en enkel problemställning som har med javascript att göra.

 

Min förhoppning var att någon som känner till problemet och kan mer om javascript visste svaret. Den personen kommer veta exakt vad jag talar om på grundval av det jag sagt. D v s hur hämtar man höjden på en bild skapad med createElement. Googlar man hittar man fler med samma problem men jag har inte hittat svaret än. Eller jo, kanske. Någon var inne på att hämta det när bilden skapats med onLoad satt på bilden, vilket är helt logiskt, men det vill sig inte. Så därav min chansning att fråga här.

 

Eftersom du inte tycks förstå problematiken så behöver du inte heller svara eller bli så upprörd.

 

Dålig dag verkar det som du? closedeyes.gif Det med puckor var ju ironi !! Men du verkar ta åt dig saker & ting väldigt personligt! Ber om ursäkt för det! fane.gif

onLoad = När bilden laddats klart på i dokumentet (sidan). Jag frågade dig innan om du vill ha ut dimensionerna på bilden innan hela koden körs, d.v.s innan sidan laddas men nae där fick man inget konkret svar av dig.

 

OM man ska förstå sig på ditt problem? så vill du ha ut höjden efter att bilden laddats? Då kan du använda det som Chalk postat annars får du som sagt definiera ditt problem lite mer :)

 

 

 

 

 

 

Jag tycker inte heller att det är helt självklart var problemet ligger.

 

 

Då är vi två, man förstår ju inte vad det är han är ute efter exakt! Hade han kunnat offra fem minuter extra vid sitt inlägg för att göra en bättre förklaring så hade han fått ett korrekt svar som han hade kunnat vara glad över! armskeptisk.gif

 

 

Länk till kommentar
Dela på andra webbplatser

Dålig dag verkar det som du? closedeyes.gif Det med puckor var ju ironi !!

 

 

Nu glider du långt ifrån ämnet. Knappast jag som har en dålig dag. Ursäkten mottagen. Ironi eller inte så bör du nog undvika det typen av språk om du inte ska bli missförstådd.

Länk till kommentar
Dela på andra webbplatser

Jag tycker inte heller att det är helt självklart var problemet ligger.

 

Detta fungerar alldeles utmärkt för mig:

 

var img = document.createElement('img');

img.src = 'myImage.png';

alert(img.height);

 

Jag antar därför att det inte är alls så du menar?

 

Det ser ut som min kod. :-)

 

Nja, fungerar det om du startar om webläsaren? Efter en reload går det bra men inte första laddningen av sidan efter uppstart av läsaren. Det är då problemet uppstår.

Länk till kommentar
Dela på andra webbplatser

Du kan inte bara köra createElement('img') utan något annat.

 

Självfallet inte. Det var inte heller vad jag frågade om.

Länk till kommentar
Dela på andra webbplatser

Självfallet inte. Det var inte heller vad jag frågade om.

 

Som sagt, det vore trevligt och lättare att hjälpa till om du ville ge lite mer information om det du vill ha hjälp med. Vi fumlar lite i mörkret. Använder du window.onload?

Länk till kommentar
Dela på andra webbplatser

Som sagt, det vore trevligt och lättare att hjälpa till om du ville ge lite mer information om det du vill ha hjälp med. Vi fumlar lite i mörkret. Använder du window.onload?

 

Vi? Ursäkta men jag förstår inte varför det är så svårt att förstå. Tror du gör det svårare än vad det är jag frågar efter. Se Gerhards svar.

 

Jag laddar bilden dynamiskt, vid behov, ungefär som Gerhards kodsnutt visar. Men det är samma sak om man kör det vid onload.

Länk till kommentar
Dela på andra webbplatser

Mitt förslag till lösning är att trådskaparen, tillika frågaren, själv besvarar frågan.

Han tycks vara den enda som sitter inne med nödvändig information och dessutom inte tycks besväras av frågarens attityd. Mao, (hjälp dej) "själv är bästa dräng"*

 

*gäller ej besservissrar på vippen att blotta sina (o)kunskapsluckor :crossfingers::armskeptisk:

Länk till kommentar
Dela på andra webbplatser

Hoppas någon annan kan hjälpa dig, jag ger upp med din attityd.

 

 

Chalk, det är lungt från min sida. Tror inte det är jag som sitter med attitydproblem.

Länk till kommentar
Dela på andra webbplatser

Garhard, du tycks förstå vad det är jag frågar om och som inte har en dålig dag. :-)

 

Hoppas du såg min följdfråga. Vore tacksam om du kunde hjälpa mig med ett svar.

 

Precis som din kodsnutt visade är det ett normalt förfarande för att både skapa ett element, en bild i detta fall, och sedan hämta höjden. Vad jag försöker förstå är hur man ska angripa problemet första gången man kommer in på sidan, för då fungerar det inte. Och jag förstår inte riktigt varför. Visserligen är det logiskt att bild först måste skapas, d v s att hämta den onload, men även det fallerar.

 

Som sagt, jag har sett fler som har samma problem men utan att hitta svar.

 

Min lösning nu är att jag anger givna värden för bilden vid skapandet men anger css display till none, låter den laddas, hämtar värdena, sätter rätt bredd och höjd och placerar den mitt på sidan, och sedan kör display:block. Fungerar bra, men på någon läsare som ser man ett litet hopp liksom, första gången.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...