实现一个微信小程序组件:文字跑马灯效果

 

  • marquee.json
{
  "component": true,
  "usingComponents": {}
}
  • marquee.wxml
<!--components/marquee.wxml-->
<view class='marquee_container'>
  <view class='marquee_text' style='{{ orientation }}:{{ marqueeDistance }}px;font-size: {{size}}px;'>
    {{ text }}
  </view>
</view>
  • marquee.wxss
/* components/marquee.wxss */
.marquee_container {
  position: relative;  
  width: 100%;
}

.marquee_text {
  position: absolute;
  white-space: nowrap;
  top: 0;
}
  • marquee
// components/marquee.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    text: {
      type: String,
      value: 'ILoveEwei'
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    marqueePace: 1,
    marqueeDistance: 0,
    size: 14,
    orientation: 'left',
    interval: 20
  },

  /**
   * 组件的方法列表
   */
  methods: {
    _scrolling: function() {
      var _this = this;
      var timer = setInterval(()=> {
        if(-_this.data.marqueeDistance < _this.data.length) {
          _this.setData({
            marqueeDistance: _this.data.marqueeDistance - _this.data.marqueePace
          })
        } else {
          clearInterval(timer);
          _this.setData({
            marqueeDistance: _this.data.windowWidth
          });
          _this._scrolling();
        }
      },_this.data.interval);
    }
  },

  created: function() {
    var _this = this;
    var length = _this.data.text.length * _this.data.size;
    var windowWidth = wx.getSystemInfoSync().windowWidth
    _this.setData({
      length: length,
      windowWidth: windowWidth
    });
    _this._scrolling();
  }
})

以上就是我定义在components文件夹的组件,剩下就是引用组件

  • demo.json
{
  "usingComponents": {
    "marquee": "../../components/marquee"
  }
}
  • demo.wxml
<marquee text="我爱你我爱你我爱你"></marquee>  

 

 

 

转 : https://www.jianshu.com/p/0ff03e5e942e

 

转载于:https://www.cnblogs.com/fps2tao/p/11163938.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值