javascript - 调整容器的大小,两个灰色方 block 应该尽可能地增长,受对 Angular 线的约束..简单的方法吗?

标签 javascript jquery css math trigonometry

这是我所做的:jsFiddle

$("#container").resizable({
    resize: function (event, ui) {
        var w = ui.size.width;
        var h = ui.size.height;
        var l;
        if (w>h) l = h/2;
        else l = w/2
        $("#left").width(l).height(l);
        $("#right").width(l).height(l);
    }
})

如您所见,我只是将正方形的边设置为容器宽度和高度之间最小值的一半。这仅在容器本身是方形的情况下才有效。

对于任何容器大小,我想要的是尽可能多地扩大正方形,而不会到达对 Angular 线的另一侧并保持平方比例。

有什么想法吗?

最佳答案

如果您取通过正方形对 Angular 线的线并搜索与矩形对 Angular 线的交点,您将找到正方形必须到达的点。您可以使用该点与原点之间的距离来计算正方形对 Angular 线的长度,并轻松获得边。

$("#container").resizable({
    resize: function (event, ui) {
        var w = ui.size.width;
        var h = ui.size.height;
        var m = h/w;
        var c = -h;

        var x = c/(-1-m);
        var y = -1*(c/(-1-m));

        var diag = Math.sqrt(Math.pow(x,2) + Math.pow(y,2));
        var l = diag/Math.sqrt(2);
        $("#left").width(l).height(l);
        $("#right").width(l).height(l);
    }
})

关于javascript - 调整容器的大小,两个灰色方 block 应该尽可能地增长,受对 Angular 线的约束..简单的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422882/

相关文章:

javascript - 我不希望弹出窗口在用户点击离开时最小化

css - 是否有非响应式 CSS 框架?如果有,请列出它们

javascript - 在javascript中比较两个或多个对象键值对

javascript - Bootstrap : Vertical toolbar to house btn-group-vertical groups

php - 如何用javascript创建表格?

html - 不需要的颜色出现在 CSS 渐变中.. 只影响 Chrome

html - 使 div 不可复制

javascript - 有没有类似于jsfiddle.net上的菜单的开源?

javascript - Angular bootstrap-ui datepicker动态改变minMode

javascript - 将 jPlayer 函数分配给自定义按钮