我们的手机端使用vant来做前端UI框架。
今天在使用vant的picker组件时候,遇到了一个问题。当文字过长的时候,vant的处理方式是ellipsis,超长部分显示【…】
如果恰好省略号前边内容相同,用户就无法区分选项了。如图:
vant没有提供滚动的实现方式,所以我们自己兼容实现一下。
首先,打开开发者工具看下dom结构
我的思路是,如果在选中状态下,内层文字div长度大于外层的时候。给内层增加一个滚动动画效果。
实现如下:
- 重写.van-ellipsis两个样式,去掉ellipsis效果和overflow:hidden
- 监听picker的change事件
- 在dom渲染结束之后,获取.van-picker-column__item–selected并判断它与内部文字的宽度
- 如果内部组件宽度大于外部,在添加一个animation
<template>
<div id=