如何自定义排列 Position absolute div 标签
How to customisly arrange Position absolute div tags
这里我尝试在点击相应的 item.I 时显示 div#content_1 , div#content_2 and div#content_3
如果你点击 item3 一次,那么你无法显示 top.Here 上最后点击的项目永远查看 item1 和 item2 如果您在看不到 item1 时单击 item2 forever.please 帮我解决这个问题,在此先感谢。(考虑到我们有大量的项目)
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
getElement("item_1").addEventListener("click",function(){
getElement("content_1").style.display = "block";});
getElement("item_2").addEventListener("click",function(){
getElement("content_2").style.display = "block";});
getElement("item_3").addEventListener("click",function(){
getElement("content_3").style.display = "block";});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
position:absolute;
width:100px;
height:100px;
border:1px solid #000;
display:none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
只需获取其他元素并将它们隐藏在您的 js 代码中:
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
getElement("item_1").addEventListener("click",function(){
getElement("content_1").style.display = "block";
getElement("content_2").style.display = "none";
getElement("content_3").style.display = "none";
});
getElement("item_2").addEventListener("click",function(){
getElement("content_1").style.display = "none";
getElement("content_2").style.display = "block";
getElement("content_3").style.display = "none";
});
getElement("item_3").addEventListener("click",function(){
getElement("content_1").style.display = "none";
getElement("content_2").style.display = "none";
getElement("content_3").style.display = "block";
});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
position:absolute;
width:100px;
height:100px;
border:1px solid #000;
display:none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
希望这就是您要找的。
希望对您有所帮助。如果你不想隐藏 div 那么就用 z-index 玩吧。
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
function zIndexZero() {
document.querySelectorAll('.abs').forEach(function(item) {
item.style.zIndex = 0;
});
}
getElement("item_1").addEventListener("click",function(){
zIndexZero();
getElement("content_1").style.display = "block";
getElement("content_1").style.zIndex = 99;
});
getElement("item_2").addEventListener("click",function(){
zIndexZero();
getElement("content_2").style.display = "block";
getElement("content_2").style.zIndex = 99;
});
getElement("item_3").addEventListener("click",function(){
zIndexZero();
getElement("content_3").style.display = "block";
getElement("content_3").style.zIndex = 99;
});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
position:absolute;
width:100px;
height:100px;
border:1px solid #000;
display:none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
这就是你想要的
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
$("[id^=item_]").on('click', function () {
$("[id^=content_]").css("display", "block");
var id = $(this).prop('id');
var dataArray = id.split('_');
var numToCLick = parseInt(dataArray[1]);
for(var i = 1; i < numToCLick; i++){
getElement("content_"+i).style.display = "none";
}
});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
//position:absolute;
width:100px;
height:100px;
border:1px solid #000;
float:left;
display: none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
希望这能解决您的问题
这只是jq版本。您可以 select 根据 li
项目的 ID abs
let item = $("ul li"),
content = $(".abs")
item.on("click", function() {
let itemId = $(this).attr("id"),
idNr = itemId.split('_').pop();
content.removeClass("show")
$("#content_" + idNr).addClass("show")
})
ul,
li {
padding: 0px;
margin: 0px;
list-style: none;
}
div#menu {
width: 100%;
height: 50px;
}
div#menu>ul li {
float: left;
border: 1px solid #000;
padding: 2px;
background-color: blue;
color: #fff;
margin: 5px;
cursor: pointer;
}
#content {
width: 100%;
border: 1px solid #000;
height: 200px;
position: relative;
}
.abs {
position: absolute;
width: 100px;
height: 100px;
border: 1px solid #000;
display: none;
}
#content_1 {
background-color: red;
}
#content_2 {
background-color: green;
}
#content_3 {
background-color: yellow;
}
.abs.show {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
这里我尝试在点击相应的 item.I 时显示 div#content_1 , div#content_2 and div#content_3
如果你点击 item3 一次,那么你无法显示 top.Here 上最后点击的项目永远查看 item1 和 item2 如果您在看不到 item1 时单击 item2 forever.please 帮我解决这个问题,在此先感谢。(考虑到我们有大量的项目)
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
getElement("item_1").addEventListener("click",function(){
getElement("content_1").style.display = "block";});
getElement("item_2").addEventListener("click",function(){
getElement("content_2").style.display = "block";});
getElement("item_3").addEventListener("click",function(){
getElement("content_3").style.display = "block";});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
position:absolute;
width:100px;
height:100px;
border:1px solid #000;
display:none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
只需获取其他元素并将它们隐藏在您的 js 代码中:
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
getElement("item_1").addEventListener("click",function(){
getElement("content_1").style.display = "block";
getElement("content_2").style.display = "none";
getElement("content_3").style.display = "none";
});
getElement("item_2").addEventListener("click",function(){
getElement("content_1").style.display = "none";
getElement("content_2").style.display = "block";
getElement("content_3").style.display = "none";
});
getElement("item_3").addEventListener("click",function(){
getElement("content_1").style.display = "none";
getElement("content_2").style.display = "none";
getElement("content_3").style.display = "block";
});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
position:absolute;
width:100px;
height:100px;
border:1px solid #000;
display:none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
希望这就是您要找的。
希望对您有所帮助。如果你不想隐藏 div 那么就用 z-index 玩吧。
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
function zIndexZero() {
document.querySelectorAll('.abs').forEach(function(item) {
item.style.zIndex = 0;
});
}
getElement("item_1").addEventListener("click",function(){
zIndexZero();
getElement("content_1").style.display = "block";
getElement("content_1").style.zIndex = 99;
});
getElement("item_2").addEventListener("click",function(){
zIndexZero();
getElement("content_2").style.display = "block";
getElement("content_2").style.zIndex = 99;
});
getElement("item_3").addEventListener("click",function(){
zIndexZero();
getElement("content_3").style.display = "block";
getElement("content_3").style.zIndex = 99;
});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
position:absolute;
width:100px;
height:100px;
border:1px solid #000;
display:none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
这就是你想要的
function getElement(e) {
var elem = document.getElementById(e);
return elem;
}
$("[id^=item_]").on('click', function () {
$("[id^=content_]").css("display", "block");
var id = $(this).prop('id');
var dataArray = id.split('_');
var numToCLick = parseInt(dataArray[1]);
for(var i = 1; i < numToCLick; i++){
getElement("content_"+i).style.display = "none";
}
});
ul,li{
padding:0px;
margin:0px;
list-style:none;
}
div#menu{
width:100%;
height:50px;
}
div#menu>ul li{
float:left;
border:1px solid #000;
padding: 2px;
background-color:blue;
color:#fff;
margin:5px;
cursor:pointer;
}
#content{
width:100%;
border:1px solid #000;
height:200px;
position :relative;
}
.abs{
//position:absolute;
width:100px;
height:100px;
border:1px solid #000;
float:left;
display: none;
}
#content_1{
background-color:red;
}
#content_2{
background-color:green;
}
#content_3{
background-color:yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>
希望这能解决您的问题
这只是jq版本。您可以 select 根据 li
项目的 ID abs
let item = $("ul li"),
content = $(".abs")
item.on("click", function() {
let itemId = $(this).attr("id"),
idNr = itemId.split('_').pop();
content.removeClass("show")
$("#content_" + idNr).addClass("show")
})
ul,
li {
padding: 0px;
margin: 0px;
list-style: none;
}
div#menu {
width: 100%;
height: 50px;
}
div#menu>ul li {
float: left;
border: 1px solid #000;
padding: 2px;
background-color: blue;
color: #fff;
margin: 5px;
cursor: pointer;
}
#content {
width: 100%;
border: 1px solid #000;
height: 200px;
position: relative;
}
.abs {
position: absolute;
width: 100px;
height: 100px;
border: 1px solid #000;
display: none;
}
#content_1 {
background-color: red;
}
#content_2 {
background-color: green;
}
#content_3 {
background-color: yellow;
}
.abs.show {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id=menu>
<ul>
<li id="item_1">menu item1</li>
<li id="item_2">menu item2</li>
<li id="item_3">menu item3</li>
</ul>
</div>
<div id="content">
<div id="content_1" class="abs"></div>
<div id="content_2" class="abs"></div>
<div id="content_3" class="abs"></div>
</div>