问答

vue tab 左右滚动高亮 需求

作者:admin 2021-06-14 我要评论

需求一是: 可视区域显示5个 当我点击第5个的时候 整体向左移动 把6显示出来 这时候1应该是隐藏了 然后 我点击2的时候 1显示出来。以此类推 需求二是: 每个列表 ...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

image.png

需求一是: 可视区域显示5个 当我点击第5个的时候 整体向左移动 把6显示出来 这时候1应该是隐藏了 然后 我点击2的时候 1显示出来。以此类推

需求二是: 每个列表 都有一个ID 我是从一级页面点击过来 传过一个ID
我向我传过来的ID 然后高亮 滚动到可视区域

我是用vue框架写的 想了半天 没有头绪 ,前辈有好的案例么

###
const tabsEl = this.tabsEl
let allWidth = tabsEl.offsetWidth
let currentWidth = e.target.offsetWidth
let currentLeft = e.target.offsetLeft
const left = currentLeft + currentWidth / 2 - allWidth / 2;
tabsEl.scrollLeft = left;

tabsEl是左右滚动列表的容器, e 是当前点击的元素
###

每点击一个tab,判断offsetLeft大小,如果需要移动,则改变父元素的scrollTop值

###

emmm 没有用 UI 框架吗?像 elementui 什么不是自带的一个方案吗?

1.overflow 做可显示区域,
2.transform: translate3D 做元素的切换
3.配置 cureent 作为当前选中点 ... 简单一点可以作为中间的元素,
4.通过 current,计算 X 轴移动距离,用 computed 输出到 v-html

思路就是大约这样 ... 具体的样式写起来还需要测试 .. 我就溜号了
translate3D 相对而言 有加速 ... 比滚动或者 margin,left 的方案好一点 ... 通用性高一点

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • vue  tab 左右滚动高亮 需求

    vue tab 左右滚动高亮 需求

  • Warning: call_user_func_array() expe

    Warning: call_user_func_array() expe

  • 关于 redis的watch

    关于 redis的watch

  • react echarts地图 formatter怎么添加

    react echarts地图 formatter怎么添加

腾讯云代理商
海外云服务器