目录

一、flex布局

Flex布局简介

什么是flex布局?

flex属性

flex的属性

二、轮播图组件及mockjs的使用

三、会议OA小程序首页布局

一、flex布局

Flex布局简介

布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性

什么是flex布局?

1) Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。

2) 任何一个容器都可以指定为Flex布局。

3) display: ‘flex’

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

flex属性

  • flex-direction 主轴的方向 默认为row

  • flex-wrap 如果一条轴线排不下,如何换行

  • flex-flow 是flex-direction属性和flex-wrap属性的简写形式

  • justify-content 定义了项目在主轴上的对齐方式

  • align-items 定义项目在交叉轴上如何对齐

  • align-content 属性定义了多根轴线的对齐方式

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

学习地址:Flex 布局语法教程 | 菜鸟教程

准备工作:打开我们的微信开发工具

新建一个小程序项目

目标

搭建框架

将static的文件夹放入小程序项目中

以下是static中的内容

构建我们的界面

此时的app.json

{"pages": ["pages/index/index","pages/meeting/list/list","pages/vote/list/list","pages/ucenter/index/index"],"window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "Weixin","navigationBarTextStyle": "black"},"tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "/static/tabBar/coding.png","selectedIconPath": "/static/tabBar/coding-active.png"},{"pagePath": "pages/meeting/list/list","iconPath": "/static/tabBar/sdk.png","selectedIconPath": "/static/tabBar/sdk-active.png","text": "会议"},{"pagePath": "pages/vote/list/list","iconPath": "/static/tabBar/template.png","selectedIconPath": "/static/tabBar/template-active.png","text": "投票"},{"pagePath": "pages/ucenter/index/index","iconPath": "/static/tabBar/component.png","selectedIconPath": "/static/tabBar/component-active.png","text": "设置"}]},"style": "v2","sitemapLocation": "sitemap.json"
}

体会一下什么是flex布局

编辑list.wxml和list.wxss

 list.wxml

<!--pages/meeting/list/list.wxml-->
<!-- <text>pages/meeting/list/list.wxml</text> -->
<view class="box">
<view>1</view>
<view>2</view>
<view>3</view>
<view>4</view>
<view>5</view>
<view>6</view>
<view>7</view>
<view>8</view>
<view>9</view>
<view>10</view>
<view>11</view>
<view>12</view>
</view>

list.wxss(使用了flex的代码)

/* pages/meeting/list/list.wxss */
.box{height: 750rpx;width: 750rpx;background-color: aquamarine;display: flex;
}
view{height: 100rpx;width: 100rpx;border: 1px solid pink;
}

未使用flex布局的效果图

使用的效果图

结论:使用flex布局(弹性布局)后,不会因为屏幕变小而导致效果失真

flex的属性

想要了解更多,大家可以去看提供的学习地址

二、轮播图组件及mockjs的使用

体验以下轮播图组件的使用

通过开发文档找到该组件

点击在开发者工具中预览效果

效果图

会自动播放

找到我们所需要的功能代码复制到小程序项目中去,然后根据项目对代码进行修改

index.wxml

<!--pages/index/index.wxml-->
<!-- <text>pages/index/index.wxml</text> -->
<view><swiper autoplay="true" indicator-dots="true" indicator-color="#fff" indicator-active-color="#00f"><block wx:for="{{imgSrcs}}" wx:key="text"><swiper-item><view><image src="{{item.img}}" class="swiper-item" /></view></swiper-item></block></swiper>
</view>

在没有后台的情况下会使用mockjs来造数据

mockjs的使用

新建一个config的文件夹,里面新建一个app.js的文件

 app.js

// 以下是业务服务器API地址// 本机开发API地址var WxApiRoot = 'http://localhost:8080/demo/wx/';// 测试环境部署api地址// var WxApiRoot = 'http://192.168.0.101:8070/demo/wx/';// 线上平台api地址//var WxApiRoot = 'https://www.oa-mini.com/demo/wx/';module.exports = {IndexUrl: WxApiRoot + 'home/index', //首页数据接口SwiperImgs: WxApiRoot+'swiperImgs', //轮播图MettingInfos: WxApiRoot+'meeting/list', //会议信息};

index.js

// pages/index/index.js
const api = require("../../config/app")
Page({/*** 页面的初始数据*/data: {imgSrcs:[]//需要调用http://localhost:8080/demo/wx/swiperImgs接口地址拿数据},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.loadSwiperImgs();},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {},//加载图片loadSwiperImgs(){let that=this;// http://localhost:8080/demo/wx/swiperImgswx.request({url: api.SwiperImgs,dataType: 'json',success(res) {console.log(res)that.setData({imgSrcs:res.data.images})}})}
})

效果图:

三、会议OA小程序首页布局

调整一下样式

index.wxss

/* pages/index/index.wxss */
page{height: 100%;background-color: #efeff4;
}
.swiper-item {height: 300rpx;width: 100%;border-radius: 10rpx;
}

在没有后台的情况下我们之前是使用mock工具 提供的图片,现在我们将数据固定

index.js

// pages/index/index.js
const api = require("../../config/app")
Page({/*** 页面的初始数据*/data: {imgSrcs:[],//需要调用http://localhost:8080/demo/wx/swiperImgs接口地址拿数据lists:[{"id": "1","image": "/static/persons/1.jpg","title": "对话产品总监 | 深圳·北京PM大会 【深度对话小米/京东/等产品总监】","num":"304","state":"进行中","starttime": "2022-03-13 00:00:00","location": "深圳市·南山区"},{"id": "1","image": "/static/persons/2.jpg","title": "AI WORLD 2016世界人工智能大会","num":"380","state":"已结束","starttime": "2022-03-15 00:00:00","location": "北京市·朝阳区"},{"id": "1","image": "/static/persons/3.jpg","title": "H100太空商业大会","num":"500","state":"进行中","starttime": "2022-03-13 00:00:00","location": "大连市"},{"id": "1","image": "/static/persons/4.jpg","title": "报名年度盛事,大咖云集!2016凤凰国际论坛邀您“与世界对话”","num":"150","state":"已结束","starttime": "2022-03-13 00:00:00","location": "北京市·朝阳区"},{"id": "1","image": "/static/persons/5.jpg","title": "新质生活 · 品质时代 2016消费升级创新大会","num":"217","state":"进行中","starttime": "2022-03-13 00:00:00","location": "北京市·朝阳区"}]},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.loadSwiperImgs();},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {},//加载图片loadSwiperImgs(){let that=this;// http://localhost:8080/demo/wx/swiperImgswx.request({url: api.SwiperImgs,dataType: 'json',success(res) {console.log(res)that.setData({imgSrcs:res.data.images})}})}
})

index.wxml

<!--pages/index/index.wxml-->
<!-- <text>pages/index/index.wxml</text> -->
<view><swiper autoplay="true" indicator-dots="true" indicator-color="#fff" indicator-active-color="#00f"><block wx:for="{{imgSrcs}}" wx:key="text"><swiper-item><view><image src="{{item.img}}" class="swiper-item" /></view></swiper-item></block></swiper>
</view>
<view class="mobi-title"><text class="mobi-icon"></text><text>会议信息</text>
</view>
<block wx:for-items="{{lists}}" wx:for-item="item" wx:key="item.id"><view class="list" data-id="{{item.id}}"><view class="list-img"><image class="video-img" mode="scaleToFill" src="{{item.image}}"></image></view><view class="list-detail"><view class="list-title"><text>{{item.title}}</text></view><view class="list-tag"><view class="state">{{item.state}}</view><view class="join"><text class="list-num">{{item.num}}</text>人报名</view></view><view class="list-info"><text>{{item.address}}</text>|<text>{{item.time}}</text></view></view></view>
</block>
<view class="section bottom-line"><text>到底啦</text>
</view>

此时的效果图:

我们对其进行调整

index.wxss

/* pages/index/index.wxss */
page{height: 100%;background-color: #efeff4;
}
.swiper-item {height: 300rpx;width: 100%;border-radius: 10rpx;
}
.mobi-title{line-height: 120%;margin: 10rpx;/* margin-top: -50px; */
}
.mobi-icon{padding: 0 3rpx;background-color: #ff7777;
}
.list{display: flex;margin: 20rpx 0;background-color:#ffffff;
}
.list-img,.video-img{height: 120rpx;width: 120rpx;
}
.video-img{margin:20px 10rpx;
}
.list-detail{/* border: 2px solid red; */height: 220rpx;width: 600rpx;margin: 5rpx 20rpx;
}
.list-title{font-weight: 700;
}
.list-tag{display: flex;margin: 10rpx 0;
}
.state,.join{border: 1px solid rgb(160, 216, 235);padding: 10rpx;
}
.list-num{color: red;
}
.bottom-line{text-align: center;margin-bottom: 10px;
}

index.wxml

<!--pages/index/index.wxml-->
<!-- <text>pages/index/index.wxml</text> -->
<view><swiper autoplay="true" indicator-dots="true" indicator-color="#fff" indicator-active-color="#00f"><block wx:for="{{imgSrcs}}" wx:key="text"><swiper-item><view><image src="{{item.img}}" class="swiper-item" /></view></swiper-item></block></swiper>
</view>
<view class="mobi-title"><text class="mobi-icon"></text><text>会议信息</text>
</view>
<block wx:for-items="{{lists}}" wx:for-item="item" wx:key="item.id"><view class="list" data-id="{{item.id}}"><view class="list-img"><image class="video-img" mode="scaleToFill" src="{{item.image}}"></image></view><view class="list-detail"><view class="list-title"><text>{{item.title}}</text></view><view class="list-tag"><view class="state">{{item.state}}</view><view class="join"><text class="list-num">{{item.num}}</text>人报名</view></view><view class="list-info"><text>{{item.location}}</text>|<text>{{item.starttime}}</text></view></view></view>
</block>
<view class="section bottom-line"><text>到底啦</text>
</view>

效果:

微信小程序:会议OA项目-首页相关推荐

  1. 微信小程序-会议OA项目03

    目录 1.Flex布局简介 1.1 什么是flex布局 1.2 flex属性 2.轮播图--组件的使用 3.会议OA项目-首页 1.Flex布局简介 布局的传统解决方案,基于盒状模型,依赖 displ ...

  2. 微信小程序如何修改项目首页

    看上图就能明白,如果想修改项目目录首页只需要把顺序调换一下,微信小程序开发工具就会自动识别替换目录.看下图演示: 这样就可以调换成功了.

  3. 【愚公系列】2022年11月 微信小程序-本地生活项目-首页

    文章目录 前言 1.本地生活服务平台的优势 一.首页 二.效果 前言 从线下企业到线上企业的整合是传统产业和互联网技术的有机结合.它看起来像一个简单的平台,但是它将给消费者和用户带来极大的便利.在电子 ...

  4. 详解微信小程序开发(项目从零开始)

    关注公众号 风色年代(itfantasycc) 280G前端&小程序资料随便拿! 详解微信小程序开发(项目从零开始) 一.序 微信小程序,估计大家都不陌生,现在应用场景特别多.今天就系统的介绍 ...

  5. 微信小程序云音乐项目

    微信小程序云音乐项目 微信小程序云音乐项目 1. 项目介绍 技术栈 项目使用库 项目目标 2. 页面效果和功能展示 3. 项目源码与 API 接口 4. 项目说明 5. 致谢 微信小程序云音乐项目 1 ...

  6. 微信小程序电商项目开发实战漫谈

    原创文章,若转载请于明显处标明出处和相关链接:https://www.toutiao.com/i6567868839856439822/,否则追究其法律责任! 2018年小程序内容电商风口已成,如果我 ...

  7. (微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好

    转载地址:(微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 作者:Happy王子乐 个人网站(整理 ...

  8. 微信小程序宠物商城项目源码来了~

    微信小程序蒙服汇项目源码来了~ 微信小程序垃圾分类项目源码来了~ 微信小程序校园社团管理系统项目源码来了~ 团队承接各类小程序定制,需要加微 code_gg_boy .小商城,购物,公司的一些管理,流 ...

  9. 视频教程-【三月】微信小程序云开发项目实战课程 - T3租机械-微信开发

    [三月]微信小程序云开发项目实战课程 - T3租机械 宁夏酷申科技有限公司技术总监,计算机专业毕业后一直从事技术开发和架构工作 袁永刚 ¥366.00 立即订阅 扫码下载「CSDN程序员学院APP」, ...

  10. 【第三篇】微信小程序云开发项目总结

    上篇文章:[第二篇]微信小程序云开发项目总结 功能点2:答疑解惑 这个功能点的实现基本与用户填写简历相同,都是用户上传数据到数据库,不加说明. 功能点3:消息回复 这个板块是用户查看管理员的回复消息的 ...

最新文章

  1. GNU/Linux平台上正则表达式的简单使用
  2. 如何在迭代时从列表中删除项目?
  3. linux查看是否有用户在使用分区,在Linux服务器中有几种查看分区表的方法
  4. Shell中的${ }、#、##、%、%%使用范例
  5. Web开发者必备的12款超赞jQuery插件
  6. GreenDao高级用法
  7. 订单额-销售额-回款额的关系您理清楚了吗?
  8. tensorflow随笔-acosh,acos
  9. SVG 和 CSS3 实现一个超酷爱心 Like 按钮
  10. Java中注释的使用
  11. EfficientPS:目前排名第一的高效高精度全景分割算法
  12. javascript数据结构与算法--二叉树遍历(中序)
  13. 【免费毕设】asp.net网上选课系统的设计与实现(源代码+lunwen)
  14. 优秀网络安全从业者的五项核心技能
  15. (第五周)结对项目——黄金点游戏
  16. 网页设计心得HTML心得体会3000,网页制作的心得体会
  17. 23考研线性代数复习笔记(自用)
  18. DevOps-SRE岗位到底是什么?
  19. office2013多次输入激活码的问题
  20. 暴走海贼王服务器谁在维护,暴走海贼王

热门文章

  1. 泡泡一分钟:BLVD: Building A Large-scale 5D Semantics Benchmark for Autonomous Driving
  2. 每日一句_《客中行》
  3. cent os运维知识
  4. if中逻辑运算符表达式运行顺序
  5. 基于环信webim视频语音通话
  6. 你所在的IT公司有多少人是培训机构出来的
  7. js逆向爬虫某openLaw网站
  8. dvwa详解_DVWA(六):XSS-Reflected 反射型XSS全等级详解
  9. 总结两个最近遇到 校园网连不上或丢失WLAN如何解决的方案
  10. 求助,Python安装了Anaconda之后python自带的IDEL无法引用第三方库