欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序?qū)崿F(xiàn)元素漸入漸出動畫效果封裝方法

 更新時間:2019年05月18日 11:00:25   作者:LYJSpeedX  
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)元素漸入漸出動畫效果封裝方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

開端

之前一直使用堪稱“萬能”的jQuery處理用戶交互的動畫,近日開發(fā)微信小程序,微信小程序高度限制的語法和功能使開源函數(shù)可謂對其“無能為力”。
那沒辦法,只好自己寫一個可以讓元素漸入漸出的,可復(fù)用的函數(shù)了。做到類似jQuery show()的效果

原創(chuàng)文章,允許轉(zhuǎn)載分享。但請轉(zhuǎn)載請一定標明出處,這是起碼的尊重
本文章閱讀前需要對微信小程序的動畫api有所了解

先看效果

可以看到,動畫效果十分流暢,高度復(fù)用,封裝好后只需要三行代碼實現(xiàn)動畫

解決

1.尋根問底,發(fā)現(xiàn)wx_mini_program(下面稱呼微信小程序為wxmp [差點叫成 (*´ノ皿`)mmp] )有一個全局的js邏輯文件,叫app.js,有意思,可以往里面塞自己寫的object(函數(shù)數(shù)據(jù)等等),那就從那里入手吧
2.在app.js中定義全局的動畫函數(shù)

App({
 //漸入,漸出實現(xiàn) 
 show : function(that,param,opacity){
  var animation = wx.createAnimation({
   //持續(xù)時間800ms
   duration: 800,
   timingFunction: 'ease',
  });
  //var animation = this.animation
  animation.opacity(opacity).step()
  //將param轉(zhuǎn)換為key
  var json = '{"' + param + '":""}'
  json = JSON.parse(json);
  json[param] = animation.export()
  //設(shè)置動畫
  that.setData(json)
 },

 //滑動漸入漸出
 slideupshow:function(that,param,px,opacity){
  var animation = wx.createAnimation({
   duration: 800,
   timingFunction: 'ease',
  });
  animation.translateY(px).opacity(opacity).step()
  //將param轉(zhuǎn)換為key
  var json = '{"' + param + '":""}'
  json = JSON.parse(json);
  json[param] = animation.export()
  //設(shè)置動畫
  that.setData(json)
 },

 //向右滑動漸入漸出
 sliderightshow: function (that, param, px, opacity) {
  var animation = wx.createAnimation({
   duration: 800,
   timingFunction: 'ease',
  });
  animation.translateX(px).opacity(opacity).step()
  //將param轉(zhuǎn)換為key
  var json = '{"' + param + '":""}'
  json = JSON.parse(json);
  json[param] = animation.export()
  //設(shè)置動畫
  that.setData(json)
 }
})

3.現(xiàn)在我們再看看調(diào)用這個函數(shù)的具體方法
在wxml中,只需要設(shè)置animation綁定即可,以首頁index為例

// 這里是pages/page/index.wxml
//使用view包裹需要動畫的元素
//class中定義動畫開始前的初始樣式,如透明度=0,向下偏移200px等,animtion屬性填入綁定值
<view class="init" animation="{{slide_up1}}">

4.在該頁的js中

// 這里是pages/page/index.js
//首先獲取小程序?qū)嵗?,訪問app.js中的函數(shù)
this.app = getApp();
//調(diào)用show函數(shù),傳參
//注意:查看上面show函數(shù)定義查看參數(shù)含義
//第一個參數(shù)是當(dāng)前的頁面對象,方便函數(shù)setData直接返回數(shù)據(jù)
//第二個參數(shù)是綁定的數(shù)據(jù)名,傳參給setData,詳細見上面
//第三個參數(shù)是上下滑動的px,因為class="init"定義初始該元素向下偏移了200px,所以這里使其上移200px
//第四個參數(shù)是需要修改為的透明度,這里是1,表示從初始的class="init"中定義的透明度0修改到1
this.app.slideupshow(this, 'slide_up1', -200, 1)

5.讓我們完善流程,達到預(yù)覽圖首頁的效果(有延時的邊上升邊出現(xiàn)效果)
wxml就是將各個容器分別綁定不同的變量,一個view容器就是一個動畫單位(可以這樣理解),如

<view class="init" animation="{{slide_up1}}">
  <card>...</card>
</view>
<view class="init" animation="{{slide_up2}}">
  <card>...</card>
</view>

頁面的js

//onload時獲取小程序?qū)嵗?
onLoad: function (options) {
  this.app = getApp()
 },
//頁面展示時,觸發(fā)動畫
 onShow: function () {
  this.app.slideupshow(this, 'slide_up1', -200, 1)

  setTimeout(function () {
   this.app.slideupshow(this, 'slide_up2', -200, 1)
  }.bind(this), 200);
 },
//頁面隱藏時,觸發(fā)漸出動畫
 onHide: function () {
   //你可以看到,動畫參數(shù)的200,0與漸入時的-200,1剛好是相反的,其實也就做到了頁面還原的作用,使頁面重新打開時重新展示動畫
  this.app.slideupshow(this, 'slide_up1', 200, 0)
  //延時展現(xiàn)容器2,做到瀑布流的效果,見上面預(yù)覽圖
  setTimeout(function () {
   this.app.slideupshow(this, 'slide_up2', 200, 0)
  }.bind(this), 200);
 }

以上所述是小編給大家介紹的微信小程序?qū)崿F(xiàn)元素漸入漸出動畫效果封裝方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 用javascript獲取任意顏色的更亮或更暗顏色值示例代碼

    用javascript獲取任意顏色的更亮或更暗顏色值示例代碼

    最近在工作中遇到的一個需求,發(fā)現(xiàn)網(wǎng)上沒有相對應(yīng)的解決方法,索性自己寫一個,所以這篇文章主要給大家介紹了關(guān)于利用javascript獲取任意顏色更亮或更暗顏色值的相關(guān)資料,文中給出了詳細的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • jsPDF生成pdf后在網(wǎng)頁展示實例

    jsPDF生成pdf后在網(wǎng)頁展示實例

    本文為大家介紹下jsPDF生成pdf后如何在網(wǎng)頁展示,下面有個不錯示例,大家可以參考下
    2014-01-01
  • 使用threejs實現(xiàn)第一人稱視角的移動的問題(示例代碼)

    使用threejs實現(xiàn)第一人稱視角的移動的問題(示例代碼)

    第一人稱視角的場景巡檢主要需要解決兩個問題,人物在場景中的移動和碰撞檢測。移動與碰撞功能是所有三維場景首先需要解決的基本問題,今天我們就通過最基本的threejs來完成第一人稱視角的場景巡檢功能,感興趣的朋友一起看看吧
    2022-02-02
  • layui使用form表單實現(xiàn)post請求頁面跳轉(zhuǎn)的方法

    layui使用form表單實現(xiàn)post請求頁面跳轉(zhuǎn)的方法

    今天小編就為大家分享一篇layui使用form表單實現(xiàn)post請求頁面跳轉(zhuǎn)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 淺析javascript中的DOM

    淺析javascript中的DOM

    本文主要給大家簡單介紹了是什么是DOM、動態(tài)操作DOM元素的方法、使用jsjs操作樣式以及Form對象的簡介,是個人對于javascript中的DOM的理解的總結(jié),推薦給小伙伴們。
    2015-03-03
  • JS實現(xiàn)隨機點名器

    JS實現(xiàn)隨機點名器

    這篇文章主要為大家詳細介紹了JS實現(xiàn)隨機點名器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 調(diào)試Node.JS的輔助工具(NodeWatcher)

    調(diào)試Node.JS的輔助工具(NodeWatcher)

    Node.JS調(diào)試貌似比較麻煩,每次改完了要重啟一下Node進程.GOOGLE上有個NPM模塊,可以監(jiān)控JS文件的更改,然后自動重啟Node.但我下載后在windows里運行報錯
    2012-01-01
  • ES6 Class中實現(xiàn)私有屬性的一些方法總結(jié)

    ES6 Class中實現(xiàn)私有屬性的一些方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于ES6 Class中實現(xiàn)私有屬性的一些方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用ES6具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • JS截取字符串的方法詳解

    JS截取字符串的方法詳解

    本文詳細講解了JS截取字符串的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • JavaScript常用的返回,自動跳轉(zhuǎn),刷新,關(guān)閉語句匯總

    JavaScript常用的返回,自動跳轉(zhuǎn),刷新,關(guān)閉語句匯總

    這篇文章主要介紹了JavaScript常用的返回,自動跳轉(zhuǎn),刷新,關(guān)閉語句,實例匯總了常用的javascript技巧,非常具有實用價值,需要的朋友可以參考下
    2015-01-01

最新評論