Forum Moderators: open
I want to know how I can check if an element has an opacity value (preferably, with cross browser support but maybe I can figure that out..) and if it doesn't assign it 100% (or 1...depending on the browser of course).
Is this possible? Otherwise, I have to manually assign 4 opacity values (for cross-browser crap) to every element I want to fade instead of just being able to call it on the fly.
Thanks in advance!
Although the attribute is different (hidden/block), note that at page load, Javascript is "unaware" of an element's attributes unless this attribute is applied inline.
So you have to be mindful of this; you need to set the opacity with JS at onload, or set it inline. You can then "monitor" current opacity of an element using a timer or within your fade-in/out functions.
In my code, I have a small variable that simply sets (whatever element I'm fading's) opacity. That should work all the time right?
I can post code if you need, although it just randomly started working today >.<
using any inline styling is that it slows down page load times
This may be the case if you use inline styling only, as all that extra code will make the page larger. (So on a slow connection the page would take longer to download.)
But AFAIK there's no inline styling penalty for browser rendering. CSS styles do cascade, but the styling of a particular element typically is the result of dozens of cascades anyway, adding one more inline is not a big deal.
My only concern with using any inline styling is that it slows down page load times
If this is your concern, a solution from those links is to use the window.onload event to set attributes:
window.onload=function() { setStyles(); }
function setStyles() {
if document.getElementById('example_div')) {
document.getElementById('example_div').style.display='block';
}
}
Except you'd set initial opacity. In either case - inline or set at onload - JS will now be "aware" of the element's style.
This is better anyway, allows you to put it in an external file and cleans up inline markup.