Vue +Ts | 点击左右按钮可滑动的列表

效果:

功能点:

  1. 点击tab1和tab2切换不同的列表
  2. 点击左右按钮滑动列表且每次滑动多列

思路分析:

具体思路如下:

  1. 利用flex布局将列表横向排列
  2. 超出列表显示区域的隐藏
  3. 点击左右按钮时让列表滚动起来,我此处使用的transform: translateX(xxpx)

实现代码:

1. 定义变量

  const xz_xx: any = ref(null);//tab1对应的盒子
  const zd_xx: any = ref(null);// tab2对应的盒子
  const xzzd_xx_width = ref(84); // 限定一格宽度
  const xzzd_xx_num = ref(-5); // 限定一次跳多少格
  const xxx: any = ref(0); //滑动的格数

2.画页面
3.左右箭头绑定事件

 function leftmove() {
    // 小于xzzd_xx_num时一次滑动xzzd_xx_num个 否则变为0 如 -5+5=0
    if (xxx.value == 0) return;
    if (xxx.value <= xzzd_xx_num.value) {
      xxx.value += Math.abs(xzzd_xx_num.value);
    } else {
      xxx.value += Math.abs(xxx.value);
    }
  }
  function rightmove() {
    let clientWidth = 0,
      ulWidth = 0;
    if (showtown.value) {
      clientWidth = xz_xx.value.clientWidth; // 容器宽度
      ulWidth = optionsxzxz.value.length * xzzd_xx_width.value;
    } else {
      clientWidth = zd_xx.value.clientWidth;
      ulWidth = optionsxzzd.value.length * xzzd_xx_width.value;
    }
    let maxXXX = (ulWidth - clientWidth) / xzzd_xx_width.value; // 最大可移动数字
    if (maxXXX <= 0) return;
    if (-maxXXX < xzzd_xx_num.value && xxx.value > xzzd_xx_num.value) {
      xxx.value -= Math.abs(xzzd_xx_num.value);
    } else {
      xxx.value -= maxXXX + xxx.value;
    }
  }

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值