Javascript 获取指定div的位置,然后创建新div并对其应用位置
因此,我创建了一个“添加”按钮,它是一个简单的圆圈,在悬停时,它会在周围打开一些选项,这些选项可以单击,如添加的图像所示 悬停 正常不悬停 当您单击其中一个周围图元时,它会隐藏除您单击的图元以外的所有其他图元,当您将鼠标悬停在关闭位置时,隐藏的图元将再次可见 我的问题是,当一个被点击时,另一个3分区zone 1、zone 2和zone 3将使用JavaScript动态创建,并以与所附图像类似的样式定位在点击的元素周围 但我显然有一个问题,就是找到位置,然后根据单击的元素以及它是在左下右下还是在上,将这3个新div添加到正确的位置 谢谢Javascript 获取指定div的位置,然后创建新div并对其应用位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,我创建了一个“添加”按钮,它是一个简单的圆圈,在悬停时,它会在周围打开一些选项,这些选项可以单击,如添加的图像所示 悬停 正常不悬停 当您单击其中一个周围图元时,它会隐藏除您单击的图元以外的所有其他图元,当您将鼠标悬停在关闭位置时,隐藏的图元将再次可见 我的问题是,当一个被点击时,另一个3分区zone 1、zone 2和zone 3将使用JavaScript动态创建,并以与所附图像类似的样式定位在点击的元素周围 但我显然有一个问题,就是找到位置,然后根据单击的元素以及它是在左下右下还是
<head>
<title>Add Button</title>
<link href="css/materialdesignicons.min.css" media="all" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<div class="add-button">
<div class="sub-button tl" id="temp" onclick="addNew(this.id)"><i class="mdi mdi-temperature-celsius"></i></div>
<div class="sub-button tr" id="light"><i class="mdi mdi-weather-sunny"></i></div>
<div class="sub-button bl" id="fridge"><i class="mdi mdi-fridge"></i></div>
<div class="sub-button br" id="kettle"><i class="mdi mdi-coffee"></i></div>
<div class="sub-button tlo" id="cup"><i class="mdi mdi-cup"></i></div>
<div class="sub-button tro" id="lamp"><i class="mdi mdi-lightbulb-outline"></i></div>
<div class="sub-button bro" id="sound"><i class="mdi mdi-microphone-outline"></i></div>
<div class="sub-button blo" id="noise"><i class="mdi mdi-speaker"></i></div>
</div>
</header>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script>
var type;
var elements = ["temp", "light", "fridge", "kettle", "cup", "lamp", "sound", "noise"];
function addNew(id){
type = id;
for(i = 0; i < elements.length; i++){
if(elements[i] != type){
document.getElementById(elements[i]).style.display = "none";
}
}
/*var div1 = document.createElement('div');
div1.className = '';
var elementStyle = document.getElementById("id").style;
elementStyle.position = "relative";
elementStyle.top = elementStyle.left = "50%";*/
}
function initialise(){
for(i = 0; i < elements.length; i++){
document.getElementById(elements[i]).style.display = "block";
}
}
$(document).ready(function() {
$('.add-button').hover(
function () {
},
function () {
initialise();
}
);
});
</script>
</body>
使用position元素:谢谢:唯一的问题是,它会将其放在请求的div前面,但我的问题是,现在我希望他们在div周围,而不仅仅是在div上面,并且使用您建议的方法,我想不出办法让他们在div周围,而不仅仅是在div上方。所以现在你想让它们相对地与图像中的一样。pos对象有左属性和顶属性,你现在必须使用它们,并对主对象周围的每个对象修改它们。嗨,我有最后一个问题要问你。。。关于使用.push添加值,我一直在尝试这样做。。。。。数据集[data1][3]=“10”;因此,在data1数组的第3个位置,我加上值10。我感觉自己的代码正在被破坏,因为我一直遇到一些奇怪的错误,没有任何附加值。一方面,请记住,[3]是第四位,而不是第三位,它是基于0的。另一方面,只有在数组[data1]已经定义了该位置的情况下,才能这样做。您不能这样做:var a=[];a[3]=1;,但是您可以执行var a=[0,0,0,0];a[3]=1;
var $existingDiv = $("#div1"),
pos = $existingDiv.position(),
$newDiv = $("<div></div>").css({
"background-color": "red",
"position": "absolute"
});
$newDiv.css(pos);
$existingDiv.after($newDiv);
$existingDiv.remove();