商品筛选

##效果图
没有细分,有需要自行添加

html

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		body {
			font-size: 14px;
			font-family: "Lantinghei SC Extralight", Arial;
		}

		ul {
			padding: 0;
			margin: 0;
			list-style: none;
		}

		a {
			text-decoration: none;
		}

		img {
			vertical-align: top;
		}

		#wrap {
			width: 760px;
			height: 260px;
			margin: 100px auto;
			padding: 145px 120px 95px;
			/* background: url(img/bg.jpg) no-repeat 0 0; */
		}

		#section {
			width: 760px;
			height: 260px;
			-moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, .2);
			box-shadow: 0px 0px 4px rgba(0, 0, 0, .2);
		}

		#choose {
			width: 760px;
			height: 50px;
			margin: 0 auto;
			background: url(img/nav_bg.png) no-repeat 0 0;
			line-height: 50px;
			text-indent: 21px;
		}

		#type {
			width: 100%;
			height: 210px;
			background: url(img/type_bg.png) no-repeat 0 0;
			padding: 17px 0 16px 28px;
		}

		#type li {
			height: 44px;
			color: #8a8a8a;
			line-height: 44px;
		}

		#type a {
			margin: 0 12px 0 11px;
			color: #000;
		}

		#choose mark {
			position: relative;
			display: inline-block;
			height: 24px;
			line-height: 24px;
			border: 1px solid #28a5c4;
			color: #28a5c4;
			margin: 12px 5px 0;
			background: none;
			padding: 0 30px 0 6px;
			text-indent: 0;
		}

		#choose mark a {
			position: absolute;
			top: 3px;
			right: 2px;
			display: inline-block;
			width: 18px;
			height: 18px;
			background: #28a5c4;
			color: #fff;
			line-height: 18px;
			font-size: 16px;
			text-align: center;
		}
	</style>
</head>

<body>
	<div id="wrap">
		<section id="section">
			<nav id="choose">
				你的选择:
			</nav>
			<ul id="type">
				<li>
					品牌:
					<a href="javascript:;">苹果</a>
					<a href="javascript:;">小米</a>
					<a href="javascript:;">锤子</a>
					<a href="javascript:;">魅族</a>
					<a href="javascript:;">华为</a>
					<a href="javascript:;">三星</a>
					<a href="javascript:;">OPPO</a>
					<a href="javascript:;">vivo</a>
					<a href="javascript:;">乐视</a>
					<a href="javascript:;">360</a>
					<a href="javascript:;">中兴</a>
					<a href="javascript:;">索尼</a>
				</li>
				<li>
					尺寸:
					<a href="javascript:;">3.0英寸以下</a>
					<a href="javascript:;">3.0-3.9英寸</a>
					<a href="javascript:;">4.0-4.5英寸</a>
					<a href="javascript:;">4.6-4.9英寸</a>
					<a href="javascript:;">5.0-5.5英寸</a>
					<a href="javascript:;">6.0英寸以上</a>
				</li>
				<li>
					系统:
					<a href="javascript:;">安卓 ( Android )</a>
					<a href="javascript:;">苹果 ( IOS )</a>
					<a href="javascript:;">微软 ( WindowsPhone )</a>
					<a href="javascript:;"></a>
					<a href="javascript:;">其他</a>
				</li>
				<li>
					网络:
					<a href="javascript:;">联通3G</a>
					<a href="javascript:;">双卡单4G</a>
					<a href="javascript:;">双卡双4G</a>
					<a href="javascript:;">联通4G</a>
					<a href="javascript:;">电信4G</a>
					<a href="javascript:;">移动4G</a>
				</li>
			</ul>

		</section>
	</div>
	<script>
		var choose = document.getElementById("choose");
		var ul = document.getElementById("type");
		var oLis = ul.getElementsByTagName("li");
		var option = ul.getElementsByTagName("a");
		for (let i = 0; i < oLis.length; i++) {
			oLis[i].index = i;
		}
		let arr = [];
		for (let i = 0; i < option.length; i++) {
			option[i].onclick = function () {
				let _this = this;
				let siblings = this.parentNode.children;
				let id = this.parentNode.index;
				for (let j = 0; j < siblings.length; j++) {
					siblings[j].style.color = "";
				}
				this.style.color = "red"
				let mark = document.createElement("mark");
				mark.innerHTML = this.innerHTML;
				let a = document.createElement("a")
				a.innerHTML = "X";
				a.onclick = function () {
					choose.removeChild(mark);
					_this.style.color = ""
					arr[id] = undefined;
				}
				mark.appendChild(a);
				arr[id] = mark;
				choose.innerHTML = "你的选择:";
				for (let i = 0; i < arr.length; i++) {
					if (arr[i] !== undefined) {
						choose.appendChild(arr[i])
					}
				}
			}
		}
	</script>
</body>

</html>
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现多行商品筛选栏的高亮切换效果,您可以按照以下步骤进行操作: 1. 在 Vue 组件中,为每个筛选项添加一个状态属性,用于跟踪当前是否被选中的状态。 2. 在点击筛选项的事件处理程序中,更新对应筛选项的状态属性值。 3. 使用动态绑定将选中状态与CSS类绑定,以实现高亮效果。 以下是一个示例代码片段,演示如何实现多行商品筛选栏的高亮切换效果: ```html <template> <div> <div class="filter-bar"> <div v-for="(row, rowIndex) in filterRows" :key="rowIndex" class="filter-row" > <div v-for="(filter, filterIndex) in row" :key="filterIndex" :class="{ 'active': filter.isActive }" @click="toggleFilter(filter)" > {{ filter.name }} </div> </div> </div> <div class="product-list"> <!-- 商品列表内容 --> </div> </div> </template> <style> .filter-bar { display: flex; flex-direction: column; } .filter-row { display: flex; } .filter-row > div { padding: 10px; cursor: pointer; } .filter-row > .active { background-color: yellow; } .product-list { /* 商品列表样式 */ } </style> <script> export default { data() { return { filterRows: [ [ { name: '筛选项1', isActive: false }, { name: '筛选项2', isActive: false }, { name: '筛选项3', isActive: false }, ], [ { name: '筛选项4', isActive: false }, { name: '筛选项5', isActive: false }, { name: '筛选项6', isActive: false }, ], ], }; }, methods: { toggleFilter(filter) { filter.isActive = !filter.isActive; // 切换选中状态 }, }, }; </script> ``` 在上述代码中,我们使用 `v-for` 循环渲染了 `filterRows` 数组中的每一行筛选项,并为每个筛选项添加了点击事件。在点击事件处理程序中,我们通过切换 `isActive` 属性值来更新选中状态。然后,使用动态绑定将选中状态与 CSS 类 `active` 绑定,以实现高亮效果。 请根据您的实际需求和样式设置进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值