kan man på något sätt spara och påverka "css-style-variabler" i javascript Utöver att jag ser ett direkt fel i koden (det ska vara dubbla likamedtecken när man gör jämförelser) så begriper jag inte riktigt vad du menar. Vad vill du åstadkomma? Förstår jag dig rätt om det är så att du vill skapa en pekare till antingen style.height eller style.width i din ifsats, och sedan sätta värdena på style.height/width med hjälp av din pekare? Så här ser funktionen ut nu + en likadan för brädd För ens lite mer avancerat javaskriptande rekommenderar jag jquery: http://www.jquery.com. Helt överlägset. Tillräckligt litet bibliotek för att orka använda det, men väldigt kompetent. Klarar det mesta ok löst..peka på css-style egenskaper
jag vill i en funktion antingen på verka höjd eller brädd
if(vad = "h")
var divStyleToChange = document.getElementById(ID).style.height;
else
var divStyleToChange = document.getElementById(ID).style.width;
divStyleSize = nyStorlek
de övre funkar inte men, är de någon som har något tips eller vet om det ens funkar.
Eller måste jag kanske fortsätta köra på 2 olika funktioner för brädd och höjd..
MVH
FredrikSv: spara css-style egenskaper i vaiabler
Om jag utgår ifrån att jag tolkat dig rätt så är mitt korta svar: Det går inte, såvitt jag minns rätt så klarar inte javascript sådana roliga saker. Mitt långa svar däremot.. :)
Du skulle kunna skapa dig en set-funktion för värdet: function(v){obj.style.height_eller_width=v;}
Ungefärlig kod: (Med reservation för att den troligtvis fungerar)
var obj = document.getElementById(ID);
var pset = null;
if(vad == "h")
pset = function(v){obj.style.height=v;};
else
pset = function(v){obj.style.width=v;};
pset(nyStorlek);
Som du ser så skapas det olika setfunktioner beroende på villkoret i if-satsen, men de används likadant.Sv:spara css-style egenskaper i vaiabler
function setHeight() {
var totalHeight = tmpImg.height + 20;
if(imgDiv.offsetHeight > totalHeight) {
if(imgDiv.offsetHeight > totalHeight + 10) {
imgDiv.style.height = imgDiv.offsetHeight - 10 + 'px';
centerElement();
setTimeout("setHeight)", 20);
}
else {
imgDiv.style.height = totalHeight + 'px';
centerElement();
setWidth();
}
}
else if(imgDiv.offsetHeight < totalHeight) {
if(imgDiv.offsetHeight < totalHeight - 10) {
imgDiv.style.height = imgDiv.offsetHeight + 10 + 'px';
centerElement();
setTimeout("setHeight()", 20);
}
else {
imgDiv.style.height = totalHeight + 'px';
centerElement();
setWidth();
}
}
else {
setWidth();
}
}
sen skulle ja nu medans ja håller på att snygga till koden göra om det till en funktion som som skapar en pekare till vad det är som ska ändras. den funktionen skulle då ta emot
vad=height_eller_width
storlek
divId
som jag ser de så gör inte din kod det varken kortare eller smidigare utan jag hade velat ha den där pekarn. Men tack för ditt svarSv: spara css-style egenskaper i vaiabler
Sv: peka på css-style egenskaper
ifall de är någon annant som undrar över nå likande så klistrar jag in koden--
function setSize(what, sizeToBe, divId, center) {
var divToSet = document.getElementById(divId);
var isWhat= (what == "height");
var intervalID = setInterval(f,20);
function f(){
var divOffsetSize = isWhat ? divToSet.offsetHeight : divToSet.offsetWidth;
if(divOffsetSize<sizeToBe - 10){
divToSet.style[what]= divOffsetSize+10+'px';
if(center)
centerElement();
}
else if(divOffsetSize>sizeToBe+10){
divToSet.style[what]= divOffsetSize-10+'px';
if(center)
centerElement();
}
else{
clearInterval(intervalID);
divToSet.style[what]= sizeToBe+'px';
if(center)
centerElement();
}
}
}