Proto.io は、CSS を使用したオン/オフ スイッチ ボタンの非常に優れたソリューションを提供します。ただし、IE8では機能しません。 http://proto.io/freebies/onoff/
jsで修正する方法を知っている人はいますか?または、IE8で動作することをお勧めするオン/オフスイッチボタンソリューションは他にありますか?
Proto.io は、CSS を使用したオン/オフ スイッチ ボタンの非常に優れたソリューションを提供します。ただし、IE8では機能しません。 http://proto.io/freebies/onoff/
jsで修正する方法を知っている人はいますか?または、IE8で動作することをお勧めするオン/オフスイッチボタンソリューションは他にありますか?
Proto.io フリップスイッチをご利用いただきありがとうございます:)
JavaScript を使用して IE8 のサポートを有効にする方法は次のとおりです。
あなたがする必要があるのは、「onoffswitch-checked」クラスに応じてフリップスイッチの状態を変更するcssを追加し、フリップスイッチがクリックされるたびにjavascriptを使用してそのクラスを切り替えることです。
まず、CSS に次の 2 つの宣言を追加します。
.onoffswitch-checked .onoffswitch-inner {
margin-left: 0;
}
.onoffswitch-checked .onoffswitch-switch {
right: 0px;
}
次に、チェックボックスがチェックされているかどうかに応じて、javascript を使用して「onoffswitch-checked」クラスを切り替えます。
$(document).ready(function(){
$('.onoffswitch-label').click(function(){
$(this).parent().toggleClass('onoffswitch-checked');
});
});
また、「デフォルトでスイッチをオンにする」オプションを選択した場合は、必ず「onoffswitch-checked」クラスを html に追加してください。
<div class="onoffswitch onoffswitch-checked">
ノート:
ラベルの click() の代わりにチェックボックスの change() イベントを使用して、これを実現する少しクリーンな方法がありますが、残念ながら IE8 は、チェックボックスの代わりにラベルがクリックされたときに change() イベントをトリガーしません。
親ではなくチェックボックスでチェックされたクラスをトリガーする方が良いでしょうが、IE8はクラスが変更されたときに隣接する兄弟CSS( + )を更新しません:(
Proto.io ページには、「...IE8 は CSS :checked セレクターをサポートしていません」と記載されているため、サポートされていません。これは、これを修正するために IE 用の polyfill を含めることで動作させることができることを意味します (例: selectivizr ) 。
編集: Proto.io ページには、(ブラウザー アイコン リストの IE ツールチップを介して) IE8 が Javascript を追加してサポートできることも記載されています。このコードは、このスイッチの実際の作成者であるanna.miによる回答で提供されています。