【问题标题】:jQuery animate function - hide and stretch divsjQuery 动画功能 - 隐藏和拉伸 div
【发布时间】:2011-04-07 15:51:45
【问题描述】:

我有一个带有 div 的页面;

<div id="container">
    <div id="header"></div>
    <div id="sidebar">
        <div id="switch"></div>
        <div id="list"></div>
    </div>
    <div id="viewer"></div>
    <div id="footer"></div>
</div>

id switch 是一个触发器,用于切换动画。在第一次点击时,它应该将sidebar 的宽度缩小到 5px,list 的宽度缩小到 0px,switch 的左边距缩小到 5px,viewer 的左边缩小到 5px。当用户再次点击触发器时,一切都可能返回到之前的状态和位置。简而言之,我想切换隐藏/显示侧边栏。动画应该是向左然后向右滑动的效果。

你可以看看我在说什么here 和更新的小提琴here

【问题讨论】:

  • 在您的 jsfiddle 代码中,您只需移动 #viewer。为什么?如果你想移动 4 个东西,做 4 个动画。 $('#viewer').animate({left: 0});$('#sidebar').animate({"width": 5});...
  • 嗨@SPL_Splinter,我做了一些更正并做了一个新的小提琴..但是div switch有一个错误..看看@

标签: javascript jquery jquery-ui jquery-animate


【解决方案1】:

您的代码运行良好,只是您的 CSS 需要微调。

#switch {
    height: 35px;
    width: 35px;
    left: 200px;
    background-color: #CC0066;
    cursor: pointer;
    position: relative;
}

在此处查看代码:http://jsfiddle.net/EzAV2/8/

【讨论】:

  • position:relative; 很不错
  • 是的,我明白了。但 switch 消失@开始并在动画结束时重新出现。为什么会这样??
【解决方案2】:

根据您更新的代码,当您给#switch 200px 的边距时,您正在设置它的“左侧”;

改变,

$('#switch').animate({"left": 5});
$('#switch').animate({"left": 200});

到,

$('#switch').animate({"margin-left": 5});
$('#switch').animate({"margin-left": 200});

【讨论】:

  • 我在这里更新了小提琴jsfiddle.net/EzAV2/9 但开关在开始时消失并在动画结束时重新出现。有解决办法吗??
  • @blasteralfred 忽略侧边栏,http://jsfiddle.net/EzAV2/11/,我删除了它的样式和动画。你是这个意思吗?
  • 是的,我的意思是伙计.. 谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多