滑入菜单创建水平滚动条

时间:2013-08-26 12:43:23

标签: jquery html css

我遇到了滑入式菜单的问题。您可以在此处查看示例:http://jsfiddle.net/flobar/Z62t2/

问题是当菜单被隐藏时,它会创建一个水平滚动条。我该如何预防?

HTML:

<div id="slideIn">
    <ul>
        <li>Home</li>
        <li>About</li>
        <li>Contact</li>
    </ul>
</div>

CSS:

#slideIn {
    background:red;
    width: 200px;
    float: right;
    margin-right: -180px;
}

JS:

var menu = 0;

$('#slideIn').click(function() {
    if (menu == 0) {
        menu = 1;
        $(this).animate(
            {marginRight: '0px'},200
        );
    } else {
        menu = 0;
        $(this).animate(
            {marginRight: '-180px'},200
        );
    }
});

5 个答案:

答案 0 :(得分:2)

您目前拥有它的方式,您需要在其包装器中包含overflow:hidden;

请参阅小提琴:http://jsfiddle.net/Z62t2/5/

body {
    overflow-x:hidden;
    width:100%;
}

答案 1 :(得分:1)

body
{
overflow-x:hidden;
}

应该帮助你..

答案 2 :(得分:0)

试试这个。这对你有帮助

演示Here

答案 3 :(得分:-1)

喜欢这个

<强> DEMO

<强> CSS

#slideIn {
    background:red;
    width: 200px;
    float: right;
    margin-right: -180px;
     margin:0;
    padding:0;
}

答案 4 :(得分:-1)

只需使用CSS http://jsfiddle.net/ZQcaZ/

转换宽度而不是使用负边距应该可以正常工作。

#slideIn {
    background:red;
    width: 20px;
    overflow: hidden;
    float: right;
    transition: all 0.2s linear;
    -moz-transition: all 0.2s linear;
    -webkit-transition: all 0.2s linear;
    -ms-transition: all 0.2s linear;
    -o-transition: all 0.2s linear;
}
#slideIn:hover {
    width: 200px;
}