我正在尝试根据导航的鼠标位置来移动导航栏,但是当我将鼠标移至某个点然后停止时,我无法使其平滑,边距顶部花费的时间太长,无法更新新值。这使它看起来像抖动,而不是平滑的动画


function nav_animate(e) {
var mouse_y = e.pageY;
if (mouse_y < 200) {

var old_y = $("#nav-style").css('margin-top').replace('px', '');
var new_y = parseInt(old_y);
var tmp = -(mouse_y + new_y);
if (tmp > 0) {
  tmp = 0;
}
$("#nav-style").css({ 'margin-top': tmp + 'px' });
}else {
   $("#nav-style").css({ 'margin-top': '-101px' });
}
}

$(document).ready(function() {
$(document).on('mousemove', nav_animate);
});



  因为我没有很好地表达我的问题,所以这里是我正在做here的站点的链接

最佳答案

为什么不使用CSS的功能?

这是一个简单的示例:



    <!DOCTYPE html>
    <html>
    <head>
    <style>
    ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        width: 200px;
        background-color: #f1f1f1;
    }

    li a {
        display: block;
        color: #000;
        padding: 8px 16px;
        text-decoration: none;
    }

    /* Change the link color on hover */
    li a:hover {
        background-color: #555;
        color: white;
    }
    </style>
    </head>
    <body>

    <h2>Vertical Navigation Bar</h2>

    <ul>
      <li><a href="#home">Home</a></li>
      <li><a href="#news">News</a></li>
      <li><a href="#contact">Contact</a></li>
      <li><a href="#about">About</a></li>
    </ul>

    </body>
    </html>

09-30 16:05
查看更多