0

IE6のPNG修正にこのスクリプトを使用しています。

要素のクローンを作成すると、適切なクラスがアタッチされていても、クローンされたPNGが修正されておらず、修正を再適用できないことに気付きました。jqueryを使用して要素のクローンを作成していますが、さまざまな理由でclone(false、false)を使用する必要があります...クローンを追加した後、新しい要素に修正を適用する方法はありますか?DD_belatedPNG.fix( "。pngfix")を再度呼び出すと、機能しないようです。

4

2 に答える 2

2

png修正を使用するのではなく、IEでサポートされている透明なPNG(8ビットとアルファのパレット)を使用してください。Macを使用している場合は、ImageAlphaがこれを行います。それ以外の場合は、pngquant(ImageAlphaのベース)を使用これを行うことができます。

この問題を解決するためにJavascript/IE Filterタイプのものは必要ないため、回避する必要があります。

于 2012-08-05T13:51:20.443 に答える
1

このソリューションはimg要素用です

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
    body {
        background:#0000FF;
    }
</style>
<script type="text/javascript" language="javascript" src="jquery.min.js"></script>
<script type="text/javascript" language="javascript" src="DD_belatedPNG_0.0.8a.js"></script>
<script>
    $(document).ready(function () {
        function imageClickHandler () {
            var $newA = $("<a></a>")
            var $newImg = $(this).find('img').clone(false,false);
            $newImg.attr("style","");
            $newA.append($newImg);

            $newA.click(imageClickHandler);
            $(this).parent().append($newA);
            DD_belatedPNG.fix('img');
        }

        DD_belatedPNG.fix('img');
        $('a').click(imageClickHandler);

    });
</script>
</head>
<body>
<a><img src="image.png" /></a>
</body>
</html>

このソリューションを編集 するのはbg要素用です

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
        body {
            background:#0000FF;
        }

        a {
            display:inline-block;
            //display:inline;
            zoom:1;
            width:512px;
            height:512px;
            background:url(image.png) no-repeat center center;
            text-decoration:none;
            outline:none;
        }
    </style>
    <script type="text/javascript" language="javascript" src="jquery.min.js"></script>
    <script type="text/javascript" language="javascript" src="DD_belatedPNG_0.0.8a.js"></script>
    <script>
        $(document).ready(function () {
            function imageClickHandler () {
                var $newA = $(this).clone(false,false);
                $newA.removeAttr("style isImg vmlInitiated vmlBg");
                $newA.click(imageClickHandler);
                $(this).parent().append($newA);
                DD_belatedPNG.fix('a');
            }

            DD_belatedPNG.fix('a');
            $('a').click(imageClickHandler);

        });
    </script>
</head>
<body>
    <a></a>
</body>
</html>
于 2012-08-04T12:02:12.257 に答える