【问题标题】:Div left position change using animate function使用动画功能更改div左侧位置
【发布时间】:2011-12-19 07:26:44
【问题描述】:

我有 3 个 div 和一个按钮

<div id="Outer">
<div id="main" style='height:200px;width:300px'/>
<div id="child" style='height:20px;'/>
</div>

当有人点击按钮时,左边的子 div 将是 -20px 并逐渐 它的宽度会增加,直到它的宽度变成主div的宽度,当再次点击按钮时,会发生相反的动作。

我如何使用 jquery animate 函数来做到这一点。谢谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

    我不知道你如何选择你的按钮,但这会解决问题;

    $('#yourButtonId').click(function() {
        var $child = $('#child'),
            state = $child.data('state'),
            orgWidth = $child.data('orgWidth');
        if(!orgWidth) {
            $child.data('orgWidth', $child.width());
        }
        if(state != 'big') {
            $child
                .data('state', 'big')
                .animate({left:"-=20px",width:$('#main').width()});
        }
        else {
            $child
                .data('state', 'normal')
                .animate({left:"+=20px",width:orgWidth});
        }
    });
    

    你可以看到它在工作here

    【讨论】:

    • 感谢您的回答,但很少有我不明白的领域,例如 var $child = $('#child'), state = $child.data('state'), orgWidth = $child.data ('orgWidth');
    • 这是一个最佳实践 caching jQuery objects 以备将来使用,使用 .data() 您可以将相关数据保存在您的 dom 对象上,并在必要时使用它们。
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2011-05-02
    • 2013-11-06
    相关资源
    最近更新 更多