在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ 【小程序】請教如何優(yōu)化一個簡單但導(dǎo)致卡頓的過渡動畫

【小程序】請教如何優(yōu)化一個簡單但導(dǎo)致卡頓的過渡動畫

我就是想要做一個搜索欄隨著下滑漸隱,隨著上滑漸出的動畫,但是找不到流暢的解決方案

一開始嘗試用transition屬性,判斷下滑方向和搜索欄顯示狀態(tài),當兩者不一致時更新搜索欄height值。

在電腦上看著效果很好,但是用安卓測試的時候卡頓嚴重:

var now = e.detail.scrollTop
var last = this.data.scrollTop
var scrollDown = this.data.scrollDown
var sHeight = this.data.sHeight

if ((now > last && !scrollDown) || (now < last && scrollDown)) {
  sHeight = 40-sHeight
  this.data.scrollDown = !scrollDown
  this.setData({
    sHeight: sHeight
  })
}
this.data.scrollTop = e.detail.scrollTop

然后嘗試使用微信的animation API,然而卡頓依然嚴重:

var animation = wx.createAnimation({
  duration: 500,
  timingFunction: "ease"
})
this.animation = animation

if ((now > last && !scrollDown) || (now < last && scrollDown)) {
  this.data.scrollDown = 1 - scrollDown
  this.animation.scale(scrollDown).step()
  this.setData({
    sHeightAnim: this.animation.export()
  })
}
this.data.scrollTop = e.detail.scrollTop

查了一下感覺transform和animation的運行效率也差不多,畢竟也是要走transition

所以有沒有大佬可以提供一個較好的解決方案orz跪謝

回答
編輯回答
陌離殤

好吧,解決了?。〈_實是用transform.....

handleScroll: function(e){
var now = e.detail.scrollTop
var last = this.data.scrollTop
var scrollDown = this.data.scrollDown
if ((now > last && !scrollDown) || (now < last && scrollDown))
{
scrollDown = this.data.scrollDown = 1 - scrollDown
this.setData({
hidden: scrollDown ? 'transform: translateY(-60px);':'',
})
}
this.data.scrollTop = now
console.log(now)
},
?
2017年8月10日 04:21
編輯回答
心夠野

怎么優(yōu)化來著?

2018年1月11日 07:27