2012-06-01 37 views
1

您好我正在使用jQuery循環插件幻燈片,並且我想添加一個事件,當某張幻燈片是活動的。檢測與javascript動態簽名的css樣式/屬性

<div style="position: absolute; top: 0px; z-index: 9; display: none; opacity: 0;"> 

當圖像是活動的,或者是當前幻燈片,不透明度變化到1,並且所述顯示器:該循環插件通過添加和在一定的div等除去圖像的不透明度,從而實現這一點「塊」。以說

現在我已經使用不同的方法試過了,從檢測div的css樣式/屬性來指定一個類的div,然後做一些事情:

if($("#slideshow > div:nth-child(2)").hasClass('fadeOut') == 1) { 
    alert('Hello'); 
} 

if($("#slideshow > div:nth-child(2)").css('opacity') == 1) { 
    alert('Hello'); 
} 

甚至

if($(".fadeOut").css('opacity') == 1) { 
    alert('Hello'); 
} 

的問題是,JS未檢測到「不透明度:1」的風格時,它的使用Cycle插件動態應用。另一方面,當樣式在css文件中內聯應用時,它確實起作用,當然,這不起作用,因爲事件觸發了頁面加載的時間,當我想要的事件是在事件觸發時只有當第二個圖像是活動圖像時,換句話說,當它的「不透明度」設置爲1或「顯示」來阻止,並且似乎無法弄清楚。任何幫助表示讚賞。

回答

0

您應該可以通過所有方法確定元素的當前狀態。我想這個問題是在正確的時間查找它們的。

Just:您無法檢測樣式屬性或類屬性何時更改。唯一的方法就是聽取DOMModification events - 一種相當難看的方式。

所以:使用另一個插件。當他們改變圖像時,會有幻燈片插件觸發元素上的[自定義]事件。

+0

http://webcache.googleusercontent.com/search?q=cache:http://jquery.malsup.com/cycle – Bergi

+1

謝謝。看起來''之前'或'後'回調將工作。此處詳細介紹的選項:http://webcache.googleusercontent.com/search?q=cache:ICFMJs4FYRYJ:jquery.malsup.com/cycle/options.html&hl=zh-CN&lr=lang_en%7Clang_pt&gl=br&tbs=lr:lang_1en%7Clang_1pt&prmd=imvns&strip= 1 – bfavaretto

+0

是的,[腳本](http://malsup.github.com/jquery.cycle.all.js)似乎包含大量回調,但沒有事件觸發。 – Bergi

0

會是這樣的工作嗎?

HTML

<p></p> 
<div class="slideshow"> 
    <img id="1" src="http://davealger.info/i/1.jpg" /> 
    <img id="2" src="http://davealger.info/i/2.bmp" /> 
    <img id="3" src="http://davealger.info/i/3.png" /> 
</div> 

CSS

.slideshow { position:relative; } 
.slideshow img { position:absolute; left:0; top:0; }​ 

JS

$(function(){ 
    $('.slideshow img:gt(0)').hide(); 
    setInterval(function(){ 
     var me=$('.slideshow :first-child'); 

     if (me.attr('id') === '1') 
      $("p:last").html('getting ready to load slide 2'); 
     else 
      $("p:last").html(''); 

     me.fadeOut(2000).next('img').fadeIn(2000).end().appendTo('.slideshow'); 
    }, 4000); 
});​ 

演示鏈接如下

http://jsfiddle.net/DaveAlger/CWkYt/

+0

這很有趣,但由於html的設置方式,這不起作用。不管怎麼說,還是要謝謝你。 – antigaprime

+0

實際上,它的確如我所願,但如果我想使用它,需要進行一些調整。我會讓你知道,如果/當它的工作! – antigaprime

+0

酷 - 我知道這不是很理想,所以如果你能找到更好的解決方案,那麼請返回並與我們分享。謝謝 – DaveAlger