gpt4 book ai didi

javascript - 获取指定 div 的位置然后创建新的 div 并将位置应用于它

转载 作者:行者123 更新时间:2023-11-28 06:48:49 35 4
gpt4 key购买 nike

所以我创建了一个“添加”按钮,它是一个简单的圆圈,悬停在它周围会打开一些可点击的选项(如添加的图像所示)。

悬停
enter image description here

正常(非悬停)
enter image description here

当您单击其中一个周围的元素时,它会隐藏除您单击的元素之外的所有其他元素,当您将鼠标悬停时,隐藏的元素将再次可见。

我的问题是我想做到这一点,当有人点击时,会使用 JavaScript 动态创建另外 3 个 div(“zone 1”、“zone2”和“zone3”),并以与附上图片。

但我显然遇到了找到位置然后将这 3 个新 div 添加到正确位置的问题,这取决于单击了哪个元素以及它是在左下右下还是上。

谢谢!

<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>

最佳答案

var $existingDiv = $("#div1"),
pos = $existingDiv.position(),
$newDiv = $("<div></div>").css({
"background-color": "red",
"position": "absolute"
});
$newDiv.css(pos);
$existingDiv.after($newDiv);
$existingDiv.remove();

http://jsfiddle.net/paska/uvxc1yk5/

使用 position 元素:http://jsfiddle.net/paska/uvxc1yk5/2/

关于javascript - 获取指定 div 的位置然后创建新的 div 并将位置应用于它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33900858/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com