2012-06-26 33 views
0

當前,首頁文本僅通過啓動滑出的點擊功能顯示。將現有的jQuery從點擊功能轉換爲延遲自動顯示

我想要做的是改變它,以便它不需要點擊來顯示。我希望在頁面加載大約3秒後顯示文本(淡入)。

這是我目前: -

$('.introbox span').replaceWith(function(){ 

return '\ 
    <div class="slideOutTip '+$(this).attr('class')+'" style="'+$(this).attr('style')+'">\ 
     \ 
     <div class="tipVisible">\ 
      <div class="tipIcon"><div class="plusIcon"></div></div>\ 
      <span class="tipTitle">'+$(this).attr('title')+'</span>\ 
     </div>\ 
     \ 
     <div class="slideOutContent">\ 
      <p>'+$(this).html()+'</p>\ 
     </div>\ 
    </div>'; 
}); 

這是當「plusIcon」被點擊,該文本滑出,是可見的。

的點擊功能是聽出來......

$('.tipVisible').bind('click',function(){ 
    var tip = $(this).parent(); 

所以我假定這就是我需要的必要轉換使用自動加載帶有也許setDelay和淡入雖然我不100%。

請有人建議如何改變這個可以改變不使用點擊,但延遲後自動顯示?提前致謝。

試圖在jsfiddle中添加代碼,如果它更容易看到我正在嘗試做什麼 - 謝謝。

+0

點擊處理函數正文的其餘部分是什麼? – Angel

+0

這裏是jsfiddle的代碼 - http://jsfiddle.net/zigojacko/sXWag/2/當粉紅色的框被點擊時,文本滑出(但由於某種原因,它不是在jsfiddle)。希望這有些用處?謝謝 – zigojacko

回答

0

很簡單:讓你在做什麼.tipVisible.click,然後設置一個window.setTimeout(yourFunction, 3000);

@comment功能:您的JS已經是相當複雜的,我可能會重組和重新編碼的一切,所以我只能給你一個提示它是如何實現的(當我將它添加到你的小提琴中時沒有馬上工作,但我有點懶得找到那裏的問題)。

var animate = function(obj) { 
     var tip = obj ? $(obj).parent() : $(".tipVisible").parent(); 

     /* If a open/close animation is in progress, exit the function */ 
     if (tip.is(':animated')) return false; 

     if (tip.find('.slideOutContent').css('display') == 'none') { 
      tip.trigger('slideOut'); 
     } 
     else tip.trigger('slideIn'); 
    } 

    window.setTimeout(animate, 3000); 

    $('.tipVisible').bind('click', function() { 
     animate(this); 
    }); 

編輯:嗯this正在做的事情,至少,現在你必須弄清楚需要做的時間和方式是什麼;)

PS:您使用jQuery的,但裝MooTools的框架... Mootools的不知道$(document).ready()

+0

嘿西蒙,謝謝你的回覆。我嘗試了類似的方法,但是它似乎沒有做任何事情。 $('。tipVisible')。click(function(){setTimeout(「$(this).parent()」,1500);}); – zigojacko

+0

$(this).parent()不是函數,您必須爲setTimeout提供函數名稱。你可以發佈綁定的內容('click',function(){?所以我可以想出如何幫助你。 – Angel

+0

請看看張貼的jsfiddle(上面) - 讓我知道如果這不能幫助你我謝謝 – zigojacko