2011-08-14 9 views
-1

テーブルの最初の行にカーソルを置いたときにdivを表示しようとしています。その結果、ちらつきが発生します。どうすれば修正できますか?jQueryのホバー機能でフリッカーが発生する

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="hovermouse._Default" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 


     $(document).ready(


function() { 

    $("table tr:first").hover(function() { 
     $("#mydiv").show() 
    }, 
      function() { 
       $("#mydiv").hide(); 
      } 
      ); 
} 
     ); 
    </script> 

    <div id="mydiv"> 
     you can see me</div> 

    <table border="true"> 
     <tr> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
     </tr> 
     <tr> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
     </tr> 
     <tr> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
      <td> 
       hi 
      </td> 
     </tr> 
    </table> 
</asp:Content> 
+2

テストケースを作成します。 –

+1

ホバー動作を実装する場合、その動作の結果としてホバーターゲットを移動させたくありません。ホバーターゲットのページ上の位置は、ホバーアクション中に固定されている必要があります。特定のケースでは、DIV **を**テーブルの下に置くことができます。もう一つの解決策は 'hide()'を介してDIVを非表示にすることではなく、 'visibility'プロパティを' hidden'に設定することです。それは以前と同じ(垂直の)空間を占有します。 –

答えて

1

どのブラウザですか?新しい<div>を表示すると、<tr>がホバリングされ、<tr>がホバリングしなくなり、無限ループになるため、論理的にちらつきます。多くのブラウザではマウスを動かすとホバー効果しか適用されませんが、マウスは少々動いてちらつきを引き起こします。

ここで行うべき最良のことは、そうしないことです。いくつかの質問を自問:

  1. 万一<tr>のオフ<div>実際に隠されたときに、ユーザーのマウスを置きましたか?
  2. このコードの実際のポイントは何ですか?これで何を達成したいですか?
  3. <div>実際にはになります。<tr>、またはそれを上書きするためにスタイルシートを適用しましたか?あなたがしていない場合、これはあなたがすることを意味するので、そうしてください。あなたはより完全な例を提供できる場合http://jsfiddle.net/YKCA5/

    (例えば、該当するスタイル&他のスクリプト)を実行してください:

は、ここで私はあなたが投稿したものからまとめテスト・ケースです。

関連する問題