Welcome to WebmasterWorld Guest from 54.196.232.162

Forum Moderators: open

Message Too Old, No Replies

Check if an opacity value is set?

     
8:36 am on Aug 17, 2009 (gmt 0)

Junior Member

5+ Year Member

joined:Jan 23, 2008
posts: 72
votes: 0


I'm working with a fade script I built, that fades elements onclick via their id.

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!

1:14 pm on Aug 17, 2009 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 7, 2004
posts:130
votes: 0


Make sure it has its opacity set.
Attach a class to the elements.
3:56 pm on Aug 17, 2009 (gmt 0)

Senior Member

WebmasterWorld Senior Member rocknbil is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:Nov 28, 2004
posts:7999
votes: 0


First, review this [webmasterworld.com] and this [webmasterworld.com] thread.

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.

11:53 am on Aug 18, 2009 (gmt 0)

Junior Member

5+ Year Member

joined:Jan 23, 2008
posts:72
votes: 0


Thanks guys. My only concern with using any inline styling is that it slows down page load times (actually, showing of the final page times..) if I remember correctly. From what I've heard the browser first reads any external styles and then applies any inline ones correct?

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 >.<

1:39 pm on Aug 18, 2009 (gmt 0)

Senior Member

WebmasterWorld Senior Member whoisgregg is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:Dec 9, 2003
posts:3416
votes: 0


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.

5:27 pm on Aug 18, 2009 (gmt 0)

Senior Member

WebmasterWorld Senior Member rocknbil is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:Nov 28, 2004
posts:7999
votes: 0


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.

 

Join The Conversation

Moderators and Top Contributors

Hot Threads This Week

Featured Threads

Free SEO Tools

Hire Expert Members