小程序 js动画实现某区域从下往上数据滚动

小程序 js动画实现某区域从下往上数据滚动

效果如下:

<!-- 循环 -->
        <view class="mv_bottom">
          <view class="mv_bottomlist">
            <view class="mv_rowup" animation="{{animationData}}">
              <view wx:for="{{1}}" class="mv_bottom_line mv_own_color">
                <image class="mv_advace" src="../../images/1.jpg"></image>
                <image class="mv_prise" src="../../images/praise_HL.png" ></image>
                <view class="font12">
                  <view class="mv_text_more">Olga Ruiz</view>
                  <view class="mv_text_more">啊啊啊啊啊啊</view>
                </view>
              </view>
              <view wx:for="{{2}}" class="mv_bottom_line">
                <image class="mv_advace" src="../../images/1.jpg"></image>
                <image class="mv_prise" src="../../images/praise_HL.png" ></image>
                <view class="font12">
                  <view class="mv_text_more">Olga Ruiz</view>
                  <view class="mv_text_more">啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</view>
                </view>
              </view>
              <view wx:for="{{3}}" class="mv_bottom_line">
                <image class="mv_advace" src="../../images/1.jpg"></image>
                <image class="mv_prise" src="../../images/praise_HL.png" ></image>
              </view>
            </view>
          </view>
        </view>

 css就不展示了

 onShow: function () {
    let that = this
    that.getHeight();
  },
  //上下滚动
  utilTime: function (obj) {
    // 控制速度
    let continueTime = (parseInt(obj.list / obj.container) + 1) * 6500;
    let setIntervalTime = 50 + continueTime;

    let animation = wx.createAnimation({
      duration: 200, //动画时长
      timingFunction: "linear", //线性
      delay: 0 //0则不延迟
    });
    this.animation = animation;
    animation.translateY(obj.container).step({
      duration: 50,
      timingFunction: 'step-start'
    }).translateY(-obj.list).step({
      duration: continueTime
    });
    this.setData({
      animationData: animation.export()
    })
    // 循环
    this.data.timeSet=setInterval(() => {
      animation.translateY(obj.container).step({
        duration: 50,
        timingFunction: 'step-start'
      }).translateY(-obj.list).step({
        duration: continueTime
      });
      this.setData({
        animationData: animation.export()
      })
    }, setIntervalTime)
  },
  getHeight: function () {
    let obj = new Object();
    //创建节点选择器
    let query = wx.createSelectorQuery();
    query.select('.mv_bottomlist').boundingClientRect()
    query.select('.mv_rowup').boundingClientRect()
    query.exec((res) => {
      obj.container = res[0].height; // 框的height
      obj.list = res[1].height; // height
      this.utilTime(obj);
    })
  },

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值