1.关于mock的使用

第一步:先到Mock官网(http://mockjs.com/)上面熟悉一下基本用法

第一步:具体使用实例:

  • 下载wxMock.js和mock.js文件 下载地址:https://github.com/webx32/WxMock
  • 参考git上的使用方法,使用的时候值得注意的点:需要在使用模拟接口的js文件中用require引入对应的接口:

如:接口文件:home.js

  1. /**视频详情获取接口 */
  2. var Mock=require('./WxMock.js')
  3. var Random = Mock.Random;
  4. var videoDetail = Mock.mock('https://tangxinyu.com/videoDetail',{
  5. "codeText": "请求成功",
  6. "code": 200,
  7. "data": {
  8. videoInfo: {
  9. author:"阿兰若",
  10. commentcount:12435,
  11. date:"2019-11-07",
  12. id:233,
  13. playCount:"24.7万",
  14. videoSrc:Random.image('200X150',Random.color(),"视频详情"),
  15. videoTitle:"世界上最美的童话镇,你要去看吗?请带我……"
  16. }
  17. }
  18. })
  19. export default {
  20. navList,
  21. swiperList,
  22. videoList,
  23. videoDetail
  24. }

  使用接口文件:index.js

  1. var videoDetail=require('../../utils/home.js')
  2. getCurentVideo(){
  3. var that=this;
  4. wx.request({
  5. url: 'https://tangxinyu.com/videoDetail',
  6. success(res){
  7. if(res.code==200){
  8. that.setData({
  9. videoInfo: res.data.videoInfo
  10. })
  11. }
  12. console.log("res",res)
  13. }
  14. })
  15. },

2.关于页面跳转

<navigator url="../detail/detail?id={{index}}" class="video_item" wx:for="{{videoLists}}" wx:key="{{index}}">

此处需要注意的是 url属性中的传参方式:url="../detail/detail?id={{index}}"

其他使用可参考官网:https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html

3.关于css使用总结:

  • 导航栏:对于块级元素想要使其显示成一行最简单可以使用:display:inline-block,不用使用display:flex。如:
  1. <style>
  2. .item{
  3. display: inline-block;
  4. padding: 0 20px;
  5. }
  6. </style>
  7. <div>
  8. <div class="item">条目1</div>
  9. <div class="item">条目2</div>
  10. <div class="item">条目3</div>
  11. <div class="item">条目4</div>
  12. </div>

不加样式效果图:

加样式后效果图:

其他:white-space: nowrap; 不因空格换行

  • 视频列表:弹性布局列表使用
  1. .video_wrap{
  2. display: flex; /**1.设置弹性盒子*/
  3. /* 换行 */
  4. flex-wrap: wrap;/**2.超出行宽自动换行*/
  5. padding: 10rpx;
  6. /* 空隙显示在中间 */
  7. justify-content: space-between;/**3.空隙中间显示*/
  8. }
  9. .video_item{
  10. width: 48%;/**可通过调整子元素宽度占比来控制一行显示几个子元素*/
  11. margin-top: 20rpx
  12. }

示例:

  1. <style>
  2. .wrap{
  3. display: flex;
  4. width: 400px;
  5. justify-content: space-between;
  6. flex-wrap: wrap;
  7. border: 1px solid rgb(51, 142, 247)
  8. /* overflow: hidden */
  9. }
  10. .item{
  11. background-color: #4c4c;
  12. border:1px solid #4c4c4c;
  13. height: 100px;
  14. width: 40%;
  15. margin-top: 20px
  16. }
  17. </style>
  18.  
  19. <div class="wrap">
  20. <div class="item">item1</div>
  21. <div class="item">item2</div>
  22. <div class="item">item3</div>
  23. <div class="item">item4</div>
  24. </div>

未添加123点样式图:

效果图:

  • relative+absolute定位的使用:使父元素具有盒子特性,盒子内部样式不受外部影响

示例代码:

  1. .wrap {
  2. display: flex;
  3. width: 400px;
  4. justify-content: space-between;
  5. flex-wrap: wrap;
  6. border: 1px solid rgb(51, 142, 247)
  7. }
  8.  
  9. .item {
  10. background-color: #4c4c;
  11. border: 1px solid #4c4c4c;
  12. height: 100px;
  13. width: 40%;
  14. margin-top: 20px;
  15. position: relative
  16. }
  17.  
  18. .item_head {
  19. position: absolute;
  20. top: 0;
  21. text-align: center;
  22. width: 100%
  23. }
  24.  
  25. .item_foot {
  26. position: absolute;
  27. bottom: 0;
  28. text-align: center;
  29. width: 100%
  30. }
  31.  
  32. <div class="wrap">
  33. <div class="item">
  34. <div class="item_head">盒子头部文字</div>
  35. <div class="item_foot">盒子底部文字</div>
  36. </div>
  37. <div class="item">item2</div>
  38. <div class="item">item3</div>
  39. <div class="item">item4</div>
  40. </div>

未添加样式效果图:

添加样式后效果图:

此项目中使用场景:在广告图片上显示一些短的信息详情

  • 文字显示省略隐藏问题
  1. .video_title{
  2. font-size: 30rpx;
  3. display: -webkit-box;
  4. white-space: normal;
  5. /* 超出显示…… */
  6. text-overflow: ellipsis;
  7. word-wrap: break-word;
  8. /* 为了实现文字超出设置行显示……该效果,它需要组合其他外来的WebKit属性。常见结合属性:
  9. display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  10. -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
  11. text-overflow,可以用来多行文本的情况下,用省略号“...”隐藏超出范围的文本 。 */
  12. /* 不兼容IE和firefox */
  13. /* 限制文本显示行数 */
  14. -webkit-line-clamp: 2;
  15. /*垂直排列子元素 兼容safari\opera\chrome */
  16. -webkit-box-orient: vertical;
  17. /* 兼容firefox */
  18. -moz-box-orient: vertical;
  19. }

演示示例:

  1. .item1 {
  2. width: 300px;
  3. display: -webkit-box;
  4. border: 1px solid #3f3f;
  5. -webkit-line-clamp: 1;
  6. text-overflow: ellipsis;
  7. word-wrap: break-word;
  8. white-space: normal;
  9. /*垂直排列子元素 兼容safari\opera\chrome */
  10. -webkit-box-orient: vertical;
  11. /* 兼容firefox */
  12. -moz-box-orient: vertical;
  13. /* 超出部分隐藏 */
  14. overflow: hidden
  15. }
  16.  
  17. .item2 {
  18. width: 300px;
  19. /* 兼容firefox */
  20. display:-moz-box;
  21. display: -webkit-box;
  22. border: 1px solid #3f3f;
  23. margin-top: 10px;
  24. -webkit-line-clamp: 2;
  25. text-overflow: ellipsis;
  26. word-wrap: break-word;
  27. white-space: normal;
  28. /*垂直排列子元素 兼容safari\opera\chrome */
  29. -webkit-box-orient: vertical;
  30. /* 兼容firefox */
  31. -moz-box-orient: vertical;
  32. /* 超出部分隐藏 */
  33. overflow: hidden
  34. }
  35. <div class="item1">
  36. 一行文本:长江、尼罗河、亚马孙河、多瑙河昼夜不息、奔腾向前,尽管会出现一些回头浪,尽管会遇到很多险滩暗礁,但大江大河奔腾向前的势头是谁也阻挡不了的。
  37. </div>
  38. <div class="item2">
  39. 二行文本:长江、尼罗河、亚马孙河、多瑙河昼夜不息、奔腾向前,尽管会出现一些回头浪,尽管会遇到很多险滩暗礁 ,但大江大河奔腾向前的势头是谁也阻挡不了的。
  40. </div>

未加样式图:

加上样式图:

但是由于兼容性问题,不推荐使用该方法实现多行文字超出显示……问题

解决办法:

  1. div {
  2. position: relative;
  3. /* 可通过max-height和line-height控制显示行数 */
  4. line-height: 20px;
  5. max-height: 40px;
  6. /*注意: 超出一定要隐藏 */
  7. overflow: hidden;
  8. }
  9.  
  10. div::after {
  11. content: "...";
  12. position: absolute;
  13. bottom: 0;
  14. right: 0;
  15. padding-left: 40px;
  16. /* 使用backgorund属性用渐变背景色遮盖行尾部分字体,用以...代替 */
  17. background: -webkit-linear-gradient(left, transparent, #fff 55%);
  18. background: -o-linear-gradient(right, transparent, #fff 55%);
  19. background: -moz-linear-gradient(right, transparent, #fff 55%);
  20. background: linear-gradient(to right, transparent, #fff 55%);
  21. }

linear-gradient的兼容性:

效果图:

  • display:flex+flex:num的使用,使用场景:横排或竖排(用flex-direction调整)时使父元素中的子元素按比例平分父元素所占空间

示例代码:

  1. .wrap {
  2. width: 400px;
  3. border: 1px solid #4c4c4c;
  4. display: flex
  5. }
  6. .item1{
  7. background-color: #d3ec77;
  8. flex: 1
  9. }
  10. .item2{
  11. background-color: #dc83ee;
  12. flex: 3
  13. }
  14. .item3{
  15. background-color: #f3c853;
  16. flex: 4
  17. }
  18.  
  19. <div class="wrap">
  20. <div class="item1">1份</div>
  21. <div class="item2">3份</div>
  22. <div class="item3">4份</div>
  23. </div>

样式未添加效果图:

样式添加效果图:

本次学习总结完毕,不足之处请指正

bilibili小程序项目总结的更多相关文章

  1. 开发一个微信小程序项目教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...

  2. 微信小程序开发01 --- 微信小程序项目结构介绍

    一.微信小程序简单介绍: 微信官方介绍微信小程序是一个不需要下载安装就可使用(呵呵,JS代码不用下载吗?展示的UI不用下载吗?)的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用. ...

  3. 高仿Readhub小程序 微信小程序项目【原】

    # News #### 项目介绍微信小程序项目涉及功能 https://gitee.com/richard1015/News https://github.com/richard1015/News 高 ...

  4. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

  5. 微信小程序项目实战之天气预报

    概述 微信小程序项目实战之天气预报 详细 代码下载:http://www.demodashi.com/demo/10634.html 一.准备工作 1.注册微信小程序 2.注册和风天气账号 3.注册百 ...

  6. 微信小程序项目实战之豆瓣天气

    概述 微信小程序项目实战之豆瓣天气 详细 代码下载:http://www.demodashi.com/demo/10943.html 一.准备工作 1.注册微信小程序 2.在小程序设置中设置reque ...

  7. 微信小程序——初始化一个小程序项目

    最近准备学习一下微信小程序,因为之前有react native项目经验,学习起来应该困难不大 微信小程序官网地址:https://mp.weixin.qq.com/debug/wxadoc/dev/i ...

  8. 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记1)WePY开发环境的安装

    WePY的安装或更新都通过npm进行,全局安装或更新WePY命令行工具,使用以下命令: npm install wepy-cli -g 稍等片刻,成功安装后,即可创建WePY项目. 注意:如果npm安 ...

  9. 微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架

    Taro本身实现的情况类似于mpvue,mpvue的未来展望中也包含了支付宝小程序,现在的版本中,也可以使用不同的构建命令来构建出百度小程序的支持,如第10章所示,但是现在Taro先于mpvue实现了 ...

随机推荐

  1. Struts数据回显和模型驱动

    prams拦截器,可以把请求数据自动填充的action的属性中 举例1: JSP <input type=text name=userName /> <input type=text ...

  2. javascript定时器方法使用

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. log4j日志配置文件

    log4j.properties: ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdo ...

  4. electron-vue小试身手

    最近一个项目(vue)需求是用硬件来触发web端页面显示以及效果的切换,客户的硬件设备只支持用tcp协议通讯,而我们的前端呢是用不了tcp的,众所周知在浏览器端,我们只能用http/https协议(a ...

  5. 整合Django的信息显示框架messages framework

    ##主要用在view.login函数,不管登录是否成功,都会设置message变量,然后在login.html显示 from django.contrib import messages#需要导的包 ...

  6. swoole前置基础知识1——1.1多进程/多线程的概念

    一.为何需要多进程(或者多线程),为何需要并发? 这个问题或许本身都不是个问题.但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性. 我想,只要你不是整天都写那种int m ...

  7. 【Linux开发】Linux模块机制浅析

    Linux允许用户通过插入模块,实现干预内核的目的.一直以来,对linux的模块机制都不够清晰,因此本文对内核模块的加载机制进行简单地分析. 模块的Hello World! 我们通过创建一个简单的模块 ...

  8. kindeditor-4.1.7

    <script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></s ...

  9. selenium-server--chromedriver环境

    x 准备环境: 1.selenium-server-standalone-3.8.1.jar 2.chromedriver.exe 一.查看本地电脑chrome浏览器版本信息: 二.访问代理地址:ht ...

  10. [爬虫] requests库

    requests库的7个常用方法 requests.request() 构造一个请求,支撑以下各种方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET re ...