当前位置: 首页 > news >正文

解决uniapp里scroll-view横向滚动的问题

一、前言

本以为是一件很简单的事,结果浪费了整整一个上午,并且问题并没有全部解决....后来没办法,用了touchmove模拟的滑动,如果有好的解决方法麻烦告诉我...非常感谢~

一、问题

其实我想要实现的功能很简单,就是一个横向滚动条,能按住里面的东西进行横向滚动...

1.1 问题描述

遇到的问题一共两个:

  1. scroll-view没有生效,无法拖动;
  2. scroll-view本身可以拖动,但按住子节点无法拖动(该问题未解决);

二、解决

2.1 scroll-view没有生效

这个问题很好解决,通过查询资料得知,如果想要scroll能横向滚动有一个参数是需要设定的

  1. scroll-x比如设定为true;
  2. 子集肯定是不能换行的,因此,不管使用CSS
white-space: nowrap;

还是使用其他的方法,内容必然要超出scroll-view才可能使用滑动;这两个点完成后按住scroll-view本身是可以进行拖动的;

2.2 按住子元素无法拖动

这个不知道怎么解决,因为我并没有写什么阻止冒泡的事件,而且,官网上的示例中也没有办法按住内容进行左右拖动,

没办法,因此,我使用了touchmove来代替,大致代码如下

点击时保存坐标;

export function touchstart(e: TouchEvent) {e.preventDefault();if (!e || !Array.isArray(e.changedTouches) || !e.changedTouches.length) return;startX_ = e.changedTouches[0].clientX;startY_ = e.changedTouches[0].clientY;
}

拖动时,取得x轴上的移动距离

export function touchmoveFn(e: TouchEvent) {if (!e || !Array.isArray(e.changedTouches) || !e.changedTouches.length) return 0;const startY = startY_;const moveY = e.changedTouches[0].clientY;return startY - moveY;
}

然后将移动的距离赋值给scroll-left

<scroll-view  :scroll-x="true" :scroll-left="distance">
</scroll-view>

以这种方式模拟了横向滚动,但是从个人直觉上来说这是不正确的,scroll-view本身应该是支持子级的横向滚动的,但不知道该如何配置,如果有小伙伴知道麻烦告知一些,谢谢~

http://www.lryc.cn/news/191813.html

相关文章:

  • LeetCode——动态规划(五)
  • 与HTTP相关的各种概念
  • CentOS 7 编译安装Boost
  • vue图表制作
  • 使用 GitHub Action 自动更新 Sealos 集群的应用镜像
  • windows频繁更新问题解决方案
  • day05-前后端项目上传到gitee、后端多方式登录接口、发送短信功能、发送短信封装、短信验证码接口、短信登录接口
  • 046:mapboxGL加载天地图路网图+标记(wmts方式)
  • 【ICer的脚本练习】tcl语法熟悉和工具tcl的实例
  • uniapp+vue3+ts+uview-plus搭建项目步骤
  • 在PHP中,可以使用不同的加密算法(如MD5、SHA1、SHA256)结合RSA算法进行公钥加密和私钥解密。
  • 第六章:路由交换机及操作系统
  • Kafka SASL认证授权(六)全方位性能测试
  • 基于nodejs+vue校园失物招领平台设计与实现
  • Open Winding-PMSM-开绕组永磁同步电机基本介绍
  • uniapp 一次性上传多条视频 u-upload accept=“video“ uni.chooseMedia uni.uploadFile
  • CentOS7卸载硬盘报错:umount: /data: target is busy.
  • Chrome插件精选 — 鼠标手势插件
  • JMeter分布式
  • [华为杯研究生创新赛 2023] 初赛 REV WP
  • C++中resize和reserve
  • 【面试经典150 | 哈希表】存在重复元素 II
  • Intellij 安装配置 lombok
  • Chrome插件精选 — 暗色主题插件
  • PXE解决uefi安装centos6黑屏问题
  • Feign 调用为何POST不支持同时传入多个SpringQueryMap对象,但是GET方法就支持?
  • RISC-V 特权级架构
  • 目录启示:PHP 与命名空间的声明
  • D. Divide and Equalize--Codeforces Round 903 (Div. 3)
  • 保姆式教程:MAC安装Android studio(包括安装JDK,Android SDK),解决gradle下载慢的问题