# 微信小程序学习 哔哩哔哩小程序(待完善)
## 项目预览图
![image](https://github.com/wuyangshu/bilibili/raw/master/GIF.gif)
## 小程序?大改变?
之前就被朋友安利使用小程序,最近接近了小程序,发现了它竟然带来了一场“大革命”。
简单说,它就是一个可以实现之前只能是原生态APP可以实现的效果和功能。比如说,一些酷炫的页面与转场,一些可以直接和手机硬件交互的功能,录音啊,拍视频啊,调用手机的重力感应啊,GPS啊等等。
专业点来说,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
小程序的轻量化带来了app所不具有的许多优点,它同时也在向着我们的日常app“宣战”,这场战争花落谁家,就让我们拭目以待吧。
## 制作简单?
小程序作为一颗冉冉升起的新星,他之所以能被大家接受,不仅仅是因为他的轻量化,脱去了app的繁重外壳,还因为他很容易上手。在经过几天时间去熟悉小程序的构建和说明文档等,我这种初学者也能慢慢地摸到小程序的门槛,进入小程序这个新世界,完成自己的构思。
## 我们能做什么?
作为一个二次元爱好者(别看着我,我当然不是死宅(ノ=Д=)ノ┻━┻),使用最多的app当然就是我大b站了(哔哩哔哩 (゜-゜)つロ 干杯~-bilibili),所以应着自己的爱好,尝试着制作了一个哔哩哔哩的小程序,途中简直是经历了千难万险,最后因为能力问题只是制作了一个半成品,尚有很多功能尚未实现,但是我是有梦想的人,之后还是要多学习,将它慢慢完善,这次就当交流,大家互相学习(。ò ∀ ó。)
## 项目工具及文档
1. **微信web开发者工具:**[微信小程序官网](https://mp.weixin.qq.com/debug/wxadoc/dev/) 微信开发的小程序编辑软件,下载安装即可使用;
2. **开发文档:**[微信小程序宝典秘籍](https://www.w3cschool.cn/weixinapp/9wou1q8j.html) 这里面详细的介绍了小程序的各种信息,包括组件、框架、API等等,有很多值得我们去阅读的信息;
3. **图标库:** [Iconfont-阿里巴巴矢量图标库](http://www.iconfont.cn/) 这个是网站简直是神器,什么图标都能找到,我很喜欢。
## 目录结构
├── app.js
├── app.json
├── app.wxss
├── utils
│ └── util.js
├── pages
│ ├── common
│ │ ├── header.wxml
│ │ └── item.wxml
│ ├── index
│ │ ├── index.js
│ │ ├── index.wxml
│ │ └── index.wxss
│ ├── selectColor
│ │ ├── selectColor.js
│ │ ├── selectColor.wxml
│ │ └── selectColor.wxss
│ ├── play
│ │ ├── play.js
│ │ ├── play.json
│ │ ├── play.wxml
│ │ └── play.wxss
└── resources
└── images
#### 页面注册
#### app.json
"pages":[
"pages/index/index",
"pages/play/play",
"pages/selectColor/selectColor"
],
## 项目功能
#### 已实现功能:
* 广告轮播图
* 视频播放
* 弹幕功能
* 弹窗功能
* 分享功能
#### 未实现功能:
这个有点多。。。毕竟是我大B站,目前只实现了一些力所能及的功能,以后会完善的。
## 部分功能实现
#### 顶部导航栏
```<view class="nav-scroll">
<scroll-view class="scroll-view_H" scroll-x="true" style="width: 100%">
<text wx:for="{{section}}" wx:key="id" id="{{item.id}}" catchtap="handleTap"
class="nav-name {{item.id == currentId ? 'nav-hover' : ''}}"
style=" padding-right:{{topdistance}}px;padding-left:{{topdistance}}px">{{item.name}}</text>
</scroll-view>
</view>
</view>
<block wx:if="{{currentId == 1001}}">
<view class="slider-wrapper">
<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}"
interval="{{interval}}" duration="{{duration}}" indicator-active-color="#EA6CAF">
<block wx:for="{{imgUrls}}">
<swiper-item>
<navigator url="{{item.link}}" hover-class="navigator-hover">
<image src="{{item.url}}" class="slide-image" width="355" height="150" />
</navigator>
</swiper-item>
</block>
</swiper>
</view>
```
```
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
this.setTopDistance();
this.setData({
stagePoint: util.stagePoint()
})
if (this.data.currentId == 1001) {
this.Page();
}
else if (this.data.currentId == 1004) {
this.channelPage();
}
else if (this.data.currentId == 1003) {
this.livePage();
}
}
```
顶部导航栏实际就是利用scroll-view控件,给他绑定当前页面的id,当触发点击事件时,加载与该id匹配的信息。要注意的是一开始要给currentId一个页面的值,不然无法显示出来。
#### 弹幕功能
小程序本身具备弹幕功能,阅读api,对着原版代码进行了一些改变,实现了弹幕自己选择颜色,并且将弹幕和弹出层结合在一起使用。
```
Page({
inputValue: '',
data: {
isRandomColor: true,
src: '',
numberColor: "#ff0000",
danmuList: [{
text: '这波不亏呀',
color: '#ff0000',
time: 1
}, {
text: '大神666',
color: '#00ff00',
time: 2
},
{
text: '今生无悔入fate',
color: '#D9D919',
time: 3
},
{
text: '吾王赛高(。ò ∀ ó。)',
color: '#C0D9D9',
time: 4
}
],
showModalStatus: false
},
powerDrawer: function (e) {
var currentStatu = e.currentTarget.dataset.statu;
this.util(currentStatu)
},
util: function (currentStatu) {
/* 动画部分 */
// 第1步:创建动画实例
var animation = wx.createAnimation({
duration: 200, //动画时长
timingFunction: "linear", //线性
delay: 0 //0则不延迟
});
// 第2步:这个动画实例赋给当前的动画实例
this.animation = animation;
// 第3步:执行第一组动画:Y轴偏移240px后(盒子高度是240px),停
animation.translateY(240).step();
// 第4步:导出动画对象赋给数据对象储存
this.setData({
animationData: animation.export()
})
// 第5步:设置定时器到指定时候后,执行第二组动画
setTimeout(function () {
// 执行第二组动画:Y轴不偏移,停
animation.translateY(0).step()
// 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象
this.setData({
animationData: animation
})
//关闭抽屉
if (currentStatu == "close") {
wx.createVideoContext('myVideo').play();
this.setData(
{
showModalStatus: false,
}
);
}
}.bind(this), 200)
// 显示抽屉
if (currentStatu == "open") {
wx.createVideoContext('myVideo').pause();
this.setData(
{
showModalStatus: true
}
);
}
},
onLoad: function onLoad() {
var _this = this;
wx.getSystemInfo({
success: function success(res) {
// video标签默认宽度300px、高度225px
var windowWidth = res.windowWidth;
var videoHeight = 225 / 300 * windowWidth;
_this.setData({
videoWidth: windowWidth,
videoHeight: videoHeight
});
}
})
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目源码仅供学习和研究之用。在使用这些资源时,请务必遵守学术诚信原则和相关法律法规,不得将其用于任何商业目的或侵犯他人权益的行为。对于任何因使用本资源而导致的问题,包括但不限于数据丢失、系统崩溃或安全漏洞,风险自担哦! 如有侵权,请联系博主删除。
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计-仿b站制作的小程序.zip (64个子文件)
bilibili-master
bilibili
pages
index
index.wxml 18KB
index.js 9KB
index.json 2B
index.wxss 4KB
play
play.wxml 5KB
play.wxss 6KB
play.json 2B
play.js 5KB
common
item.wxml 2KB
header.wxml 2KB
logs
logs.json 56B
logs.js 280B
logs.wxml 18B
logs.wxss 114B
selectColor
selectColor.json 2B
selectColor.wxml 424B
selectColor.wxss 693B
selectColor.js 5KB
app.json 306B
app.js 698B
resources
images
广告.png 1KB
fanshi.jpg 4KB
gengduo.png 375B
中心.png 1KB
more.png 1KB
鬼畜.png 1KB
zhibo.png 480B
电影.png 701B
分类.png 1KB
fanshi.png 4KB
游戏中心.png 866B
download.png 1KB
生活.png 718B
电视剧.png 862B
搜索.png 1KB
tuijian1.png 542B
游戏.png 445B
时尚.png 973B
关注.png 797B
logo.png 3KB
历史记录.png 445B
直播.png 772B
音乐.png 875B
动画.png 580B
舞蹈.png 1KB
share.png 1KB
paihang.png 307B
小视频.png 728B
sousuo.png 510B
科技.png 853B
avatar.png 9KB
back.png 1KB
play.png 371B
国创.png 912B
collect.png 997B
番剧.png 869B
lishi.png 525B
fanju.png 490B
danmu_32.png 364B
娱乐.png 1KB
utils
util.js 2KB
app.wxss 12KB
GIF.gif 6.04MB
README.md 11KB
共 64 条
- 1
资源评论
高校毕业设计
- 粉丝: 210
- 资源: 384
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功