bilibili小程序项目总结
1.关于mock的使用
第一步:先到Mock官网(http://mockjs.com/)上面熟悉一下基本用法
第一步:具体使用实例:
- 下载wxMock.js和mock.js文件 下载地址:https://github.com/webx32/WxMock
- 参考git上的使用方法,使用的时候值得注意的点:需要在使用模拟接口的js文件中用require引入对应的接口:
如:接口文件:home.js
- /**视频详情获取接口 */
- var Mock=require('./WxMock.js')
- var Random = Mock.Random;
- var videoDetail = Mock.mock('https://tangxinyu.com/videoDetail',{
- "codeText": "请求成功",
- "code": 200,
- "data": {
- videoInfo: {
- author:"阿兰若",
- commentcount:12435,
- date:"2019-11-07",
- id:233,
- playCount:"24.7万",
- videoSrc:Random.image('200X150',Random.color(),"视频详情"),
- videoTitle:"世界上最美的童话镇,你要去看吗?请带我……"
- }
- }
- })
- export default {
- navList,
- swiperList,
- videoList,
- videoDetail
- }
使用接口文件:index.js
- var videoDetail=require('../../utils/home.js')
- getCurentVideo(){
- var that=this;
- wx.request({
- url: 'https://tangxinyu.com/videoDetail',
- success(res){
- if(res.code==200){
- that.setData({
- videoInfo: res.data.videoInfo
- })
- }
- console.log("res",res)
- }
- })
- },
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。如:
- <style>
- .item{
- display: inline-block;
- padding: 0 20px;
- }
- </style>
- <div>
- <div class="item">条目1</div>
- <div class="item">条目2</div>
- <div class="item">条目3</div>
- <div class="item">条目4</div>
- </div>
不加样式效果图:
加样式后效果图:
其他:white-space: nowrap; 不因空格换行
- 视频列表:弹性布局列表使用
- .video_wrap{
- display: flex; /**1.设置弹性盒子*/
- /* 换行 */
- flex-wrap: wrap;/**2.超出行宽自动换行*/
- padding: 10rpx;
- /* 空隙显示在中间 */
- justify-content: space-between;/**3.空隙中间显示*/
- }
- .video_item{
- width: 48%;/**可通过调整子元素宽度占比来控制一行显示几个子元素*/
- margin-top: 20rpx
- }
示例:
- <style>
- .wrap{
- display: flex;
- width: 400px;
- justify-content: space-between;
- flex-wrap: wrap;
- border: 1px solid rgb(51, 142, 247)
- /* overflow: hidden */
- }
- .item{
- background-color: #4c4c;
- border:1px solid #4c4c4c;
- height: 100px;
- width: 40%;
- margin-top: 20px
- }
- </style>
- <div class="wrap">
- <div class="item">item1</div>
- <div class="item">item2</div>
- <div class="item">item3</div>
- <div class="item">item4</div>
- </div>
未添加123点样式图:
效果图:
- relative+absolute定位的使用:使父元素具有盒子特性,盒子内部样式不受外部影响
示例代码:
- .wrap {
- display: flex;
- width: 400px;
- justify-content: space-between;
- flex-wrap: wrap;
- border: 1px solid rgb(51, 142, 247)
- }
- .item {
- background-color: #4c4c;
- border: 1px solid #4c4c4c;
- height: 100px;
- width: 40%;
- margin-top: 20px;
- position: relative
- }
- .item_head {
- position: absolute;
- top: 0;
- text-align: center;
- width: 100%
- }
- .item_foot {
- position: absolute;
- bottom: 0;
- text-align: center;
- width: 100%
- }
- <div class="wrap">
- <div class="item">
- <div class="item_head">盒子头部文字</div>
- <div class="item_foot">盒子底部文字</div>
- </div>
- <div class="item">item2</div>
- <div class="item">item3</div>
- <div class="item">item4</div>
- </div>
未添加样式效果图:
添加样式后效果图:
此项目中使用场景:在广告图片上显示一些短的信息详情
- 文字显示省略隐藏问题
- .video_title{
- font-size: 30rpx;
- display: -webkit-box;
- white-space: normal;
- /* 超出显示…… */
- text-overflow: ellipsis;
- word-wrap: break-word;
- /* 为了实现文字超出设置行显示……该效果,它需要组合其他外来的WebKit属性。常见结合属性:
- display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
- -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
- text-overflow,可以用来多行文本的情况下,用省略号“...”隐藏超出范围的文本 。 */
- /* 不兼容IE和firefox */
- /* 限制文本显示行数 */
- -webkit-line-clamp: 2;
- /*垂直排列子元素 兼容safari\opera\chrome */
- -webkit-box-orient: vertical;
- /* 兼容firefox */
- -moz-box-orient: vertical;
- }
演示示例:
- .item1 {
- width: 300px;
- display: -webkit-box;
- border: 1px solid #3f3f;
- -webkit-line-clamp: 1;
- text-overflow: ellipsis;
- word-wrap: break-word;
- white-space: normal;
- /*垂直排列子元素 兼容safari\opera\chrome */
- -webkit-box-orient: vertical;
- /* 兼容firefox */
- -moz-box-orient: vertical;
- /* 超出部分隐藏 */
- overflow: hidden
- }
- .item2 {
- width: 300px;
- /* 兼容firefox */
- display:-moz-box;
- display: -webkit-box;
- border: 1px solid #3f3f;
- margin-top: 10px;
- -webkit-line-clamp: 2;
- text-overflow: ellipsis;
- word-wrap: break-word;
- white-space: normal;
- /*垂直排列子元素 兼容safari\opera\chrome */
- -webkit-box-orient: vertical;
- /* 兼容firefox */
- -moz-box-orient: vertical;
- /* 超出部分隐藏 */
- overflow: hidden
- }
- <div class="item1">
- 一行文本:长江、尼罗河、亚马孙河、多瑙河昼夜不息、奔腾向前,尽管会出现一些回头浪,尽管会遇到很多险滩暗礁,但大江大河奔腾向前的势头是谁也阻挡不了的。
- </div>
- <div class="item2">
- 二行文本:长江、尼罗河、亚马孙河、多瑙河昼夜不息、奔腾向前,尽管会出现一些回头浪,尽管会遇到很多险滩暗礁 ,但大江大河奔腾向前的势头是谁也阻挡不了的。
- </div>
未加样式图:
加上样式图:
但是由于兼容性问题,不推荐使用该方法实现多行文字超出显示……问题
解决办法:
- div {
- position: relative;
- /* 可通过max-height和line-height控制显示行数 */
- line-height: 20px;
- max-height: 40px;
- /*注意: 超出一定要隐藏 */
- overflow: hidden;
- }
- div::after {
- content: "...";
- position: absolute;
- bottom: 0;
- right: 0;
- padding-left: 40px;
- /* 使用backgorund属性用渐变背景色遮盖行尾部分字体,用以...代替 */
- background: -webkit-linear-gradient(left, transparent, #fff 55%);
- background: -o-linear-gradient(right, transparent, #fff 55%);
- background: -moz-linear-gradient(right, transparent, #fff 55%);
- background: linear-gradient(to right, transparent, #fff 55%);
- }
linear-gradient的兼容性:
效果图:
- display:flex+flex:num的使用,使用场景:横排或竖排(用flex-direction调整)时使父元素中的子元素按比例平分父元素所占空间
示例代码:
- .wrap {
- width: 400px;
- border: 1px solid #4c4c4c;
- display: flex
- }
- .item1{
- background-color: #d3ec77;
- flex: 1
- }
- .item2{
- background-color: #dc83ee;
- flex: 3
- }
- .item3{
- background-color: #f3c853;
- flex: 4
- }
- <div class="wrap">
- <div class="item1">1份</div>
- <div class="item2">3份</div>
- <div class="item3">4份</div>
- </div>
样式未添加效果图:
样式添加效果图:
本次学习总结完毕,不足之处请指正
bilibili小程序项目总结的更多相关文章
- 开发一个微信小程序项目教程
一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...
- 微信小程序开发01 --- 微信小程序项目结构介绍
一.微信小程序简单介绍: 微信官方介绍微信小程序是一个不需要下载安装就可使用(呵呵,JS代码不用下载吗?展示的UI不用下载吗?)的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用. ...
- 高仿Readhub小程序 微信小程序项目【原】
# News #### 项目介绍微信小程序项目涉及功能 https://gitee.com/richard1015/News https://github.com/richard1015/News 高 ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- 微信小程序项目实战之天气预报
概述 微信小程序项目实战之天气预报 详细 代码下载:http://www.demodashi.com/demo/10634.html 一.准备工作 1.注册微信小程序 2.注册和风天气账号 3.注册百 ...
- 微信小程序项目实战之豆瓣天气
概述 微信小程序项目实战之豆瓣天气 详细 代码下载:http://www.demodashi.com/demo/10943.html 一.准备工作 1.注册微信小程序 2.在小程序设置中设置reque ...
- 微信小程序——初始化一个小程序项目
最近准备学习一下微信小程序,因为之前有react native项目经验,学习起来应该困难不大 微信小程序官网地址:https://mp.weixin.qq.com/debug/wxadoc/dev/i ...
- 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记1)WePY开发环境的安装
WePY的安装或更新都通过npm进行,全局安装或更新WePY命令行工具,使用以下命令: npm install wepy-cli -g 稍等片刻,成功安装后,即可创建WePY项目. 注意:如果npm安 ...
- 微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架
Taro本身实现的情况类似于mpvue,mpvue的未来展望中也包含了支付宝小程序,现在的版本中,也可以使用不同的构建命令来构建出百度小程序的支持,如第10章所示,但是现在Taro先于mpvue实现了 ...
随机推荐
- Struts数据回显和模型驱动
prams拦截器,可以把请求数据自动填充的action的属性中 举例1: JSP <input type=text name=userName /> <input type=text ...
- javascript定时器方法使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- log4j日志配置文件
log4j.properties: ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdo ...
- electron-vue小试身手
最近一个项目(vue)需求是用硬件来触发web端页面显示以及效果的切换,客户的硬件设备只支持用tcp协议通讯,而我们的前端呢是用不了tcp的,众所周知在浏览器端,我们只能用http/https协议(a ...
- 整合Django的信息显示框架messages framework
##主要用在view.login函数,不管登录是否成功,都会设置message变量,然后在login.html显示 from django.contrib import messages#需要导的包 ...
- swoole前置基础知识1——1.1多进程/多线程的概念
一.为何需要多进程(或者多线程),为何需要并发? 这个问题或许本身都不是个问题.但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性. 我想,只要你不是整天都写那种int m ...
- 【Linux开发】Linux模块机制浅析
Linux允许用户通过插入模块,实现干预内核的目的.一直以来,对linux的模块机制都不够清晰,因此本文对内核模块的加载机制进行简单地分析. 模块的Hello World! 我们通过创建一个简单的模块 ...
- kindeditor-4.1.7
<script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></s ...
- selenium-server--chromedriver环境
x 准备环境: 1.selenium-server-standalone-3.8.1.jar 2.chromedriver.exe 一.查看本地电脑chrome浏览器版本信息: 二.访问代理地址:ht ...
- [爬虫] requests库
requests库的7个常用方法 requests.request() 构造一个请求,支撑以下各种方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET re ...