HTML+CSS+JavaScript实现商品价格筛选效果

admin 11个月前 阅读:244 评论:0
<!DOCTYPE html><html><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compat...

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>商品渲染</title>

<style>

* {

margin: 0;

padding: 0;

box-sizing: border-box;

}

.list {

width: 990px;

margin: 0 auto;

display: flex;

flex-wrap: wrap;

}

.item {

width: 240px;

margin-left: 10px;

padding: 20px 30px;

transition: all .5s;

margin-bottom: 20px;

}

.item:nth-child(4n) {

margin-left: 0;

}

.item:hover {

box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);

transform: translate3d(0, -4px, 0);

cursor: pointer;

}

.item img {

width: 100%;

}

.item .name {

font-size: 18px;

margin-bottom: 10px;

color: #666;

}

.item .price {

font-size: 22px;

color: firebrick;

}

.item .price::before {

content: "¥";

font-size: 14px;

}

.filter {

display: flex;

width: 990px;

margin: 0 auto;

padding: 50px 30px;

}

.filter a {

padding: 10px 20px;

background: #f5f5f5;

color: #666;

text-decoration: none;

margin-right: 20px;

}

.filter a:active,

.filter a:focus {

background: #05943c;

color: #fff;

}

</style>

</head>

<body>

<div>

<a data-index="1" href="javascript:;">0-100元</a>

<a data-index="2" href="javascript:;">100-300元</a>

<a data-index="3" href="javascript:;">300元以上</a>

<a href="javascript:;">全部区间</a>

</div>

<div>

<!-- <div>

<img src="" alt="">

<p></p>

<p></p>

</div> -->

</div>

<script>

// .filter a:active 是一个 CSS 选择器,用于选择处于活动状态的 <a> 元素,通常是用户正在点击或按住鼠标按钮时的状态。

// 当用户点击或按住鼠标按钮时,a:active 选择器会应用到 <a> 元素上,从而可以通过 CSS 来改变其样式或进行其他操作。

// 以下是一个示例:

// <style>

// .filter a:active {

// color: red;

// font-weight: bold;

// }

// </style>

// <div>

// <a href="#">Link 1</a>

// <a href="#">Link 2</a>

// <a href="#">Link 3</a>

// </div>

// 在上述示例中,当用户点击这些链接时,活动状态的链接(<a> 元素)的文本颜色将变为红色,并加粗显示。

// 2. 初始化数据

const goodsList = [

{

id: '4001172',

name: '称心如意手摇咖啡磨豆机咖啡豆研磨机',

price: '289.00',

picture: 'https://yanxuan-item.nosdn.127.net/84a59ff9c58a77032564e61f716846d6.jpg',

},

{

id: '4001594',

name: '日式黑陶功夫茶组双侧把茶具礼盒装',

price: '288.00',

picture: 'https://yanxuan-item.nosdn.127.net/3346b7b92f9563c7a7e24c7ead883f18.jpg',

},

{

id: '4001009',

name: '竹制干泡茶盘正方形沥水茶台品茶盘',

price: '100.00',

picture: 'https://yanxuan-item.nosdn.127.net/2d942d6bc94f1e230763e1a5a3b379e1.png',

},

{

id: '4001874',

name: '古法温酒汝瓷酒具套装白酒杯莲花温酒器',

price: '488.00',

picture: 'https://yanxuan-item.nosdn.127.net/44e51622800e4fceb6bee8e616da85fd.png',

},

{

id: '4001649',

name: '大师监制龙泉青瓷茶叶罐',

price: '139.00',

picture: 'https://yanxuan-item.nosdn.127.net/4356c9fc150753775fe56b465314f1eb.png',

},

{

id: '3997185',

name: '与众不同的口感汝瓷白酒杯套组1壶4杯',

price: '108.00',

picture: 'https://yanxuan-item.nosdn.127.net/8e21c794dfd3a4e8573273ddae50bce2.jpg',

},

{

id: '3997403',

name: '手工吹制更厚实白酒杯壶套装6壶6杯',

price: '99.00',

picture: 'https://yanxuan-item.nosdn.127.net/af2371a65f60bce152a61fc22745ff3f.jpg',

},

{

id: '3998274',

name: '德国百年工艺高端水晶玻璃红酒杯2支装',

price: '139.00',

picture: 'https://yanxuan-item.nosdn.127.net/8896b897b3ec6639bbd1134d66b9715c.jpg',

},

]

render(goodsList)

const filter = document.querySelector('.filter')

filter.addEventListener('click', e => {

const { tagName, dataset } = e.target

let arr = goodsList

if (tagName === 'A') {

switch (dataset.index) {

case '1':

arr = arr.filter(item => item.price > 0 && item.price <= 100)

break

case '2':

arr = arr.filter(item => item.price >= 100 && item.price <= 300)

break

case '3':

arr = arr.filter(item => item.price >= 300)

break

}

render(arr)

}

})

function render(arr) {

document.querySelector('.list').innerHTML = arr.map(item => {

const { name, price, picture } = item

return `

<div>

<img src="${picture}" alt="">

<p>${name}</p>

<p>${price}</p>

</div>

`

}).join('')

}

</script>

</body>

</html>

本站部分内容转载自网络,如有侵权,可 联系站长 作删除处理。

热门文章
  • 自适应html页面怎么写?

    自适应html页面怎么写?
    要创建一个自适应页面,我们需要使用响应式设计。响应式设计能够使网页根据设备屏幕的大小来自动调整布局和元素的大小,以提供最佳的观看体验。下面是一个简单的响应式页面的示例:<!DOCTYPE html><html><head>  <title>自适应页面示例</title>  <meta name="viewport" content="width=device-w...
  • 我的电视(MY TV)

    我的电视(MY TV)
    电视直播软件,安装即可使用“讲好中国故事,传播好中国声音,阐释好中国特色。”软件特点· 稳        · 快        · 免费        · 无广告    ...
  • HTML+CSS+JavaScript实现商品价格筛选效果

    HTML+CSS+JavaScript实现商品价格筛选效果
    <!DOCTYPE html><html><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-s...
  • 一个简单的 Todo 小程序示例

    一个简单的 Todo 小程序示例
    使用 JavaScript、HTML 和 CSS:<!DOCTYPE html><html><head>  <title>Todo List</title>  <style>    body {      font-family: Arial, sans-serif;      text-align: ce...
  • 小猫进城堡-蓝桥杯市赛真题

    小猫进城堡-蓝桥杯市赛真题
    准备工作:导入背景库中的“Castle 2”编程实现:小猫从坐标点(-165,-93)出发向城堡走去,随着位置的移动,角色大小逐渐变小,最后在城堡前消失。注意:1、角色大小在逐渐变化,运行结束再次点击绿旗,程序应当还能再次执行;2、角色应该是在行走(造型切换),而不是移动。评判标准:1、能够设置出题目要求的舞台背景(10分);2、小猫从左下方出发(10分);3、小猫在行走(造型切换),而不是移动(10分);4、行走过程中大小在逐渐变小而不是突然变小(10分);5、到城堡前消失...
标签列表
光绪癸巳版
《如皋南峰李氏宗谱》
PDF在线阅读