2016-05-02 9 views
0

ナビゲーションリンクを表示するポップアップウィンドウがあります。ユーザーがリンク上を移動するたびに、その周りに白い枠線が表示されます。私の問題は、国境からの1pxが、わずかに揺れているように見えるようにナビゲーションリンクを引き起こしていることです。ナビゲーションリンクを固定して移動させないようにするにはどうすればよいですか?ホバリングボーダーは、揺れているように見えます。

スニペットでこれを確認するには、2番目の画像をクリックするとポップアップが表示されます。 次に、テキストの上にマウスを置くだけです。

$('.nav-popup').hide(); 
 

 
$("#nav-btn").on("click", function (event) { 
 
\t $('.nav-popup').fadeIn(350); 
 
}); 
 

 
    //----- CLOSE 
 
    $('[data-popup-close]').on('click', function(e) { 
 
     var targeted_popup_class = jQuery(this).attr('data-popup-close'); 
 
     $('[data-popup="' + targeted_popup_class + '"]').fadeOut(350); 
 
    
 
     e.preventDefault(); 
 
    });
.nav-popup { 
 
\t width: 100%; 
 
\t height: 100vh; 
 
\t background: rgba(0,0,0,0.8); 
 
\t color: #FFF; 
 
\t position: fixed; 
 
\t z-index: 100; 
 
\t margin: 0; 
 
\t padding: 0; 
 
\t top:0; 
 
\t bottom:0; 
 
} 
 
.popup-close { 
 
\t position: absolute; 
 
\t top: 50px; 
 
\t right: 50px; 
 
} 
 
#x-close { 
 
    transform: translate(50%, -50%); 
 
    transition: transform .4s ease; 
 
} 
 
#x-close:hover { 
 
    -webkit-transform: translate(50%, -50%) rotate(180deg); 
 
    transform: translate(50%, -50%) rotate(180deg); 
 
} 
 
.nav-popup-inner { 
 
\t position: relative; 
 
\t height: 100%; 
 
} 
 
#nav-list { 
 
\t -webkit-transform: translate(-50%, -50%); 
 
    transform: translate(-50%, -50%); 
 
\t top: 50%; 
 
    left: 50%; 
 
\t position: absolute; 
 
\t text-align: center; 
 
} 
 
.nav-item { 
 
\t display: block; 
 
\t margin: 50px 0; 
 
\t font-weight: bold; 
 
\t font-size: 2.5em; 
 
} 
 
.nav-item a { 
 
\t color: #FFF; 
 
\t text-decoration: none; 
 
\t transition: 0.2s ease; 
 
} 
 
.nav-item a:hover { 
 
\t color: #BFBFBF; 
 
\t border: 1px solid #FFF; 
 
\t padding: 15px; 
 
\t border-radius: 7px; 
 
\t transition: 0.2s ease; 
 
} \t
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<header class="nav-down"> 
 
\t <div id="logo"> 
 
\t \t <img src="/images/eslich.png" alt=""> 
 
\t </div> 
 
\t <a href="#0" id="nav-btn"><img src="/icons/mobile_menu_white.png" style="height: 28px; width: 28px;" alt="Website Design Services Mobile Menu Button"></a> 
 
\t <div class="nav-popup" data-popup="popup-1"> 
 
\t \t <div class="nav-popup-inner"> 
 
\t \t \t <ul id="nav-list"> 
 
\t \t \t \t <li class="nav-item"><a href="#">HOME</a></li> 
 
\t \t \t \t <li class="nav-item"><a href="#">SERVICES</a></li> 
 
\t \t \t \t <li class="nav-item"><a href="#">PROJECTS</a></li> 
 
\t \t \t \t <li class="nav-item"><a href="#">ABOUT</a></li> 
 
\t \t \t \t <li class="nav-item"><a href="#">SAFETY</a></li> 
 
\t \t \t \t <li class="nav-item"><a href="#">CONTACT</a></li> 
 
\t \t \t </ul> 
 
\t \t \t \t <a class="popup-close" data-popup-close="popup-1" href="#"><img src="/icons/delete-cross.png" alt="" height="40px" width="40px" id="x-close"></a> 
 
\t \t </div> 
 
\t </div> 
 
</header>

+0

私はそれを得るとは思いません。私は全く「揺れ」のリンクを見ることができません。多分クロスブラウザの問題? – Anna

答えて

0

私はこれを考え出すことになりました。私は通常の状態に透明な境界線を追加しました。これはトリックでした。

+0

あなたは固体のアウトラインで行くことができます 'outline:1px solid #fff;国境ではなく、国境を持つ必要性を迂回している。あるいは、コンテンツを境界線で囲む必要がある場合、 'box-shadow:inset 0 0 0 1px #fff;の行に沿って何かを使用してください。 –

0

これはwebkittranslateオプションが原因であることがわかりました。 -50%に翻訳しているので、hoverを入力するたびに、エレメントはheightの参照と位置を失い、「振る舞い」効果が生じます。

あなたが垂直方向に整列するこのハックを使っているので、私はこれらの2つの方法の1以下のお勧め: http://phrogz.net/css/vertical-align/index.html

ワーキングフィドルを:https://jsfiddle.net/LvmLjexc/1/

関連する問題