jquery - 当 div 距离页面顶部一定距离时开始动画

标签 jquery menu scroll

我有一个滚动时在窗口中 float 的菜单。 目前我的菜单始终与窗口顶部保持 190 像素。 我正在使用尺寸插件,这是我的 jQuery:

$(document).ready(function() {    
menuYloc = parseInt($('#mainMenu').css('top').substring(0,$('#mainMenu').css('top').indexOf('px')))
    $(window).scroll(function () {
        var offset = menuYloc+$(document).scrollTop()+'px';
        $('#mainMenu').animate({top:offset},{duration:600,queue:false});  
    });
});

我想要实现的是,当您滚动到页面顶部时,菜单距离顶部 190px。但是,当您开始向下滚动时,菜单会随页面滚动,直到距离窗口顶部 50 像素,然后它开始 float ,始终与窗口顶部保持 50 像素,除非您向上滚动到窗口顶部页。

希望这是有道理的,如果您有解决方案,请告诉我。

最佳答案

var minDistance = 50;
var startDistance = 190;
$(window).scroll(function() {
    var scrollTop = $(document).scrollTop();
    if (scrollTop > startDistance - minDistance) {
        $('#mainMenu').css('top', scrollTop + minDistance);
    } else {
        $('#mainMenu').css('top', startDistance);
    }
});

fiddle :
http://jsfiddle.net/d52wr/

关于jquery - 当 div 距离页面顶部一定距离时开始动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425345/

相关文章:

javascript - jQuery 禁用数字类型的文本框输入

javascript - 更改 select2 颜色

jquery - 滚动div中绝对定位的div会跳动

javascript - 滚动方向(向上和向下)

javascript - 如何使用 Symfony 4 上传多个文件

jquery - 当 HTML 面板到达视口(viewport)顶部后,如何将其固定到页面上?

asp.net - 如何在asp.net中制作菜单

javascript - 如何创建带有子菜单的 float 菜单

php - mysql中页面id的事件菜单

android - 将 Android ListView "categories"贴到顶部