微信小程序商城项目之侧栏分类效果(1)
发布时间 - 2026-01-11 00:41:31 点击率:次在商场项目中,一般都会有分类页面。
分类页面可以给用户快速找到相关的商品,下面以侧栏分类为例,如下图
布局分析:
<主盒子>
<左盒子></左盒子>
<右盒子></右盒子>
</主盒子>
左盒子使用标准流
右盒子使用绝对定位(top、right)
wxml:
<!--主盒子-->
<view class="container">
<!--左侧栏-->
<view class="nav_left">
<block wx:for="{{navLeftItems}}">
<!--当前项的id等于item项的id,那个就是当前状态-->
<!--用data-index记录这个数据在数组的下标位置,使用data-id设置每个item的id值,供打开2级页面使用-->
<view class="nav_left_items {{curNav == item.id ? 'active' : ''}}" bindtap="switchRightTab" data-index="{{index}}" data-id="{{item.id}}">{{item.tree.desc}}</view>
</block>
</view>
<!--右侧栏-->
<view class="nav_right">
<!--如果有数据,才遍历项-->
<view wx:if="{{navRightItems[curIndex].tree.nodes[1].tree.nodes}}">
<block wx:for="{{navRightItems[curIndex].tree.nodes[1].tree.nodes}}">
<view class="nav_right_items">
<navigator url="../list/index?brand={{item.tree.id}}&typeid={{navRightItems[curIndex].id}}">
<!--用view包裹图片组合,如果有图片就用,无图片提供就使用50x30的这个默认图片-->
<view>
<block wx:if="{{item.tree.logo}}">
<image src="{{item.tree.logo}}"></image>
</block>
<block wx:else>
<image src="http://temp.im/50x30"></image>
</block>
</view>
<!--如果有文字,就用文字;无文字就用其他-->
<view wx:if="{{item.tree.desc}}">
<text>{{item.tree.desc}}</text>
</view>
<view wx:else>
<text>{{item.tree.desc2}}</text>
</view>
</navigator>
</view>
</block>
</view>
<!--如果无数据,则显示数据-->
<view wx:else>暂无数据</view>
</view>
</view>
wxss:
page{
background: #f5f5f5;
}
/*总体主盒子*/
.container {
position: relative;
width: 100%;
height: 100%;
background-color: #fff;
color: #939393;
}
/*左侧栏主盒子*/
.nav_left{
/*设置行内块级元素(没使用定位)*/
display: inline-block;
width: 25%;
height: 100%;
/*主盒子设置背景色为灰色*/
background: #f5f5f5;
text-align: center;
}
/*左侧栏list的item*/
.nav_left .nav_left_items{
/*每个高30px*/
height: 30px;
/*垂直居中*/
line-height: 30px;
/*再设上下padding增加高度,总高42px*/
padding: 6px 0;
/*只设下边线*/
border-bottom: 1px solid #dedede;
/*文字14px*/
font-size: 14px;
}
/*左侧栏list的item被选中时*/
.nav_left .nav_left_items.active{
/*背景色变成白色*/
background: #fff;
}
/*右侧栏主盒子*/
.nav_right{
/*右侧盒子使用了绝对定位*/
position: absolute;
top: 0;
right: 0;
flex: 1;
/*宽度75%,高度占满,并使用百分比布局*/
width: 75%;
height: 100%;
padding: 10px;
box-sizing: border-box;
background: #fff;
}
/*右侧栏list的item*/
.nav_right .nav_right_items{
/*浮动向左*/
float: left;
/*每个item设置宽度是33.33%*/
width: 33.33%;
height: 80px;
text-align: center;
}
.nav_right .nav_right_items image{
/*被图片设置宽高*/
width: 50px;
height: 30px;
}
.nav_right .nav_right_items text{
/*给text设成块级元素*/
display: block;
margin-top: 5px;
font-size: 10px;
/*设置文字溢出部分为...*/
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
js:
Page({
data: {
navLeftItems: [],
navRightItems: [],
curNav: 1,
curIndex: 0
},
onLoad: function() {
// 加载的使用进行网络访问,把需要的数据设置到data数据对象
var that = this
wx.request({
url: 'http://huanqiuxiaozhen.com/wemall/goodstype/typebrandList',
method: 'GET',
data: {},
header: {
'Accept': 'application/json'
},
success: function(res) {
console.log(res)
that.setData({
navLeftItems: res.data,
navRightItems: res.data
})
}
})
},
//事件处理函数
switchRightTab: function(e) {
// 获取item项的id,和数组的下标值
let id = e.target.dataset.id,
index = parseInt(e.target.dataset.index);
// 把点击到的某一项,设为当前index
this.setData({
curNav: id,
curIndex: index
})
}
})
demo地址:侧栏分类效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# 微信小程序分类
# 微信小程序商城
# 微信小程序侧栏分类
# 微信小程序实现侧边栏分类
# 微信小程序外卖选购页实现切换分类与数量加减功能案例
# 微信小程序首页的分类功能和搜索功能的实现思路及代码详解
# 微信小程序的分类页面制作
# 微信小程序商城项目之淘宝分类入口(2)
# 微信小程序商城项目之商品属性分类(4)
# 微信小程序 仿美团分类菜单 swiper分类菜单
# 微信小程序实现侧边分类栏
# 就用
# 背景色
# 会有
# 暂无
# 遍历
# 设为
# 为例
# 无图片
# 大家多多
# 如下图
# 设下
# 找到相关
# 占满
# 加载
# 使用了
# 成块
# 无数据
# nav_right_items
# tree
# navigator
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在IIS中新建站点并配置端口与物理路径?
Laravel如何为API生成Swagger或OpenAPI文档
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
EditPlus中的正则表达式 实战(2)
Swift中循环语句中的转移语句 break 和 continue
如何快速查询网站的真实建站时间?
node.js报错:Cannot find module 'ejs'的解决办法
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
微信小程序 canvas开发实例及注意事项
Laravel如何自定义分页视图?(Pagination示例)
历史网站制作软件,华为如何找回被删除的网站?
如何在云主机快速搭建网站站点?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
网站制作价目表怎么做,珍爱网婚介费用多少?
javascript中对象的定义、使用以及对象和原型链操作小结
Laravel API资源类怎么用_Laravel API Resource数据转换
Laravel如何处理文件下载请求?(Response示例)
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
制作电商网页,电商供应链怎么做?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
深入理解Android中的xmlns:tools属性
黑客如何通过漏洞一步步攻陷网站服务器?
详解jQuery停止动画——stop()方法的使用
js实现点击每个li节点,都弹出其文本值及修改
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Android GridView 滑动条设置一直显示状态(推荐)
中国移动官方网站首页入口 中国移动官网网页登录
如何在阿里云高效完成企业建站全流程?
Laravel怎么为数据库表字段添加索引以优化查询
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Python函数文档自动校验_规范解析【教程】
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
如何用AWS免费套餐快速搭建高效网站?
Laravel怎么实现模型属性的自动加密
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何在IIS中配置站点IP、端口及主机头?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
北京企业网站设计制作公司,北京铁路集团官方网站?

