- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 jquery 准备组织结构图,并且我需要在团队成员之间创建层次结构。所有联系人成员都表示为可拖动的 div,我想要的是当一个联系人 div 放入另一个联系人 div 时,会在这两个 div 之间创建一个层次结构,其中放置的 div 是子级。关于如何在 jquery 中执行 drop-to-connect-divs 的任何想法
提前致谢
问候,阿卡什
最佳答案
使用:
我生成了以下示例:JSFiddle .
<div id="droppable" class="ui-widget-header">
<p>Drop Zone</p>
</div>
<div id="div1"> </div>
<div id="div2"> </div>
/** Converts numeric degrees to radians */
if (typeof (Number.prototype.toRad) === 'undefined') {
Number.prototype.toRad = function () {
return this * Math.PI / 180;
}
}
/** Converts numeric radians to degrees */
if (typeof (Number.prototype.toDeg) === 'undefined') {
Number.prototype.toDeg = function () {
return this * 180 / Math.PI;
}
}
$(function () {
$("#div1").draggable();
$("#droppable").droppable({
drop: function (event, ui) {
$(this)
.addClass("ui-state-highlight")
.find("p")
.html("Dropped!");
handleConnectDivs();
}
});
});
// Button listener.
function handleConnectDivs() {
var div1 = $('#div1')[0];
var div2 = $('#div2')[0];
connect(div1, div2, '#007F00', 2, 3);
}
// Connect 2 divs with a line.
function connect(div1, div2, color, thickness, z) {
var p1 = findCenter(div1);
var p2 = findCenter(div2);
var length = lineDistance(p1, p2);
var x = ((p1.x + p2.x) / 2) - (length / 2);
var y = ((p1.y + p2.y) / 2) - (thickness / 2);
var angle = Math.atan2((p1.y - p2.y), (p1.x - p2.x)).toDeg();
var htmlLine = generateLine(length, angle, color, thickness, x, y, z);
$('body').append(htmlLine);
}
// Get the top and left offsets for each div.
function getOffset(el) {
var _x = 0;
var _y = 0;
var _w = el.offsetWidth | 0;
var _h = el.offsetHeight | 0;
while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return {
'top': _y,
'left': _x,
'width': _w,
'height': _h
};
}
// Find the center point for a div.
function findCenter(div) {
var off = getOffset(div);
return {
'x': off.left + off.width / 2,
'y': off.top + off.height / 2
};
}
// Line distance equation.
function lineDistance(point1, point2) {
var dx = point2.x - point1.x;
dx *= dx;
var dy = point2.y - point1.y;
dy *= dy;
return Math.sqrt(dx + dy);
}
// Generate a line div.
function generateLine(length, angle, color, thickness, x, y, zIndex) {
return '<div style="padding:0px; margin:0px; height:' + thickness +
'px; background-color:' + color +
'; line-height:1px; position:absolute; left:' + x + 'px; top:' +
y + 'px; width:' + length + 'px; ' + rotationStyle(angle) +
' z-index:' + zIndex + ';" />';
}
function rotationStyle(angle) {
return '-moz-transform:rotate(' + angle + 'deg); ' +
'-webkit-transform:rotate(' + angle + 'deg); ' +
'-o-transform:rotate(' + angle + 'deg); ' +
'-ms-transform:rotate(' + angle + 'deg); ' +
'transform:rotate(' + angle + 'deg);';
}
#div1 {
position: absolute;
background-color: blue;
width: 50px;
height: 50px;
top: 50px;
left: 18px;
opacity: 0.9;
}
#div2 {
position: absolute;
background-color: red;
width: 50px;
height: 50px;
top: 80px;
left: 240px;
opacity: 0.9;
}
#droppable {
position: absolute;
top: 12px;
left: 80px;
width: 200px;
height: 150px;
padding: 0.5em;
margin: 10px;
}
关于jquery - 将一个 div 放入另一个 div 中,用一条线将两者连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21042866/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!