暑假即未来临,你有什么好的安排呢?上班、旅游、宅在家打游戏......无论怎么样,但愿你能抽出一点时间来学习,丰富本身。下面是我仿的极客时间小程序,作了一些总结,写给本身,也写给进来观看的你。html
.js
文件存入数据,在须要的地方引入。app.js
中的globalData
中,在引入的地方必定要加入var app = getApp();
否则数据没法引入。页面结构:前端
current
、duration
、bindchange
。current
是指当前所在滑块的 index
;duration
是指滑动动画时长,也可使用属性autoplay
,当值为true
时,会自动切换;bindchange
属性是由于current
改变时会触发change
事件。swiper-item
组件仅能放在swiper
组件中使用。小程序中的每一个swiper-item
就是一个滑块。wx:for
进行遍历。wxml:
data: {
currentTab: 0,
num: 1,
pages: []
},
swiperTab: function(e) {
// console.log(e);
let number = e.detail.current + 1;
this.setData({
currentTab: e.detail.current,
num: number
});
},
onLoad: function(options) {
this.setData({
//把数据写在全局下,数据从这引入
pages: app.globalData.pages
})
}
复制代码
咱们发现当滑块变化时下面的数字也跟着对应变化,这主要用到了current
属性的值,current
的值是从0
开始计数,而下面对应的数字是从1
开始计数,只要将他的值加1后赋给number
就行。git
class
属性值为course-tab-nav
的view
组件中直接用wx:for
来进行遍历,后面的两个均可以不用写,直接写数据进来就行。我这里使用了更笨的方法,将每块都写了。clickTab
点击事件发生时,会判断
currentTab
是否等于指定的值,当为
true
时,会显示为
on
的状态,而且会显示其内容。
.course-tab-nav.on{
color: #F94312;
border-bottom: 5rpx solid #F94312;
}
复制代码
data: {
currentTab: 0,
chooseClass: [],
videoClass: [],
weClass: []
},
clickTab: function(e) {
var index = e.currentTarget.dataset.index
// console.log(index);
this.setData({
currentTab: index
});
},
onLoad: function (options) {
this.setData({
currentTab: 0,
//数据从app.js中的globalData中引入
chooseClass: app.globalData.chooseClass,
videoClass: app.globalData.videoClass,
weClass: app.globalData.weClass
})
},
复制代码
提醒
一下,不要在这种界面最上层的组件中使用wx:for
。我在这里就踩了一个大坑
,它把我全部的数据所有都循环出来了,并无获得我想要的效果,思考了许久才发现数据并不须要显示,只有当你须要看的时候它能显示出来就行。召唤
?个人回答是你须要将你的信息进行排列,你的信息是以数组的形式进行存储,当外界传来的值对应着你数组的下标值时,就将数值做为你数组的下标,而后将数据进行输入。在点击事件中须要带参传入到跳转界面中。onLoad: function (options) {
// console.log(app);
var fullpage = app.globalData.fullpage;
this.setData({
fullpage: fullpage[options.index]
})
},
复制代码
options.index
就是外面传进来的参数,也就是fullpage
数组的下标值。learnMore: function(e) {
var index = e.currentTarget.dataset.index;
// console.log(index);
wx.navigateTo({
url: '../items/detail/detail?index=' + index,
})
},
watchMore: function(e) {
var index = e.currentTarget.dataset.index;
wx.navigateTo({
url: '../items/video/video?index=' + index,
})
},
readMore: function(e) {
var index = e.currentTarget.dataset.index + 16;
wx.navigateTo({
url: '../items/detail/detail?index=' + index,
})
},
复制代码
url
属性提供须要跳转的应用内非tabBar
的页面的路径 , 路径后能够带参数。参数与路径之间使用?
分隔,参数键与参数值用=
相连,不一样参数用&
分隔。data-index
。它会获取当前currentTarget
的下标。这个下标值是随着事件变化的,将值与你要获取第几个信息进行一一对应,再将值传入进去,就能够实现了。真是帮了我一个大忙。<view class="head_video">
<video class="dplayer-video dplayer-video-current" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400"></video>
</view>
复制代码
我直接用video
组件来实现这个视频播放功能。你也能够尝试一下其余方法,好比获取拍摄视频或从手机相册中选视频github
<view class="container">
<video src="{{src}}"></video>
<button bindtap="bindButtonTap">获取视频</button>
</view>
复制代码
Page({
bindButtonTap: function() {
var that = this
wx.chooseVideo({
sourceType: ['album','camera'],
maxDuration: 60,
camera: 'back',
success: function(res) {
that.setData({
src: res.tempFilePath
})
}
})
}
})
复制代码
通过这段时间的学习,发现本身的能力远远不够啊,遇到bug很难解决。之后还须要多加学习,智商不够,时间来凑,再难的关也有通关的一天。web
若是想了解更多的话,能够查看个人项目地址。欢迎你们一块儿来讨论,提出您的想法。 小程序