1

デフォルトの background-image css がないページにパネルがあります。ロード時に jquery で初期イメージに設定され、10 秒間待機してから、事前に定義されたイメージからランダムなイメージをロードします。画像を切り替えることができる前と次のボタンがあります。ie6 では、最初の画像が読み込まれ、10 秒後にランダムな画像も読み込まれますが、前へ/次へを押すと背景が白くなり、画像が読み込まれません。アラートを使用すると、ロードするはずの画像の位置と URL を追跡し続けていることがわかりましたが、ロードされません。これが以下のコードです。

<script type="text/javascript">
    var facts = new Array();
    var position;
    $(document).ready(function() {
        <xsl:for-each select="$currentPage/ancestor-or-self::node[@level=1]/../node[@nodeName='Fun Fact Folder']/node">
            facts[<xsl:value-of select="position()" />] = '<xsl:value-of select="." />';
        </xsl:for-each>
        if(window.location.pathname == "/homepage.aspx" || window.location.pathname == "/") {
            $(".fun_facts_bg").css("background-image", "url(images/fun_fact_homepage.JPG)");
            setTimeout("randomFact()",10000);   
        } else {
            randomFact();
        }
    });
    function randomFact() {
        $("a.previous_button").css("display", "block");
        $("a.next_button").css("display", "block");
        position = Math.ceil(Math.random() * (facts.length - 1));
        changeFact(0);
    }
    function changeFact(increment) {
        position = checkPosition(position, increment);
        $(".fun_facts_bg").css("background-image", "url(" + facts[position] + ")");
    }
    <xsl:text disable-output-escaping="yes">&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
    function checkPosition(currentPos, increment) {
        currentPos = currentPos + increment;
        if (currentPos &gt; facts.length - 1) {
            currentPos = 1;
        } else if (currentPos &lt; 1) {
            currentPos = facts.length - 1;
        }
        return currentPos;
    }
    //--&gt;&lt;!]]&gt;</xsl:text>
</script>

<a class="previous_button" href="javascript:void(0);" onclick="changeFact(-1);">
<a class="next_button" href="javascript:void(0);" onclick="changeFact(1);">
4

1 に答える 1

0

意図した範囲内に留まることを保証するために、どこかでモジュラスを使用する必要があると確信しています。それは役立つかもしれません。

于 2010-05-15T09:04:52.630 に答える