Hallo,
Ik heb een website voor iemand gemaakt, waar het menu on the fly wordt vervangen (dmv jquery) voor een plaatje met een bepaald font wat met php GD gerenderd wordt.
Dit:
Wordt dan via javascript omgezet naar
Iets wat prima werkt in de browsers opera, safari, firefox, internet explorer 7 en internet explorer 6, ware het niet dat IE6 niet met transparante png bestanden kan omgaan.
Nu zijn er diverse 'fixen' voor in de omloop, mijn idee is gebasseerd op pngfix.
Het idee daarvan is de <img> tag te vervangen voor een span met de juiste hoogte en breedte, en deze via de AlphaImageLoader als achtergrond de juiste png te geven. Dit werkt prima wanneer de objecten niet 'on the fly' gemaakt worden.
Daarom heb ik hem wat aangepast voor mezelf, zodat ik wanneer IE6 gebruikt wordt zelf de objecten vervang.
Dit werkt ook, maar, hij doet alleen maar het eerste object, de tweede objecten doet hij niet, ik heb een vermoeden dat dat komt door de dubbele semicolon (
die hij achter elke AlphaImageLoader, dit doet hij voor het eerste object niet, maar voor elk opvolgend object wel? (Waarom geen idee, er staat niets over in mij code.)
Afijn, mischien licht het ergens anders aan, deze vraag leg ik bij jullie neer.
De code om de plaatjes te vervangen door een span met de juiste achtergrond is trouwens deze.
Die alerten heb ik om te testen of alles wel goed gaat. Maar zoals je ziet bij de alert van de html van de complete ul zet hij er bij de 2e en opvolgende li elementen in de span een dubbele semicolon neer.
Ik hoop dat iemand me kan helpen.
Een plaatje van de 'final' alert.
http://localhostr.com/files/c8b705/Picture+1.png
En voor ik het vergeet, een url naar de betreffende site.
http://igo2.nl/67f17a
Ik heb een website voor iemand gemaakt, waar het menu on the fly wordt vervangen (dmv jquery) voor een plaatje met een bepaald font wat met php GD gerenderd wordt.
Dit:
code:
1
| <li><a href="#">Blaat</a></li> |
Wordt dan via javascript omgezet naar
code:
1
| <li><a href="#"><img src="renderPic?tekst=Blaat" /></a></li> |
Iets wat prima werkt in de browsers opera, safari, firefox, internet explorer 7 en internet explorer 6, ware het niet dat IE6 niet met transparante png bestanden kan omgaan.
Nu zijn er diverse 'fixen' voor in de omloop, mijn idee is gebasseerd op pngfix.
Het idee daarvan is de <img> tag te vervangen voor een span met de juiste hoogte en breedte, en deze via de AlphaImageLoader als achtergrond de juiste png te geven. Dit werkt prima wanneer de objecten niet 'on the fly' gemaakt worden.
Daarom heb ik hem wat aangepast voor mezelf, zodat ik wanneer IE6 gebruikt wordt zelf de objecten vervang.
Dit werkt ook, maar, hij doet alleen maar het eerste object, de tweede objecten doet hij niet, ik heb een vermoeden dat dat komt door de dubbele semicolon (
Afijn, mischien licht het ergens anders aan, deze vraag leg ik bij jullie neer.
De code om de plaatjes te vervangen door een span met de juiste achtergrond is trouwens deze.
JavaScript:
1
2
3
4
5
6
7
8
9
10
| $(document).ready(function(){ size = $("#menu ul li a").css("fontSize"); $("#menu ul li a").gdText(); if(doIEFIX) { //Crappy IE6 browser used, fix it jQuery("#menu ul li a").IE6FIX(); alert(jQuery("#menu ul").html()); } }); |
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| jQuery.fn.IE6FIX = function() { return this.each(function() { var newString = ''; for(i = 0; i<this.childNodes.length; i++) { newString += '<span style="display: inline-block; width: ' + this.childNodes[i].width + 'px; height:' + this.childNodes[i].height + 'px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.childNodes[i].src + '\');"></span>'; } alert(newString); jQuery(this).attr("onmouseover","return false;"); jQuery(this).attr("onmouseout","return false;"); jQuery(this).html(newString); }); } |
Die alerten heb ik om te testen of alles wel goed gaat. Maar zoals je ziet bij de alert van de html van de complete ul zet hij er bij de 2e en opvolgende li elementen in de span een dubbele semicolon neer.
Ik hoop dat iemand me kan helpen.
Een plaatje van de 'final' alert.
http://localhostr.com/files/c8b705/Picture+1.png
En voor ik het vergeet, een url naar de betreffende site.
http://igo2.nl/67f17a
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF