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实现了 ...
随机推荐
- js调用后台接口进行下载
js调用后台接口一定不能用ajax location.href=$$pageContextPath +'downfile/down.do?filname='+row.fileUrl;
- ubuntu关于ssh协议登录问题
说明 初始化系统默认不安装ssh如果你想要通过crt等工具连接,你需要手动安装ssh 1.安装ssh工具 使用ubuntu安装的命令sudo apt-get install openssh-serve ...
- Android jni/ndk编程三:native访问java
一.访问静态字段 Java层的field和method,不管它是public,还是package.private和protected,从 JNI都可以访问到,Java面向语言的封装性不见了. 静态字段 ...
- asp.net core mvc View Component 应用
ViewComponent 1.View 组件介绍 在ASP.NET CORE MVC中,View组件有点类似于partial views,但是他们更强大,View组件不能使用model bindin ...
- Swift基础知识点的学习
每一个程序员都有一颗不满足当下知识的学习,学习Swift更是每一个iOS程序员必学技能!!! 一说道基础点的学习,当然涵盖的方面也是很多很多啦....然而每一个小知识点的学习,写一个博客,我也觉得没什 ...
- CreateCompatibleBitmap 的使用
函数功能:该函数创建与指定的设备环境相关的设备兼容的位图. 函数原型:HBITMAP CreateCompatibleBitmap(HDC hdc,int nWidth,int nHeight): 参 ...
- 树莓派 Raspberry Pi 4,.net core 3.0 ,Avalonia UI 开发
虽说.net core3.0已经可以用于开发wpf和winform程序,可是遗憾的时目前这core下的wpf还是只能运行在windows下,想要在linux下运行wpf估计还要等一段时间. Avalo ...
- Vue组件中的data属性
Vue中的data属性专门用来以对象方式存放数据,它有两种用法. var vm=new Vue({ data:{a:1,b:2,}, }) var vm=new Vue({ data(){return ...
- 配置文件 "G:\虚拟机列表\Linux001.vmx" 由产品 VMware 创建, 其版本 VMware Workstation 不兼容并且不能使用.
解析: 报这种错误一般是虚拟机文件里声明的VMware版本和真实的VMware版本不一致导致.我们可以手动更改真实VMware版本,或者更改虚拟机文件里声明的VMware版本.以下我们通过更该虚拟机文 ...
- Django路由系统-URL命名&URL反向解析
命名URL和URL反向解析 前言 起始样式,HTML中的href是写死的,不能更改,如下示例代码: # urls中 urlpatterns = [ url(r'^admin/', admin.site ...