2012-03-15 15 views
1

divコンテンツを含むリスト要素とdivコンテンツをラッピングするタグがあります。例コード:iOSが<a>タグを無視しています:ホバー

<li> 
    <a href="http://google.com/"> 
    <div id="tease-info"> 
     <div class="inset-img-border fade"></div> 
     <img src="/img/img.jpg"> 
     <div id="arrow-right-small"></div> 
     <h4 class="title">E-mail Marketing</h4> 
     <p class="title">Messaging That Pays</p> 
    </div> 
    </a> 
</li> 

私のスタイルシートでは、私はホバーを内部コンテンツのための 'tease-info'に適用しています。同様に:

#tease-info:hover h4{ 
    color: rgb(191,69,164); 
    } 

問題はiosでのみ発生します。私のipadで、私がli要素をタップすると、その灰色のオーバーレイがiosにネイティブで表示され、選択した要素を知ることができます。私はまた、ホバー状態を取得します。しかし、私がリリースすると、私はhrefに連れてこないので、ホバー状態は有効のままです。

ホバー状態がタグを覆いすぎているようですか?何が起こっている?

+3

iOSは、ホバリングの概念がないため、 ':hover'擬似クラスをサポートしていません。一般的には、それをスティッキーな ':active'のように扱おうとしますが、それ以上のことは本当に何をするべきか分からないので、バグアウトします。あなたが 'div'の代わりに' a'にホバースタイルを適用しようとすると(HTMLをその効果に変更する必要があるかもしれません)どうでしょうか? – BoltClock

+0

div内に絶対配置された要素「

」があり、それにホバーが適用されています。この要素を削除すると、すべてが正常でhrefが無視されなくなりました。奇妙なことは、同じdivに他の絶対配置要素があることです。本当の原因が何であるかはわかりません。 –

+0

私もこの問題を抱えています。ホバー効果には至りませんし、元のアバタークリック効果を忘れるようです。 iOSのホバー効果を無効にしようとする場合があります。私は修正を見つける場合は、ああ知らせる – nickmorss

答えて

2

ok私は今修正があります。 Modernizrを使ってimから始めるには、.touchと.no-touchクラスを使って問題を解決する方法をお読みください。あなたの場合これはかなり簡単に動作します:ホバーイベントはCSS

.ugcpost:hover .meta {display:block;} 
.touch .ugcpost:hover .meta {display:none;} 

で表現され、これはちょうどあなたがあなたのModernizrの設定でタッチイベントを持っていることを確認し、問題を解決します。あなたのホバーを表示したり隠したりするためにJSを使用している場合は、ページを強制的にクリックしてhrefに従わせるという方法があります。実際のクリックとスクリーンスクロールの区別を確実にしたいと思っていますが、注意すべき点が1つあります。ですから、Modernizrを使って、次のJSを見てください。ちょっとクライアントのUserエージェントをチェックするだけです。

followPost : function(item) { 
     $(item).on('touchend', function(e){ 
       location.href = $(item).attr('href'); 
       $(item).off('touchend'); 
      }); 
      $(item).on('touchmove', function(e){ 
       $(item).off('touchend'); 
      }); 
    }, 
    initTouchEnhancements : function() { 
     $('.collection a, .post a, .ugcpost a').live('touchstart', function() { 
      var item = this 
     followPost(item); 
     }); 
    } 

注:これはまた、JQ 1.7で「オン」を使用すると「オフ」の機能に依存しています。これを確認するこのポストのおかげで。 Stop the touchstart performing too quick when scrolling

関連する問題