微信小程序實現淡入淡出效果(頁面跳轉)


//目前小程序沒有fadeIn(),fadeOut()方法所以還是本方法手寫 
1 
<!--wxml-->
<!--蒙版(漸出淡去效果)-->
<view class="aa" style='height: {{winH}}rpx;opacity: {{opacity}};'></view>

<!--正式內容(漸入加深效果)--> 2 <view class="container log-list" style='opacity: {{1-opacity}};'> 3 <block wx:for="{{logs}}" wx:for-item="log"> 4 <text class="log-item">{{index + 1}}. {{log}}</text> 5 </block> 6 </view>

<!--wxss-->
.log-list {
  display: flex;
  flex-direction: column;
  padding: 40rpx;
}
.log-item {
  margin: 10rpx;
}
.aa{
  background-color: darkcyan;
}
 
         
//xx.js
const util = require('../../utils/util.js')
//把winHeight設為常量,不要放在data里(一般來說不用於渲染的數據都不能放在data里) const winHeight
= wx.getSystemInfoSync().windowHeight Page({ data: { logs: [] }, onLoad: function () { this.setData({ winH: wx.getSystemInfoSync().windowHeight, opacity: 1,
//這個是微信官方給的獲取logs的方法 看了收益匪淺 logs: (wx.getStorageSync(
'logs') || []).map(log => { return util.formatTime(new Date(log)) }) }) }, onShow: function () { this.hide() },
//核心方法,線程與setData hide:
function () { var vm = this var interval = setInterval(function () { if (vm.data.winH > 0) {
//清除interval 如果不清除interval會一直往上加 clearInterval(interval) vm.setData({ winH: vm.data.winH
- 5, opacity: vm.data.winH / winHeight }) vm.hide() } }, 10); } })


以前這種就是漸變效果

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM