html - 根据屏幕上的当前 div 更改菜单栏大小

标签 html css

我正在尝试制作一个菜单栏,它根据当前显示在屏幕上的 div 来改变它的大小。

类似这样的内容:http://housing.com/dsl

我当前的菜单 CSS 和页面其余部分的 HTML 标记如下:

<div class="menu">
    <a href="#content1">1</a>
    <a href="#content2">2</a>
</div>
<div class="content">
    <div class="content1" id="content1">
    </div>
    <div class="content2" id="content2">
    </div>
</div>

CSS

.menu{
    width:100%;
    height:80px;
    background-color: #336699;
    margin-top:-20px;
    margin: 0 auto; 
    margin-bottom: 10px;
    position:fixed;
}

最佳答案

这并不难。您必须获取 div 的宽度,然后对其进行处理,如下所示:

$(document).ready(function() {
    // Get the div's width
    var divWidth = $("#content").width();
    // Update div's width
    $("#content").css("width", divWidth + 'px');
});

编辑 1:

如果您希望代码在更改浏览器宽度时动态工作,而不是在加载时动态工作,那么您必须将它绑定(bind)到 .resize() 事件:

$(window).bind("resize", function(){
    // Get the div's width
    var divWidth = $("#content").width();
    // Update div's width
    $("#content").css("width", divWidth + 'px');
});

编辑 2:

如果您希望在页面上做一些事情,比方说,向下滚动 50px,那么您需要使用 .scroll() 函数来实现:

 $(document).ready(function(){
    $(window).scroll(function(){
        if ($(window).scrollTop() > 50){
            // Get the div's width
            var divWidth = $("#content").width();
            // Update div's width
            $("#content").css("width", divWidth + 'px');
        }
    });
});

在线演示示例:

http://jsfiddle.net/ZVXBJ/1/

关于html - 根据屏幕上的当前 div 更改菜单栏大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345808/

相关文章:

html - 为什么此菜单在 Firefox 3.5 和 IE7 中呈现效果不佳?我该如何适应?

asp.net - 如何在 Chrome 中编辑 .aspx 页面

javascript - 使用 contenteditable div 修复光标位置正确

javascript - 制作下拉单位转换器,但当我选择选项时无法更改它

javascript - 删除和读取一个元素会将另一个元素向下推,在开发工具中切换 float 会使该元素移回正确的位置

css - 是否可以使用 mix-blend-mode 在动画 Canvas 后面使用静态背景?

javascript - 如何通过在输入字段中输入十六进制颜色(使用或不使用 jQuery)来更改所需 div 的背景颜色?

css - h1 居中,背景颜色调整为文本大小

javascript - 设计聊天窗口

html - 为什么我的 60px <img> 有一个 7.5px 的底部边距,而我从未设置它并且在 'Elements' 控制台中没有任何注册?