微信小程序组件 marquee实例详解
发布时间 - 2026-01-11 02:01:33 点击率:次微信小程序组件 marquee实例详解

1. marquee标签
html是有marquee标签的,可以实现跑马灯效果,但小程序没有,所以要实现。这里考虑使用css3的animation实现。
html的marquee是这样使用的。
<marquee direction="left" behavior="scroll" scrollamount="1" scrolldelay="0" loop="-1" width="200" height="50" bgcolor="#0099FF" hspace="10" vspace="10"> hello world </marquee>
2. wxml
<view class="marquee_container" style="--marqueeWidth--:{{-marquee.width}}em">
<view class="marquee_text">{{marquee.text}}</view>
</view>
传入wxml的是个json对象
marquee:{
width:12,
text:'hello world'
}
而那个奇怪的--marqueeWidth是给@keyframes传的变量。内联设置变量,css文件中也可以获取到该变量。
3. wxss
@keyframes around {
from {
margin-left: 100%;
}
to {
margin-left: var(--marqueeWidth--);// var接受传入的变量
}
}
.marquee_container{
background-color: #0099FF;
height: 1.2em;
position: relative;
width: 100%;
}
.marquee_container:hover{
animation-play-state: paused; // 不起作用
}
.marquee_text{
display: inline-block;
white-space: nowrap;
animation-name: around;
animation-duration: 5s;
animation-iteration-count: infinite;
animation-timing-function:linear;
}
4. js
export default {
getWidth:(str)=>{
return [].reduce.call(str, (pre, cur, index, arr) => {
if (str.charCodeAt(index) > 255) {// charCode大于255是汉字
pre++;
} else {
pre += 0.5;
}
return pre;
}, 0);
},
getDuration:(str)=>{// 保留,根据文字长度设置时间
return this.getWidth()/10;
}
}
以上是组件的封装。
5. 使用
// wxml
<include src="../component/marquee/marquee.wxml" />
// wxss
@import "../component/marquee/marquee.wxss";
// js
import marquee from '../component/marquee/marquee.js';
var options = Object.assign(marquee, {
data: {
motto: 'Hello World',
userInfo: {},
marquee: { text: '你好,中国!hello,world!' }
},
onLoad: function () {
// ...
const str = this.data.marquee.text;
const width = this.getWidth(str);
console.log('width',width);
this.setData({ [`${'marquee'}.width`]: width });
}
});
Page(options);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 微信小程序组件
# marquee
# 小程序
# 详解微信小程序 登录获取unionid
# 微信小程序与php 实现微信支付的简单实例
# 详解微信小程序 同步异步解决办法
# 微信小程序图片宽100%显示并且不变形
# 微信小程序中页面FOR循环和嵌套循环
# 微信小程序图片自适应支持多图实例详解
# 微信小程序后台解密用户数据实例详解
# 是个
# 是有
# 是这样
# 希望能
# 可以实现
# 中也
# 谢谢大家
# 中国
# 到该
# 不起作用
# 跑马灯
# 你好
# view
# wxml
# marquee_container
# marqueeWidth
# style
# hspace
# vspace
# world
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
WordPress 子目录安装中正确处理脚本路径的完整指南
如何快速重置建站主机并恢复默认配置?
Laravel如何实现模型的全局作用域?(Global Scope示例)
南京网站制作费用,南京远驱官方网站?
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
如何在宝塔面板中修改默认建站目录?
香港服务器选型指南:免备案配置与高效建站方案解析
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Android okhttputils现在进度显示实例代码
如何用VPS主机快速搭建个人网站?
Laravel如何实现用户密码重置功能?(完整流程代码)
如何用搬瓦工VPS快速搭建个人网站?
Linux系统命令中tree命令详解
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Windows Hello人脸识别突然无法使用
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel如何实现API版本控制_Laravel版本化API设计方案
昵图网官网入口 昵图网素材平台官方入口
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
大型企业网站制作流程,做网站需要注册公司吗?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
高防服务器:AI智能防御DDoS攻击与数据安全保障
实例解析angularjs的filter过滤器
如何获取免费开源的自助建站系统源码?
JS中对数组元素进行增删改移的方法总结
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
在线制作视频的网站有哪些,电脑如何制作视频短片?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
网站制作价目表怎么做,珍爱网婚介费用多少?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何解决hover在ie6中的兼容性问题
JavaScript如何实现错误处理_try...catch如何捕获异常?
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何在云主机快速搭建网站站点?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?

