javascript - jQuery动画改变窗口大小

标签 javascript jquery html css

所以我正在尝试构建一个从屏幕左侧扫入的侧边栏。我让菜单元素向左浮动,宽度 = 40% 且 margin-left = -40%。

当我滑动或按下边栏按钮以显示时,页面会自行调整大小并缩小以容纳边栏。如果我阻止容器具有 100% 的宽度,我可以阻止这种情况发生,但是,我希望内容是页面的整个宽度。

这就是我移动侧边栏的方式:

$("allContainer").animate({left: '40%'});

我有我的代码 here在 JSFiddle 上。

感谢您的帮助:)

最佳答案

这是因为您正在为容器 allContainer 设置动画,该容器也包含您的内容,因此所有内容都向左移动。只需为 sidebar 设置动画。

fiddle :http://jsfiddle.net/bc4kau0w/3/

CSS:

#sidebar {
  width: 40%;
  height: 100%;
  float: left;
  background: blue;
  margin-left: -40%;
  position: absolute;
}

button {
  float: right;
}

JS:

var isMoved = false;
$("button").click(function() {
    if (isMoved) {
        $("#sidebar").animate({
            left: '0px'
        });
    } else {
        $("#sidebar").animate({
            left: '40%'
        });
    }
    isMoved = !isMoved;
});

如果我误解了你不想让侧边栏覆盖任何东西,这里有一个 fiddle ,显示当侧边栏展开时你的内容会缩小,所以什么都没有被覆盖。无论哪种方式,在我看来,主要问题是为 allContainer 而不是其中的较小部分设置动画。

fiddle :http://jsfiddle.net/bc4kau0w/4/

关于javascript - jQuery动画改变窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34184952/

相关文章:

javascript - 如何显示充满某种颜色或图像的类的前景?

javascript - 无法获取属性值 'msie'

javascript - 缩小和混淆 CSS,类似于 Javascript

javascript - 像选取框一样生成动画

javascript - Angular 仅显示结果数据数组的一部分

javascript - 通过包含字符串的变量设置对象不起作用

javascript - polymer 谷歌地图标记点击事件

jquery - 给定一个文本区域,有没有办法根据行数限制长度?

javascript - 如果填写了文本字段,则禁用表单提交按钮

html - 图片不显示