I realize this is well-trodden territory, but I can't get any of the recommended solutions on SO or other places to work.
I have a div, with text inside, that I want to fade out to 25% on a click and then fade in to 100% on a subsequent click. It works great in all browsers except IE (I'm testing in IE8). The problem: after fading the div back in, the text in IE is all jagged and incomplete (I think the correct term may be "not anti-aliased").
I've tried all the recommended solutions I can find. The most often recommended seems to be the one I include in the example below, which is to animate the opacity (instead of using fadeTo), apply the filter:alpha(opacity) for IE, and then remove the filter in a callback once the animate to 100% has completed. I've also tried (per other suggestions):
- css background-color and no background-color (for the div)
- various ways of removing the filter (see comments in the code below)
- Making sure my div has a height, width and float:left
Here's the javascript:
$(document).ready(function(){
$("#fade_button").click(function(){
$('#test_div').animate(
{opacity:0.25},
500,
function() {
$("#test_div").css('filter','alpha(opacity=25)');
});
});
$("#unfade_button").click(function(){
$('#test_div').animate(
{opacity:1.0},
500,
function() {
$("#test_div").css('filter','none'); // tried ('filter','') and document.getElementById("#test_div").style.removeAttribute("filter")
});
});
});
Here's the css:
div#test_div
{
float:left;
width:1000px;
height:200px;
margin-left:50px;
border:1px solid black;
background-color:yellow;
}
Thanks so much for any guidance!