2013-01-24 107 views
0

我有一個適用於滑塊的腳本。但現在我需要像這樣的HTML旋轉箭頭圖像:切換箭頭圖像切換隱藏div jQuery腳本

http://jsfiddle.net/nicorellius/gsDVS/

我使用的圖像是目前類,byline背景圖像。

jQuery的腳本是在這裏:

// expanding, collapsing div script 
$(document).ready(function() { 
    $(".toggle-content").hide(); 
    $(".byline").click(function() { 
     //$(this).attr("id", "down-arrow"); 
     var $next = $(this).next(".toggle-content"); 
     $(".toggle-content").not($next).slideUp(); 
     $next.slideToggle(500); 
     //$next.attr("id", ""); 
    }); 
}); 

這個工程來改變圖像從左下來,例如,從iddown-arrow。但是當我點擊關閉滑塊時,圖像保持爲左側。我對如何重寫這個腳本來改變圖像感到困惑。圖像目前是分開的,一個朝向左側,另一個朝下。我應該使用一個圖像精靈,但我只是想先弄清楚這一點。

我讀這篇文章,這是一個好主意,但也許有點太適合我複雜,現在實現:

Rotate image on toggle with jQuery

感謝。

編輯

我要指出,我在這裏的問題頁面比撥弄我發現有一點不同:

<div class="byline"> 
    <h4 class="crp-h">Analyze</h4> 
    <p class="crp-p">Things are written here</p> 
</div> 

<div class="toggle-content"> 
    <ul class="crp-list"> 
     <li>Statistical</li> 
     <li>Robust</li> 
    </ul> 
</div> 

感謝一招的小馬......這件事幾乎是除了工作一件事。只有當點擊thisdiv時,旋轉才起作用。當non-thisdiv點擊其他div小號躲,但圖像保持不旋轉:

.byline{ 
    position:relative;  /* required */ 
}  


.byline:after { 
    transform: rotate(-90deg); 
    content: '';   /* required */ 
    position:absolute;  /* required */ 
    width: 14px;   /* required, width of your arrow */ 
    height: 14px;   /* required, height of your arrow */ 
    right: -20px;   /* required, negative width + some padding */ 
    top:0;     /* required */ 
    background: url('your/arrow/image/here.png') no-repeat; 
} 

.byline.exp:after { 
    transform: rotate(0deg); 
} 

新的jQuery的是在這裏:

// expanding, collapsing div script 
$(document).ready(function() { 
    $(".toggle-content").hide(); 
    $(".byline").click(function() { 
     var $next = $(this).next(".toggle-content"); 
     $(".toggle-content").not($next).slideUp(); 
     $next.slideToggle(500); 
     $(this).toggleClass('exp'); 
    }); 
}); 

小提琴顯示出這是在這裏:

http://jsfiddle.net/nicorellius/7AYjj/

回答

1

將箭頭圖形放在僞元素上,如:afterand transform it,根據您的扳機連桿上切換一個類:

.byline:after{ 
    transform: rotate(-90deg); 
    /* arrow as background here */ 
} 

.byline.exp:after{ 
    transform: rotate(0deg); 
} 

在點擊事件添加:

$(this).toggleClass('exp'); 
+0

我看到了小提琴的工作,這是有道理的。另外,當我實現它時,我的滑塊/滑塊工作正常,並且我在Firebug中看到班級'byline exp',所以我知道它有點工作......但是darn圖像沒有顯示出來。我確認了我的樣式表中的路徑很好,並且圖像位於服務器上...基於現有的格式,我沒有使用您使用的「位置」值。這可能會導致我的問題? – nicorellius

+0

您是否添加了我的示例中的所有樣式? ':在'要求'內容之後''''以及所有...... –

+0

是的,我確實......我只是編輯了我的問題。我的HTML與小提琴不太一樣......我不熟悉後僞類,所以我想我會讀一些......'content:'是我需要的唯一依賴嗎? – nicorellius