I'm very new to javascript (started messing with it today).
I'm trying to change the height of an element (a div) called 'bar'. The bar will be part of a chart.
I have no problem hooking up a button to a function which changes the height of the bar. All is working fine, except the bar is growing in the downward direction instead of upward like i wanted.
My solution is to increase the 'height' property, and then decrease the 'top' property by the height increase amount.
So I want to do something like:
bar.style.height = newHeight;
bar.style.top = bar.style.top - newHeight;
And that should increase the height upward. The problem is that I don't know how to get the current value of bar.style.top
In firebug, if I look at the styles in the html tab, the bar has a top of
top: 122px;
but in the watch list for bar, all i see is the value "" (empty string) for bar.style.top. I guess my question is - why don't these values match, and how can i get to the value i want?
And one other thing while I'm asking about this stuff:
I have some CSS for webkit that looks like:
-webkit-animation-timing-function: ease-in-out;
for example. I notice in the watch list for bar, there is no bar.style.-webkit-animation-timeing-function. How do I get at and change values like that?
I normally use asp.net, I was hoping there was something simi开发者_运维知识库lar to
bar.Style["property"] = "value";
Have I missed something here?
- Please use
document.getElementById('bar')
instead of justbar
, becausebar
could mean a lot of different things. - The
style
property allows you to override any style but only gives you style set by a<div style="...">
attribute. See http://www.quirksmode.org/dom/getstyles.html on how to get the current style.
Use bar.style.WebkitAnimationTimingFunction
to access the CSS property via JavaScript.
http://www.codestyle.org/javascript/dom/css/CSS3ExtensionStyles.shtml
Since you're going for a bar chart, I would suggest styling a bit differently using "bottom" instead of "top". Then, you just have to change the height. Something like the following:
<div style="position: relative; width: 500px; height: 300px; border: 1px solid black;">
<div style="position: absolute; bottom: 10px; left: 10px; width: 20px; height: 40px; background-color: red;"></div>
<div style="position: absolute; bottom: 10px; left: 40px; width: 20px; height: 60px; background-color: blue;"></div>
<div style="position: absolute; bottom: 10px; left: 70px; width: 20px; height: 80px; background-color: green;"></div>
</div>
精彩评论