JavaScript之根据所选排列方式进行排列
有两种方式,第一种:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>九宫格布局</title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
#wrap{
overflow: hidden;
}
#wrap .item{
width: 248px;
height: 434px;
font-size: 13px;
border: 1px solid gray;
}
#wrap .item .title{
width: 248px;
height: 30px;
line-height: 30px;
overflow: hidden;
margin-bottom: 10px;
}
.imgContainer{
width: 248px;
display: table-cell;
text-align: center;
}
.imgContainer img{
width: 248px;
height: 360px;
}
#wrap .item .price{
color: #ff6700;
font-size: 18px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="cols">
<button>3列</button>
<button>4列</button>
<button>5列</button>
</div>
<div id="wrap">
<div class="item">
<div class="imgContainer">
<img src="img/skirt1.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt2.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt3.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt4.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt5.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt6.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt7.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt8.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt9.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt10.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt11.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
</div>
<script type="text/javascript">
// 获取标签
var btns = document.getElementsByTagName("button");
var items = document.getElementsByClassName("item");
function cols(Num){
// 循环
for (var i=0;i<items.length;i++){
items[i].parentNode.style.width = (Num * items[i].offsetWidth) + "px";
items[i].style.float = "left";
}
}
// 监听按钮的点击
btns[0].onclick = function (){
cols(3);
}
btns[1].onclick = function (){
cols(4);
}
btns[2].onclick = function (){
cols(5);
}
</script>
</body>
</html>
第二种,第二种设定了绝对定位进行位置排列:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>九宫格布局定位</title>
<style type="text/css">
*{
padding: 0;
margin: 0;
}
#wrap{
position: relative;
}
#wrap .item{
width: 248px;
height: 434px;
font-size: 13px;
border: 1px solid gray;
}
#wrap .item .title{
width: 248px;
height: 30px;
line-height: 30px;
overflow: hidden;
margin-bottom: 10px;
}
.imgContainer{
width: 248px;
display: table-cell;
text-align: center;
}
.imgContainer img{
width: 248px;
height: 360px;
}
#wrap .item .price{
color: #ff6700;
font-size: 18px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="cols">
<button>3列</button>
<button>4列</button>
<button>5列</button>
</div>
<div id="wrap">
<div class="item">
<div class="imgContainer">
<img src="img/skirt1.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt2.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt3.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt4.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt5.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt6.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt7.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt8.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt9.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt10.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
<div class="item">
<div class="imgContainer">
<img src="img/skirt11.jpg" alt="">
</div>
<p class="title">纯色短袖女春季秋t恤韩版国新款服装2019潮</p>
<p class="price">¥69</p>
</div>
</div>
<script type="text/javascript">
// 获取标签
var btns = document.getElementsByTagName("button");
var items = document.getElementsByClassName("item");
function cols(Num){
// 求得每个盒子占行数和列数
for (var i=0;i<items.length;i++){
var row = parseInt(i / Num);
var col = parseInt(i % Num);
// 设置盒子定位
items[i].style.position = "absolute";
items[i].style.top = (row * items[i].offsetHeight) + "px";
items[i].style.left = (col * items[i].offsetWidth) + "px";
}
}
// 监听按钮的点击
btns[0].onclick = function (){
cols(3);
}
btns[1].onclick = function (){
cols(4);
}
btns[2].onclick = function (){
cols(5);
}
</script>
</body>
</html>
实现效果如下:
默认为单行排列:
可以选择三列或者四列进行排列:
觉得有用的话可以给作者鼓励支持一下~你的鼓励就是我不断前行的动力!