Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击相同的按钮以反转Javascript效果_Javascript_Jquery_Button - Fatal编程技术网

单击相同的按钮以反转Javascript效果

单击相同的按钮以反转Javascript效果,javascript,jquery,button,Javascript,Jquery,Button,因此,我对JavaScript非常陌生,不幸的是,我也不太了解基础知识 我正在编写一个代码,使一个元素在单击后隐藏,并再次通过单击相同的按钮反转效果,但我无法做到这一点。请帮我这里是代码: $(function() { $('#boxclose').click(function(){ $('#md-share-window').animate({'bottom':'-90px'},500,function(){}); }); }); 您需要获得初始位置(或硬编码

因此,我对JavaScript非常陌生,不幸的是,我也不太了解基础知识

我正在编写一个代码,使一个元素在单击后隐藏,并再次通过单击相同的按钮反转效果,但我无法做到这一点。请帮我这里是代码:

$(function() {
    $('#boxclose').click(function(){
        $('#md-share-window').animate({'bottom':'-90px'},500,function(){});
    });
});

您需要获得初始位置(或硬编码),并跟踪您处于初始位置还是更新位置:

$(function() {
    var shareWindow = $('#md-share-window');
    var initialPosition = shareWindow.css('bottom'); //get initial position
    var atInitialPos = true; //whether this is the initial or updated position

    $('#boxclose').on('click', function(){
        var newPosition = atInitialPos ? '-90px' : initialPosition; //determines new position
        shareWindow.animate({'bottom': newPosition}, 500);
        atInitialPos = !atInitialPos; //toggle initial position boolean
    });
});

可以使用类来标识正在设置动画的元素的状态

下面是一个例子:


我能知道为什么持续时间=500;添加了???@user2414789,这是一个很好的实践。使代码更易于维护,更不容易出现人为错误。如果要更改动画的持续时间,只需在一个位置进行更改。
$('#boxclose').click(function() {
    var c = 'on',
        el = '#md-share-window',
        duration = 500;

    if ($(el).hasClass(c)) {
        $(el).animate({'bottom': 0}, duration)
            .removeClass(c);
    } else {
        $(el).animate({'bottom': '-90px'}, duration)
            .addClass(c);
    }
});