文档章节

微信小程序教程:文字跑马灯效果

第九程序
 第九程序
发布于 2017/05/04 14:08
字数 472
阅读 32
收藏 0
点赞 0
评论 0

当你的微信小程序内容中出现文字跑马灯效果,会不会觉得很拉风,接下来大家详细讲解下如何操作实现这效果。

效果

wxml

<view>1 显示完后再显示</view>

<view class="example">

  <view class="marquee_box">

    <view class="marquee_text" style="{{orientation}}:{{marqueeDistance}}px;font-size: {{size}}px;">

      {{text}}

    </view>

  </view>

</view>

<view>2 出现白边后即显示</view>

<view class="example">

  <view class="marquee_box">

    <view class="marquee_text" style="{{orientation}}:{{marqueeDistance2}}px;font-size: {{size}}px;">

      <text>{{text}}</text>

      <text wx:if="{{marquee2copy_status}}" style="margin-left:{{marquee2_margin}}px;">{{text}}</text>

    </view>

  </view>

</view>

wxss

.example {

  display: block;

  width: 100%;

  height: 100rpx;

}

 

.marquee_box {

  width: 100%;

  position: relative;

}

 

.marquee_text {

  white-space: nowrap;

  position: absolute;

  top: 0;

}

js

// pages/home/marquee/marquee.js

Page({

  data: {

    text: '这是一条会滚动的文字滚来滚去的文字跑马灯,哈哈哈哈哈哈哈哈',

    marqueePace: 1,//滚动速度

    marqueeDistance: 0,//初始滚动距离

    marqueeDistance2: 0,

    marquee2copy_status: false,

    marquee2_margin: 60,

    size: 14,

    orientation: 'left',//滚动方向

    interval: 20 // 时间间隔

  },

  onShow: function () {

    // 页面显示

    var vm = this;

    var length = vm.data.text.length * vm.data.size;//文字长度

    var windowWidth = wx.getSystemInfoSync().windowWidth;// 屏幕宽度

    vm.setData({

      length: length,

      windowWidth: windowWidth,

      marquee2_margin: length < windowWidth ? windowWidth - length : vm.data.marquee2_margin//当文字长度小于屏幕长度时,需要增加补白

    });

    vm.run1();// 水平一行字滚动完了再按照原来的方向滚动

    vm.run2();// 第一个字消失后立即从右边出现

  },

  run1: function () {

    var vm = this;

    var interval = setInterval(function () {

      if (-vm.data.marqueeDistance < vm.data.length) {

        vm.setData({

          marqueeDistance: vm.data.marqueeDistance - vm.data.marqueePace,

        });

      } else {

        clearInterval(interval);

        vm.setData({

          marqueeDistance: vm.data.windowWidth

        });

        vm.run1();

      }

    }, vm.data.interval);

  },

  run2: function () {

    var vm = this;

    var interval = setInterval(function () {

      if (-vm.data.marqueeDistance2 < vm.data.length) {

        // 如果文字滚动到出现marquee2_margin=30px的白边,就接着显示

        vm.setData({

          marqueeDistance2: vm.data.marqueeDistance2 - vm.data.marqueePace,

          marquee2copy_status: vm.data.length + vm.data.marqueeDistance2 <= vm.data.windowWidth + vm.data.marquee2_margin,

        });

      } else {

        if (-vm.data.marqueeDistance2 >= vm.data.marquee2_margin) { // 当第二条文字滚动到最左边时

          vm.setData({

            marqueeDistance2: vm.data.marquee2_margin // 直接重新滚动

          });

          clearInterval(interval);

          vm.run2();

        } else {

          clearInterval(interval);

          vm.setData({

            marqueeDistance2: -vm.data.windowWidth

          });

          vm.run2();

        }

      }

    }, vm.data.interval);

  }

})

© 著作权归作者所有

共有 人打赏支持
第九程序
粉丝 82
博文 142
码字总数 172691
作品 0
厦门
程序员
Android 自定义跑马灯

前言 最近公司接到需求--「可以滚动的提示」,其实就是跑马灯。这让我想到了大学时专业物联网,当时学的单片机入门教程就是跑马灯,很是亲切。其实就是灯(或文字)按照某个方向循环滚动。 An...

下位子 ⋅ 2017/12/26 ⋅ 0

"口令红包"-利用函数计算构建微信小程序的server端

前言 函数计算 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的...

rsong ⋅ 02/06 ⋅ 0

wx-jq:一套完全原创的微信小程序插件集合库

wx-jq (一套完全原创的微信小程序插件集合库) 微信小程序插件,微信小程序组件,微信小程序插件集合,微信小程序组件集合,微信小程序插件学习,微信小程序插件开发, 在线演示: 下载地址...

透笔度 ⋅ 01/25 ⋅ 2

玩转Android 之 TextView常用特效

暑期大学生博客分享大赛 - 2011 Android 成长篇 本文参加第二届Google大学生暑期博客分享大赛 TextView是最常用的Android控件之一,显示文字时的首选,然而很多人都不满足于,TextView默认的...

cokey ⋅ 2011/08/06 ⋅ 3

透笔度/wx-jq

wx-jq (一套完全原创的微信小程序插件集合库) 微信小程序插件,微信小程序组件,微信小程序插件集合,微信小程序组件集合,微信小程序插件学习,微信小程序插件开发, 查看效果截图: http...

透笔度 ⋅ 01/26 ⋅ 0

第一天学习Android的一些笔记

昨天学习了怎样装Android配置环境,下载SDK用了好久的时间,再加上一开始不会,弄了好长时间,今天第一天学习,跟着视频教程学的。下边是我的一些笔记,仅做留念与学习笔记 。 快捷键: 智能...

子弹兄 ⋅ 2014/01/16 ⋅ 0

微信小程序后端解决方案 - CoNami

CoNami = Container + JS + H2 -> 微信小程序后端 动机 微信小程序后端开发需要实现一个Web服务器,并配置相应数据库,上手门槛较高。这个项目的目的是让开发者在半天内,使用JavaScript语...

营魄2018 ⋅ 05/29 ⋅ 0

微信小程序评论插件 - WxComment

WxComment 是一个微信小程序的评论插件,结合BaaS提供商LeanCloud,无需其他另外的个人或者云服务器,就可以免费使用。解决了需要个人去注册域名、备案、购买云服务器的繁杂问题。 特色 独立...

yicm ⋅ 05/24 ⋅ 0

巧用CSS的alpha滤镜

作者:冯永曜 “Alpha”滤镜,听到这个名字,你可能会想到Flash里有,Photoshop里也似乎见过。一点不错,它们的作用基本类似,就是把一个目标元素与背景混合。你可以指定数值来控制混合的程度...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

海报生成,但是微信小程序的绘图不能使用自定义弹窗,怎么实现功能

微信小程序,有一个需求 做海报生成,编写自己的文字内容保存海报生成图片,使用微信小程序的绘图api无法使用自定义弹窗实现文字内容修改,自定义弹窗层级在原生组件下层,有什么办法实现海报...

鱼被吃了 ⋅ 04/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

懒惰根本就不存在

简评:芝加哥大学心理学教授,懒惰根本就不存在。(本文表面讲行为心理学实则讲教育) 金句:以好奇而不是判断来回应一个人的无效行为,是非常有帮助的。 本文「我」代表原作者 E Price。 自...

极光推送 ⋅ 27分钟前 ⋅ 0

Excel提取单元格中最后一个“.”后面的数据

java.lang.String ----- String =TRIM((MID(SUBSTITUTE(B2,".",REPT(" ",99)),(LEN(B2)-LEN(SUBSTITUTE(B2,".","")))*99,99)))...

klog ⋅ 29分钟前 ⋅ 0

mac远程桌面

下载安装remote-desktop-mac Mac beta 客户端 mac通过远程桌面访问windows服务器。

亚林瓜子 ⋅ 33分钟前 ⋅ 0

firrtl

动手---sbt(2)之后,再回头看 chisel第一个实验,根据 https://github.com/freechipsproject/firrtl 发现firrtl没有执行sbt assembly命令,重新执行这个命令,结果成功。如下图: joe@joe-As...

whoisliang ⋅ 37分钟前 ⋅ 0

NIO

一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。 二、通道的主要实现类 java.nio.channel...

stars永恒 ⋅ 38分钟前 ⋅ 0

Android悬浮窗的实现

0. 前言   现在很多应用都使用到悬浮窗,例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。那么今天我们就来实现一下Android悬浮窗,以...

猴亮屏 ⋅ 38分钟前 ⋅ 0

日志采集中的关键技术分析

概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此...

tqyin ⋅ 39分钟前 ⋅ 0

使用Navicat将数据导出为text文本 然后再导入

将数据导出为text文本效率很高 1. 准备工作 1.1 准备表结构 1.2 目标库 执行生成表结构sql 2.将表数据导出为text文本 生成的text文本 3. 目标库 导入text 4.效果...

Lucky_Me ⋅ 45分钟前 ⋅ 0

IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)

文章介绍了idea下,项目乱码、控制台乱码及运行tomcat控制台乱码的解决方案,文章链接:https://www.cnblogs.com/vhua/p/idea_1.html

Funcy1122 ⋅ 48分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 53分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部