vue Uniapp实现多行文本溢出超过指定行数 展开 收起

4 篇文章 0 订阅
3 篇文章 0 订阅

实现效果

实现效果

<template>
	<view>
		<view class="Express">
			<view class="info">
				<view :class="{hide:!iSinfo}">
					vue Uniapp实现多行文本溢出超过指定行数vueUniap实现多行文本溢出超过指定行数vue Uniapp实现多行文本溢出超过指定行数 展开 收起vue Uniapp实现多行文本溢出超过指定行数 展开 收起vue Uniapp实现多行文本溢出超过指定行数 展开 收起vue Uniapp实现多行文本溢出超过指定行数 展开 收起vue Uniapp实现多行文本溢出超过指定行数 展开 收起vue Uniapp实现多行文本溢出超过指定行数 展开 收起vue Uniapp实现多行文本溢出超过指定行数 展开 收起vue Uniapp实现多行文本溢出超过指定行数 展开 收起					
				</view>
				<text @tap="showinfo" v-if="!iSinfo">展开</text>
			</view>
			<text @tap="showinfo" v-if="iSinfo" class="hidebtn">收起</text>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				iSinfo: false
			}
		},
		methods: {
			showinfo() {
				this.iSinfo = !this.iSinfo
			}
		}
	}
</script>

<style lang="scss">
	page {
		background-color: #fff;
	}

	.Express {
		display: flex;
		// width: 100%;
		flex-direction: column;
		background-color: #fff;
		padding: 30upx;
		position: relative;

		.info {
			display: flex;
			flex-direction: column;

			view {
				text-align:justify ;
				font-size: 14px;
				font-family: PingFangSC-Regular, PingFang SC;
				font-weight: 400;
				color: rgba(102, 102, 102, 1);
				word-break: break-word; //换行模式
				background-color: #fff;
			}

			text {
				width: 70px;
				font-size: 14px;
				display: flex;
				justify-content: flex-end;
				align-items: center;
				background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 50%);
				color: #0078FF;
				position: absolute;
				bottom: 30upx;
				right: 30upx;
			}
		}

	}

	.hidebtn {
		display: flex;
		flex: 1;
		justify-content: flex-end;
		color: #0078FF;
		font-size: 14px;
	}

	.hide {
		word-break: break-word; //换行模式
		overflow: hidden;
		text-overflow: ellipsis; //修剪文字
		display: -webkit-box;
		-webkit-line-clamp: 2; //此处为上限行数
		-webkit-box-orient: vertical;
	}
</style>

Vue实现多行文本展开收起功能可以通过计算多行文本的高度来进行判断,并使用Vue的条件渲染来实现展开收起效果。 首先,在data中定义一个变量,例如`isExpanded`,用于控制文本展开收起状态,默认值设为`false`。 然后,在模板中使用条件渲染来根据`isExpanded`的值展示不同的内容。 例如,使用`v-if`指令来判断是否展开,如果展开则显示完整文本,否则只显示指定行数文本。可以使用`v-text`指令来绑定文本内容。通过CSS的`line-clamp`属性来设置文本行数,超出的部分将被省略。 ``` <template> <div> <div v-if="isExpanded"> <div v-text="text"></div> </div> <div v-else> <div class="clamp-line" v-text="text"></div> </div> <button @click="toggleExpand"> {{ isExpanded ? '收起' : '展开' }} </button> </div> </template> <script> export default { data() { return { isExpanded: false, text: "这是一段多行文本" }; }, methods: { toggleExpand() { this.isExpanded = !this.isExpanded; } } }; </script> <style scoped> .clamp-line { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; /* 设置为需要显示的行数 */ -webkit-box-orient: vertical; } </style> ``` 以上代码中,点击按钮时会触发`toggleExpand`方法,通过修改`isExpanded`的值来切换展开收起状态。根据`isExpanded`的值,使用不同的模板来渲染文本内容。 按钮的文本内容也根据`isExpanded`的值来显示“展开”或“收起”。点击按钮时,会调用`toggleExpand`方法切换`isExpanded`的值。 通过以上代码和样式设置,就可以实现一个简单的多行文本展开收起的功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值