Vra

Ek laai data van eksterne html-lêers binne my domein in 'n div op my webblad deur 'n laai-inhoudmetode in jQuery te gebruik.Ek haal die div uit die nuwe bladsy terwyl ek die div in die huidige bladsy wegsteek deur dit uit te verdof en die nuwe een in te verdof.Daar is 'n png-beeld in beide hierdie divs en dit skep aaklige swart kolle in IE, werk goed in ander blaaiers, maar as gevolg van IE se onvermoë om veelvuldige filters te verwerk, maak dit 'n gemors.

Ek het probeer om die eenheid-png-oplossing te gebruik sonder sukses, het iemand enige oplossings of idees om te help om my png's mooi te laat lyk tydens hierdie oorgang?

i46.tinypic.com/t9dtvr.jpg hierdie is 'n kiekie van die probleem, cheers

het ook ontdek dat die png wat oorspronklik op die bladsy is (voordat enigiets nuuts gelaai word) perfek in- en uitvervaag deur die eenheid-png-oplossing te gebruik, maar goed wat in en dan weer uit eksterne lêers laai nie.Ek het ook die oplossing by daardie bladsye gevoeg, maar dit werk ook nie.

Was dit nuttig?

Oplossing

Daar is geen 100% oplossing vir die probleem. As jy 'n semi deursigtige areas van 'n PNG, sal enige filters toegepas dié gebiede ten volle ondeursigtig lewer. Die meeste vervaag oorgange wat ek gesien het die filter toe te pas tydens die vervaag, verwyder dan die filter na die tyd. Dit beteken dat jy sal die aliased gebiede sien terwyl die beeld vervaag in, maar dit lyk goed aan die einde van die oorgang.

Nog 'n oplossing kan gebruik word vir dele van 'n bladsy wat staties is: As die agtergrond agter die beeld is staties jy kan 'n beeld van dié agtergrond te skep en gebruik dit as die agtergrond beeld van jou img tag. Dan, vervaag in en uit sal werk net fyn. As die agtergrond beeld van 'n element van die png beeld is reeds, sal jy nodig het om dit in 'n houer geplaas die ondeursigtig agtergrond beeld stel met en vervaag dat in plaas.

As jy vervaag is in die voorkant van die teks of dinamiese inhoud, daar is nie veel wat jy kan doen.


Edit: Die volgende bladsy lyk na 'n oplossing met betrekking tot die ou AlphaImageLoader filter en 'n ouer div met die ondeursigtigheid filter stel het:

http://blog.mediaandme.be/?ref=17

Ander wenke

Ek het 'n soortgelyke probleem met vervaag in elemente met 'n deursigtige PNG-agtergrond. Na 'n bietjie navorsing het ek gevind dat hierdie bladsy, waar aan die einde wat jy 'n oplossing sal vind, wat my gehelp:

http://www.sitepoint.com/forums/showthread.php?590295-jQuery-fadein-fadeout-of-transparent-png-in-IE7-and-Chrome

Die gebruiker dan.tello bykomende filters (CSS) gebruik in Internet Explorer:

.item img {
  background: transparent;
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE8 */   
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);   /* IE6 & 7 */      
  zoom: 1; }

EDIT: Ek het gekom om te plaas dat dit 'n hopelose, maar daar is eintlik 'n paar mense beskryf ompaaie. Kyk of dit help:

http://groups.google com / groep / jQuery-dev / browse_thread / draad / 1f693c5f4e8ea650 / f3bc9685ccb40e70? PLI = 1 http://blogs.msdn.com/ie/archive/ 2005/04/26 / 412263.aspx

Ek het 'n soortgelyke probleem gehad.Ek moes een van verskeie deursigtige PNG's op my bladsy laai op grond van gebruikersinvoer, en laat dit vervaag.Ek het uiteindelik Drew Diller se Late PNG-oplossing gebruik (bedoel vir IE6).Om dokumentgereed te bel werk natuurlik nie vir dinamiese inhoud nie, so hier is hoe my skrif lyk:

html = '<img src="selectedimage.png" />';
$('#overlay').html(html);
DD_belatedPNG.fix('#overlay img');
$('#overlay img').hide().fadeIn(1200);

Dit werk uitstekend in IE7, maar ek het nog nie IE8 getoets nie.

Kan jy beeld die png (of die element wat vervaag) 'n background-color waarde anders as deursigtig gee? Wat meestal hels.

@jdln - ek is nie seker of dit is wat sy gaan vir en verduidelik dit verkeerd, of indien dit is 'n ander oplossing, maar dit het vir my gesê:

  1. Pas die deursigtige PNG om 'n wrapper element
  2. Pas jou vervaag tot 'n element BINNE die omslag. Dit lyk of die omslag element dwing om sowel vertoon.
  3. Steek die omslag element, wys die inhoud element met behulp van jQuery vervaag

Byvoorbeeld:

/* HTML: */
<div id="wrapper">
    <div id="content">I use this for a drop-down menu with a transparent PNG shadow for lte IE8 browsers
    </div>
</div>

/* CSS */
#wrapper{margin-left:-9999px;}

/* jQuery */  
$('#content').hide().fadeIn();

Ek gebruik .hide () om seker te maak dat die effek begin van die begin af elke keer, as ek hierdie roeping van 'n hover gebeurtenis. Hoop dit help!

al wat jy hoef te doen is om die omhulsel (styl) om die element (#outer (het agtergrond png)) vervaag die ondeursigtigheid tot 1.0 in js lêer. werk baie goed!

ex:

JS lêer:

$('#style').fadeIn('slow');

css lêer:

#style
{
    margin:0;
    background:transparent;
    float:left;
}
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top