javascript - JQuery UI 可拖动来调整 div 大小

标签 javascript jquery html css jquery-ui

我有两个 div,我希望它们共享其父级的 100% 宽度。我之间还有一个小分隔线,可以让它们动态调整大小。但总面积必须保持不变。我已经上传了我的解决方案:http://jsfiddle.net/aRQ7a/

但是,由于我减小了前一个 slider 的尺寸,因此 slider 向后移动得更远,它们没有正确对齐。我怎样才能解决这个问题?我的代码如下:

CSS:

* {
    margin: 0px;
    padding: 0px;
}
div {
    display: inline-flex;
    height: 300px;
    padding: 0px;
    margin: 0px;
}
#part1 {
    width: 47%;
    background-color: red;
}
#part2 {
    width: 47%;
    background-color: green;
}
.divider {
    width: 5%;
    background-color: blue;
}

HTML:

<body>
    <div id="part1"></div>
    <div class="divider"></div>
    <div id="part2"></div>
</body>

Javascript:

$(function () {
    var p1 = parseInt($("#part1").css("width"));
    var p2 = parseInt($("#part2").css("width"));

    $(".divider").draggable({
        axis: "x",
        containment: "parent",
        scroll: false,
        start: function(){
            p1 = parseInt($("#part1").css("width"));
            p2 = parseInt($("#part2").css("width"));
        },
        drag: function (event,  ui) {
            var a = parseInt($(this).css("left"));
            $(this).prev().css("width", p1 +  a);
            $(this).next().css("width", p2 -  a);            
        }
    });
});

最佳答案

检查这个

http://jsfiddle.net/aRQ7a/3/

js

$(function () {
    var p1 = parseInt($("#part1").css("width"));
    var p2 = parseInt($("#part2").css("width"));
    var fullWidth= $('body').width();
    var initialPos = parseInt($(".divider").css("left"));
    $(".divider").draggable({
        axis: "x",
        containment: "parent",
        scroll: false,
        drag: function () {
            var a = parseInt($(this).css("left"));

            $("#part1").css("width", a);
            $("#part2").css("width", fullWidth-a);

        }
    });
});

CSS

* {
    margin: 0px;
    padding: 0px;
}
div {
    display: inline-block;
    height: 300px;
}
#part1 {
    position: absolute;
    width: 47%;
    background-color: red;
}
#part2 {
    position: absolute;
    right:0;
    width: 47%;
    background-color: green;
}
.divider {
    width: 5%;
    position:absolute;
    left: 47%;
    background-color: blue;
}

关于javascript - JQuery UI 可拖动来调整 div 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20425675/

相关文章:

html - 在 VS Code 中创建自定义 HTML 片段

javascript - 力向图 - 为什么指针会随着链接宽度的变化而改变大小

javascript - Phonegap javascript 全局化检测语言并重定向到 .html 文件

javascript - 如何抓取存储在html页面中的图像

java - 我该从哪里开始这个 Android 项目呢?

jquery - 我正在尝试能够拍摄上传的图片并将其设为背景图片

javascript - jQuery getJSON 永远不会进入其回调函数

javascript - Canvas/JavaScript - 单击鼠标翻转正方形的颜色

javascript - 在主干中使用 JSONP 获取 reddit 评论会返回 HTML

jquery - 从 WooCommerce 可变产品的变体中自动选择第一个可用选项