您的位置:首页 > Web前端 > JQuery

在浏览器窗口大小变化时,自动出现或隐藏滚动条,隐藏横向滚动条,仅保留纵向的

2012-05-15 13:50 399 查看
隐藏横向滚动条,仅保留纵向的


.lm {
padding:
10px 0 0 20px;
width:
175px;
overflow-y:auto;
overflow-x:hidden
}

 
在浏览器窗口大小变化时,自动出现或隐藏滚动条(IE8下)

 


function divScroll(){ 

    //每个菜单项的高度

    var itemHeight
= 33;

    //菜单项目条数

    var listSize
= $("#listSize").val();

    //菜单据iframe顶部距离

    var topMargin
= 85;

    var leftFrame
= $("#leftFrame",parent.document.body);

    var leftFrameHeight
= leftFrame.attr("height");

    var leftMenuHeight
= leftFrameHeight-topMargin;

    //console.log("listSize:"+listSize+",leftFrameHeight:"+leftFrameHeight+",leftMenuHeight:"+leftMenuHeight);

    var tHeight
= itemHeight*listSize
< leftMenuHeight ? itemHeight*listSize:leftMenuHeight;

    $(".lm").height(tHeight);   //修改div的高度

}

$(window).resize(divScroll);
 
在IE9下,菜单会出现滚动条,将itemHeight增大为34即可

但IE7下问题较多

1.据说IE6和7下,resize事件有bug,可能会触发多次,甚至导致死循环

使用jquery的改良方法可以解决(位于jquery.wresize.js
中)

将resize方法改为使用wresize

2.使用IE9,将浏览器模式和文档模式均调整为IE7,resize事件不触发

参考
stackoverflow的文章(地址)解决



IE7 with doctype needs:
html,
body { height:
100% }

即添加第二行的样式到文档中,缺一不可
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐