微信小程序云开发项目实战之商城开发日记 03

news/2024/7/20 3:46:34 标签: 小程序, html, css, 前端

经过了昨天的内容,相信大家已经多微信html" title=小程序>小程序的前端页面编写有了一定的认识,昨天的内容是非常重要的,尤其是flex布局,会贯彻整个项目的开发。

今天我们来编写tabbar页中的分类页前端代码。

分类页我的设计就是很大众的那种,左右布局,左边提供分类框,右边展示对应分类的商品。核心要点还是flex布局。

我们先把整体的框架做出来

html"><view class="body">

 <view class="left"></view>

 <view class="right"></view>

</view>
css">page {

 width: 100%;

 height: 100%;

}

.body {

 display: flex;

 flex-direction: row;

 width: 100%;

 height: 100%;

}

.body > .left {

 width: 25%;

 background-color: red;

}

.body > .right {

 width: 75%;

 background-color: black;

}

效果:
在这里插入图片描述
我们可以看到现在左右布局的框架已经出来了

下面我们开始填充其内部的内容

左边的分类和首页那里的分类一样,还是10种,大家也可以根据实际需求进行更改。

我们先来写左边的部分:

html"><view class="left">

  <view wx:for="{{left_name}}" wx:key="index" bindtap="selectId" data-name="{{item.name}}"

   class="{{name == item.name ? 'left_name_hover' : ''}}">

   <view class="name">{{item.name}}</view>

  </view>

 </view>
css">.left {

 width: 25%;

 height: 100%;

 background-color: #f3f3f3;

 display: flex;

 flex-direction: column;

 justify-content: center;

 align-items: center;

}

.left > view , .left_name_hover {

 text-align: center;

 height: 10%;

 font-size: 28rpx;

 width: 100%;

 display: flex;

 justify-content: center;

 align-items: center;

}

.left_name_hover {
    
 background-color: white;

 color: green;

 border-left: 20rpx solid green;

}
data: {

  left_name:[

   {id:1,name:'水果'},

   {id:2,name:'蔬菜'},

   {id:3,name:'肉禽蛋品'},

   {id:4,name:'海鲜水产'},

   {id:5,name:'粮油调味'},

   {id:6,name:'熟食卤味'},

   {id:7,name:'冰品面点'},

   {id:8,name:'牛奶面包'},

   {id:9,name:'酒水冷饮'},

   {id:10,name:'休闲零食'}

]

 },

 selectId(res){

  var that = this;

  var name = res.currentTarget.dataset.name;

  console.log(name);

  that.setData({

   name:name

  })

 },

这段代码其实还是一个对flex布局的运用,要注意到的一个是,我在里面用了一个三目运算的操作。

因为用户在点击左边的分类时,被点击的块肯定要出现选中的状态。如果用hover伪类来做的话,达不到我们的要求,所以我通过三目运算动态添加它的class

在这里给大家讲一个知识点,组件的data-属性,大家可以看到我在一个view上写了一个data-name="{{item.name}}"的操作,而且这个view是存在点击事件selectId的,data-可以向事件传递一个参数,我们在selectId里获取的那个res.currentTarget.dataset.name就是我们在组件上写的那个data-name。这个知识点还是比较重要的,当你需要通过组件传递给事件参数的时候,这样比较容易

看一下效果:
在这里插入图片描述
还是比较nice的。

下面我们来写右边的内容。

html"><view class="right">

  <image src="../../images/banner.jpg" mode="widthFix"></image>

  <view class="product" wx:for="{{product}}">

   <image src="{{item.img_src}}"></image>

   <view class="text"><text>{{item.name}}</text><text>{{item.desc}}</text><text>¥{{item.price}}</text>

   </view>

   <text>销量:{{item.count}}</text>

  </view>

 </view>
css">.right > image {

 width: 95%;

 border-radius: 100rpx;

 height: 300rpx;

 margin: 0 auto; 

 margin-top: 30rpx;

 display: flex;

}

.product {

 width: 100%;

 display: flex;

 flex-direction: row;

 align-items: center;

 position: relative;

 padding-left: 20rpx;

}

.product > image {

 width: 100rpx;

 height: 100rpx;

}

.product > .text {

 display: flex;

 flex-direction: column;

 margin-left: 20rpx;

}

.product > .text :nth-child(1){

 margin: 20rpx 0;

 font-weight: bold;

}

.product > .text :nth-last-child(2){

 color: gray;

 font-size: 26rpx;

}

.product > .text :nth-child(3){

 color: red;

 margin-top: 20rpx;

}

.product > text {

 position: absolute;

 right: 40rpx;

 bottom: 10rpx;

 font-size: 26rpx;

}
data: {

  product:[

   {img_src:'../../images/apple.png',name:'苹果',desc:'6元一斤,进口水果',price:6,count:33},

   {img_src:'../../images/egg.png',name:'鸡蛋',desc:'10元一斤,存量不多,想要的尽快',price:10,count:44},

   {img_src:'../../images/watermelon.png',name:'西瓜',desc:'4元一斤,又大又甜',price:4,count:55},

  ]

 },

到现在为止,大家看这些代码的时候,应该已经比较熟练了才多,wx:for + flex布局就非常好的完成了这部分代码的编写。

效果:
在这里插入图片描述
我们现在写的都是死数据,等我们做到前后端交互的时候,才能实现数据的动态渲染

今天的内容差不多要结束了,如果你真的跟着我连着敲了两天,你会发现,微信html" title=小程序>小程序的前端页面编写起来是比较简单的。熟练掌握flex布局会查文档会用组件即可。

点赞、关注、收藏都是对作者莫大的鼓励,谢谢!

有任何问题可以联系QQ:505417246

零基础入门微信html" title=小程序>小程序云开发QQ群:1073011570

关注下面微信公众号,可以领取微信html" title=小程序>小程序、Vue、TypeScript、前端、uni-app、全栈、Nodejs等实战学习资料
在这里插入图片描述


http://www.niftyadmin.cn/n/1576630.html

相关文章

spring boot配置连接sqlserver、mysql、达梦数据源以及进行多数据库查询(避坑总结)

说明 在Spring Boot中进行sqlserver连接跟mysql之类的连接有点差别&#xff0c;mysql跟达梦连接方式一样&#xff0c;测试项目使用的使jdk1.8有的时候版本导入不正确可能会出现bug 步骤 1、导包 <dependency><groupId>com.microsoft.sqlserver</groupId>&…

【JavaWeb】(10)微信公众号开发进阶

因为普通开发会有很多的权限限制&#xff0c;所以我们能够申请一个測试账号来开发体验一下微信公众号的其它接口功能。申请測试号我就不介绍了。非常easy。申请成功后&#xff0c;还须要配置Url地址和token&#xff0c;和我们普通公众账号填写的一致就能够了。 1. 图文消息 这里…

微信小程序云开发项目实战之商城开发日记 04

今天是愉快开发商城项目的第四天了&#xff0c;相信如果大家跟着我能把前两天的前端内容敲完&#xff0c;相信你是有比较大的收货的。 今天的内容是完成购物车的前端代码。 购物车的设计还是比较常规的UI&#xff0c;展示商品的信息&#xff0c;提供选中按钮&#xff0c;提供…

springCloud集成redis快速搭建

redis集成可以将其直接进行导入RedisTemplate&#xff0c;或者通过封装之后直接调用&#xff0c;具体怎么操作根据个人喜好去开发&#xff0c;一下介绍一下后者方法&#xff0c;在开发过程中可以直接调用&#xff0c;开发方便 1、下载redis或者docker上进行部署 docker部署直…

微信小程序云开发项目实战之商城开发日记 05

hello童鞋们&#xff0c;我又来了&#xff0c;今天写tabbar的最后一个页面&#xff0c;个人中心页。 个人中心页的布局也是比较常规的。其实当你看过了很多成品之后你会发现&#xff0c;代码千篇一律&#xff0c;重要的还是UI的设计。 顶部是一个头像和昵称的展示&#xff0c…

前端之HTML学习

HTML学习 请带着以下几个问题进行学习&#xff1a; 什么是HTML、HTML文档类型起到什么作用、HTML5和HTML4有哪些区别、pc端和移动端页面有什么区别、什么是块级元素什么是内联元素、块级元素和内联元素的区别、什么是HTML标签语义化基础知识学习和实例演练教程html教程html5教程…

将SpringBoot项目打包成war,并且Tomcat读取外置的文件

这里写自定义目录标题SpringBoot项目打包成war&#xff0c;并且Tomcat可以读取外置的文件部署tomcat修改SpringBoot项目SpringBoot项目打包成war&#xff0c;并且Tomcat可以读取外置的文件 Springboot项目内置Tomcat一般情况下不需要在进行tomcat的配置&#xff0c;在一些特殊…

JavaScript的基础清单(超级全面!!!)

1.js类型 首先&#xff0c;现在js的类型有以下几种: 基本类型 : String , Number , null , undefined , Boolean , Symbol , Bigint引用类型 : object , function &#xff08;1&#xff09;基本类型和应用类型的区别 基本数据类型是按值访问的&#xff0c;因为可以直接操作保…