0

次のコードは、IE ではスライドショー バナーを停止できますが、Firefox では一時停止できません。助けてください。

ありがとう。

ジョー

以下は、バナーを表示するための私の JavaScript コードです。

var promotionTime;
var p=0;
var zone=0;

function changeBanner2(imgFile,imglink,altText){
//pause banner when mouseover
if((document.getElementById("promotionBanner").getAttribute("paused"))!=true)     {     
document.getElementById("promotionBanner").src=imgFile;
document.getElementById("promotionBanner").title=altText;
document.getElementById("bannerLink").href=imglink;
} }

function promotionBannerChanger(promotionImg,promotionLink,promotionAlt,num){
if(zone!=num){
    p=0;
    zone=num;
}

//set attribute to pause banner when mouseover
document.getElementById("promotionBanner").onmouseover =
                     function() { this.setAttribute("paused", true);}
document.getElementById("promotionBanner").onmouseout = 
                     function() { this.removeAttribute("paused");}

changeBanner2(promotionImg[p],promotionLink[p],promotionAlt[p]);
p++;
if(p>=promotionImg.length){
    p=0;
}
clearTimeout(promotionTime);
if(num==1)
    promotionTime=setTimeout("promotionBannerChanger(promotionImage1,promotionLink1,promotionAlt1,'1')",2000);
else if(num==2)
    promotionTime=setTimeout("promotionBannerChanger(promotionImage2,promotionLink2,promotionAlt2,'2')",2000);
else if(num==3)
    promotionTime=setTimeout("promotionBannerChanger(promotionImage3,promotionLink3,promotionAlt3,'3')",2000); }

ASP コード:

            <td width="480" >
            <div id="banner" oonmouseover="paused=true;" onmouseout="paused=false;">
                    <a id="bannerLink" href="archive.htm"><img title="Hot Topic" src=./promotion/1/en/c1Lagge.GIF id="promotionBanner" width="480" height="252"  border="0"></a>
            </div>
                </td>
            </table>
4

3 に答える 3

0

メソッドをクリアするには、参照変数clearTimeout()を渡す必要があります。setTimeout()あなたの場合、それは「promotionTime」になります。

例えばclearTimeout(setTimeout_variable)。あなたの場合、 `clearTimeout(promotionTime

ps http://www.w3schools.com/js/js_timing.aspで w3schools.com のリンクを確認できます。

コード例:

elements = document.getElementById('promotionBanner');
elements.onmouseover = function (promotionTime) {
    clearTimeout(promotionTime);
}
于 2011-07-19T02:42:32.533 に答える
0
document.getElementById("promotionBanner").onmouseover =
                         function() { this.setAttribute("paused", true); };
document.getElementById("promotionBanner").onmouseout = 
                         function() { this.removeAttribute("paused"); };


function changeBanner2(imgFile,imglink,altText){
    if(document.getElementById("promotionBanner").getAttribute("paused")) {
        document.getElementById("promotionBanner").src=imgFile;
        document.getElementById("promotionBanner").title=altText;
        document.getElementById("bannerLink").href=imglink;
    }
}

基本的に、ホバー時に、関連する要素である場合は、promotionBanner に「一時停止」属性を追加します。「一時停止」属性がアクティブな間にタイムアウト機能が実行された場合、バナーを進めないでください。カウンターを進めるかどうかを判断するために、changeBanner2 から true/false 値を返すこともできます。これにより、マウスが離れてバナーが再び起動したときに画像をスキップしなくなります。

于 2011-07-19T02:48:55.680 に答える