vue&uni-app项目实现一段文字逐个显示

实现思路是 将要显示的字符串用substr() 方法进行分割,使用计时器逐个增加要分割的长度
主要代码:

onLoad(options) {
	this.data=JSON.parse(options.data)
	this.wen = ''
	//声明一个变量,用来监听要分割的长度
	var wenlen = 0
	this.timer=setInterval (()=>{
		//取到data.content的第wenlen位
		this.wen  = this.data.content.substr(0,wenlen);
		//wenlen大于data.content的长度,停止计时器
		if(wenlen<this.data.content.length){
			wenlen++
		}else{
			clearInterval(this.timer);
			// return
		}
		console.log(this.wen)
	},100);
	
},
//监听页面返回,退出页面时清除计时器
onBackPress() {
	clearInterval(this.timer);
},

这里是uni-app项目
整个页面的代码:

<template>
	<view>
		<view class="detail">
			<text class="tit">{{data.title}}</text>
			<view class="writer">{{data.writer}} · <text>{{data.dynasty}}</text></view>
			<text id="article" selectionchange="true">{{wen}}</text>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				data:{},
				timer:null,
				wen:''
			}
		},
		onLoad(options) {
			this.data=JSON.parse(options.data)
			this.wen = ''
			console.log(this.data)
			uni.setNavigationBarTitle({
				title:this.data.title
			})
			//声明一个变量,用来监听要分割的长度
			var wenlen = 0
			this.timer=setInterval (()=>{
				//取到data.content的第wenlen位
				this.wen  = this.data.content.substr(0,wenlen);
				//wenlen大于data.content的长度,停止计时器
				if(wenlen<this.data.content.length){
					wenlen++
				}else{
					clearInterval(this.timer);
					// return
				}
				console.log(this.wen)
			},100);
			
		},
		//监听页面返回,退出页面时清除计时器
		onBackPress() {
			clearInterval(this.timer);
		},
		methods: {
			
		}
	}
</script>

<style>
	.tit{
		text-align: center;
		color: #333333;
		font-size: 25px;
		width: 100%;
		display: block;
	}
	.writer{
		text-align: right;
		padding-right: 50px;
	}
#article{
	display: block;
	color: red;
	font-size: 16px;
	/* text-indent: 32px; */
	line-height: 30px;
	width: 90%;
	margin: 10px auto;
}
</style>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值