码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 解决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来代替,大致代码如下

    点击时保存坐标;

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

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

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

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

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

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

  • 相关阅读:
    测试员入职新公司如何快速熟悉新业务?
    Flutter实战-页面参数传递
    Linux负载CPU、内存、磁盘IO、网络IO状态分析详解
    “成像光谱遥感技术中的AI革命:ChatGPT应用指南“
    ParagonNTFS15.9.314新版Mac强大的读写工具
    drawio特性
    Python数据采集与处理之网页爬取
    JAVA练习题36:打乱一维数组中的数据,并按照4个一组的方式添加到二维数组中
    基于ERP集成的流程制造管理系统
    52.【bool类型输入任何非0数值不为1的版本原因】
  • 原文地址:https://blog.csdn.net/zy21131437/article/details/133786778
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号