2011-10-28 8 views
1

モバイルでサイトを最適化し、iveでフライアウトメニューを作成しました。 Iveは、ホバー上のメニューボタンの色を変更することを無効にしました。私はiPhoneがホバー疑似クラスを保持するために最後にクリックされたと考えているので、これを行った。ブラックベリーのCSSホバーはiphoneではありませんか?

しかし、今ではブラックベリーでテストしています。デスクトップスタイルのカーソルがあるため、マウスオーバー時に要素を変更するとメリットがあります。

iPhoneではホバーカラーを無効にできますが、ブラックベリーでは無効にすることはできますか?より一般的には、ブラックベリーのような非タッチスクリーンデバイスの場合にのみホバーオーバーカラーを持たせる方法があります。 ありがとう

+0

明示的なデバイス検出なしでは、私は思っていません。 – ceejayoz

答えて

0

これは質問の最初の部分に答えます。 Modernizrを使用してからappleOSテストを追加してみてください。

Modernizr.addTest('ipad', function() { 
    return !!navigator.userAgent.match(/iPad/i); 
}); 

Modernizr.addTest('iphone', function() { 
    return !!navigator.userAgent.match(/iPhone/i); 
}); 

Modernizr.addTest('ipod', function() { 
    return !!navigator.userAgent.match(/iPod/i); 
}); 

Modernizr.addTest('appleios', function() { 
    return (Modernizr.ipad || Modernizr.ipod || Modernizr.iphone); 
}); 

そこから、iOSの場合はクラスを本体に追加し、iOS以外のデバイス以外の場合はホバークラスを適用できます。

Modernizrがタッチをサポートしていないブラウザに追加する "notouch"ボディクラスを使用すると理想的ですが、私の経験上、このクラスはBlackberryブラウザに追加されません。タッチ。違った発見をしたら教えてください!

+0

私はModernizrの使用をサポートしていますが、このアプローチは少しです。簡単なModernizr.touchオブジェクトがあります。これは、質問者が望むもののポイントまでです。だから、javascript経由で検出している場合は、これを行うことができます:if(!Modernizr.touch){//ここにno-touch hoversと入力します}。 CSSを使って作業している場合は、Modernizrのクラス名を使用して、.no-touch .className:hover {//ここにスタイルを入力}のようにします。 – RussellUresti

+0

このアプローチはちょっと大したことですが、私はModernizr.touchと.no-touchのクラス名について言及していますが、ModernizrはBlackberryブラウザ(サポートしていないブラウザタッチ)DOサポートタッチ。しかし、私が言ったように、もし誰かが違った発見をしたら、それは良いことです! –

関連する問題