javascript - 如何建立类似gmail的菜单标题

标签 javascript html css gmail

我怎样才能建立像gmail菜单这样的固定菜单。我尝试过 css,但 div 停留在中间,它不像 gmail 菜单那样在滚动时出现。

open in large image gmail menu scroll effect

我尝试过使用CSS属性,以下是一些示例代码(不是真正的代码):

.menu {
    position:fixed;
    height: 36px;
    background-color:#fff;
}

最佳答案

如果scrollTop超过标题的高度,则需要使用javascript检查scrollTop并将菜单的位置设置为固定。

    function getScrollTop() {
        if(typeof pageYOffset!= 'undefined') {
            //most browsers
            return pageYOffset;
        }
        else {
            var b = document.body; //IE 'quirks'
            var d = document.documentElement; //IE with doctype
            d = (d.clientHeight) ? d : b;
            return d.scrollTop;
        }
    }

    function onScroll() {
        var menu = document.getElementById('divMyMenu');
        var headerAndNavHeight = document.getElementById('divHeader').clientHeight
            + document.getElementById('tsMain').clientHeight;

        if (getScrollTop() < headerAndNavHeight) {
            menu.style.top = headerAndNavHeight + 'px';
            menu.style.position = 'absolute';
        }
        else {
            menu.style.top = '0px';
            menu.style.position = 'fixed';
        }
    }

关于javascript - 如何建立类似gmail的菜单标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355592/

相关文章:

javascript - 使用 Promises 执行流程,将一个函数的输出作为下一个函数的输入

javascript - linters 是否能够捕获函数名称中的拼写错误?

html - 单击它们时图像正在缩小

html - 溢出: hidden doesn't work on :after and :before pseudo elements

css - 如何在将内部 div 保持在 css 同一行的同时使 div 居中?

html - 多行对齐和段落背景

javascript - 漂亮的滚动视差效果不起作用

javascript - 延迟循环nodejs的每次迭代

css - CSS背景属性中的 `transparent`是什么意思?

javascript - 文本图像淡出和淡入问题: Text fadeIn and fadeOut in continuous manner