jquery - 将可拖动对象动画到其起始位置

标签 jquery html css jquery-ui

我有一个固定位置的 div,所以我只能看到一个选项卡,当您单击此 div 元素上的按钮时,它会显示在舞台中,并且也可以拖动,到目前为止一切顺利。现在我试图通过动画使同一个元素返回到其原始位置,并且我也希望它在隐藏为选项卡时不可拖动。我一直在尝试使用 $(some-element).animate() ,我可以在 HTMl 上看到它设置了我给他的属性,但它永远不会动画化,我也不知道如何删除可拖动功能。我正在学习所有这些东西,如果有人能帮助我弄清楚如何做到这一点,我将不胜感激。非常感谢你们!!。我会留下我的 jquery 代码和一个 fiddle ,这样你们就可以看到发生了什么。

jquery

$("#minimize").on("click", display);
function display(){
    if(!$("#box").hasClass("draggable")){
        $("#box").animate({bottom: "20"}).addClass("draggable");
        $(".draggable").draggable();    
        }else{
            $("#box").removeClass("draggable");  
            $("#box").animate({
            bottom: -221
            });    
    }  
}

这里是 Js fiddle http://jsfiddle.net/xtatanx/PNEhD/

更多信息:

如果不拖动它,元素会返回到其位置,但如果拖动它,它不会返回到其位置。

第二次编辑:

到目前为止,我已经有了这个,这是一个很好的改进:http://jsfiddle.net/xtatanx/PNEhD/ 但我希望避免在 roder 中重置样式时发生跳跃,以使无论对象位于何处,动画都流畅

最佳答案

这是因为可拖动设置了顶部位置,并且需要先清除它,然后才能向底部位置设置动画,因为顶部仍然设置。

这是更新后的 JS

$("#minimize").on("click", display);

function display() {
    if (! $("#box").hasClass("draggable")) {
        $("#box").animate({bottom: "20"}).addClass("draggable");
        $(".draggable").draggable();    
    } else {
        $("#box").removeClass("draggable");  
        $('#box').css('top', '');
        $("#box").animate({
            bottom: -221
        });    
    }  
}

这是 fiddle 的链接:http://jsfiddle.net/PNEhD/1/

关于jquery - 将可拖动对象动画到其起始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846978/

相关文章:

javascript - 在新数组项上附加 ajax 中的 PHP 数组项

javascript - 每次用户点击按钮时,如何向我的表单添加一组字段?

jQuery 提交事件阻止表单在 IE9 中提交

html - 底部带有渐变边框的圆圈

Javascript 总返回 NaN 为 4 位数字

java - 从客户端到 Java Servlet 的 GET/POST 请求出现 404 Not Found 错误

jquery - 使用 JQuery 插入 HTML 作为所选标记的最后一个子级

javascript - 简单的 HTML 页面不加载 Javascript Hello World

javascript - 如何从 html 可访问标记使用或创建非全局 JavaScript 变量缓存

html - z-index 不显示父项后面的嵌套子项