2016-09-19 12 views
1

私は、ブートストラップコラプスを使用して、拡大縮小コンテンツを作成している状況があります。クリック時のトグル

私は、下向き矢印の背景イメージを持つmy-btnというクラスを持っています。このボタンをクリックすると、openというクラスを追加したいと思います。

.my-btn{ 
 
    background-image:url(../img/template-1/read-more-closed.png); 
 
       background-repeat:no-repeat; 
 
       background-position:center; 
 
       width:50px; 
 
       height:50px; 
 
\t \t \t \t margin-bottom:50px; 
 
    } 
 

 
    .open{ 
 
\t background-image:url(../img/template-1/read-more-open.png); 
 
       background-repeat:no-repeat; 
 
       background-position:center; 
 
       width:50px; 
 
       height:50px; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<button class="btn my-btn" type="button" data-toggle="collapse" data-target="#collapse4" 
 
        aria-expanded="false" aria-controls="collapseExample">&nbsp;</button>

私-BTN後にオープンクラスを追加することで、矢印が変更された...しかし、どのように私は、CSS/JSを使用して、これをacheiveことができますか?

UPDATE

私は

<script> 

$(document).ready(function(){ 
$('.my-btn').on('click', function(){ 
    $(this).toggleClass('open'); 
}); 
}); 
      </script> 

を試みたがトグルに、ブートストラップが崩壊したクラスを追加しますが、私のコードは無視されます。

+0

使用jqueryのは、.toggleClass() –

答えて

1

.my-btn{ 
 
background-image:url(../img/template-1/read-more-closed.png); 
 
      background-repeat:no-repeat; 
 
      background-position:center; 
 
      width:50px; 
 
      height:50px; 
 
      margin-bottom:50px; 
 
} 
 

 
.open{ 
 
    background-image:url(../img/template-1/read-more-open.png); 
 
      background-repeat:no-repeat; 
 
      background-position:center; 
 
      width:50px; 
 
      height:50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<button class="btn my-btn" type="button" data-toggle="collapse" data-target="#collapse4" 
 
       aria-expanded="false" aria-controls="collapseExample" onclick="this.classList.toggle('open')">&nbsp;</button>

重要な部分がonclick="this.classList.toggle('open')"あるが、このJavaScriptコードは "切り替わります開いている "クラス(存在する場合は削除するか、存在しない場合は追加します)。

すべてのブラウザでclassList.toggle機能がサポートされているわけではありません。すべてのブラウザをサポートしたい場合は、ポリフィルを使用する必要があります。

+0

は、これは非常にうまく動作しますが、私は、トグルの使用と一見単純なjQueryの実装は()やった理由を推測を取るためにあなたを求めることができますうまくいかない? –

+0

jQueryでも動作します。 https://jsfiddle.net/0jr7v0Ln/ jQueryを使用することを知らなかったので、私はバニラのJavaScriptソリューションを提案しました。 – Titus

+0

いくつかのわかりにくい理由から、私はこれを動作させることができません。 –

0

あなたはtoggleClass() functionを使用することができます:あなたはこのような何か行うことができます

$('.my-btn').on('click', function() { 
    $(this).toggleClass('open'); 
}); 
1

あなたが迅速かつ簡単にあなたのボタンがクリックされた後にクラスを追加/削除用トグルクラス機能と組み合わせるクリック機能にを使用してこれを達成することができます。

作業コードについては下記を参照してください。

$('.btn').on('click', function() { 
 
    $(this).toggleClass('open'); 
 
});
.my-btn{ 
 
    background-image:url(../img/template-1/read-more-closed.png); 
 
       background-repeat:no-repeat; 
 
       background-position:center; 
 
       width:50px; 
 
       height:50px; 
 
\t \t \t \t margin-bottom:50px; 
 
    } 
 

 
    .open{ 
 
\t background-image:url(../img/template-1/read-more-open.png); 
 
       background-repeat:no-repeat; 
 
       background-position:center; 
 
       width:50px; 
 
       height:50px; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<button class="btn my-btn" type="button" data-toggle="collapse" data-target="#collapse4" 
 
        aria-expanded="false" aria-controls="collapseExample">&nbsp;</button>

関連する問題