暑假即未來臨,你有什麼好的安排呢?上班、旅遊、宅在家打遊戲......無論怎麼樣,但願你能抽出一點時間來學習,豐富本身。下面是我仿的極客時間小程序,作了一些總結,寫給本身,也寫給進來觀看的你。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
若是想了解更多的話,能夠查看個人項目地址。歡迎你們一塊兒來討論,提出您的想法。 小程序