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

[CSS]让overflow不用按shift可以滚轮水平滚动(纯CSS)

前言

我不爽前端无法直接滚轮横向滚动很久了
明明浏览器可以直接判断 x滚动且y不滚动的时候滚轮事件可以直接操作横向滚动
这个是我探究出来的方法,尤其适合这种很多很多小tag的情况
请添加图片描述

解析

原理是将竖向排列的overflow旋转成横向,实际操作的还是竖向overflow.继而实现鼠标滚轮不用按住shift即可滚动.

<template><div class="tags" :style="{ height }"><div class="tags-ro"><div class="tags-list no-scrollbar "><slot></slot></div></div></div>
</template><script setup lang="ts">
defineProps({height: {type: String,default: '1.5em'}
});</script><style scoped lang="less">
.tags {position: relative;height: 1.5em;overflow: hidden;.tags-ro {/*敲重点:通过aspect-ratio设置比例为1(即正方形)*/aspect-ratio: 1 / 1;transform: rotate(270deg);}.tags-list {display: flex;flex-direction: row;gap: 1em;overflow: auto;text-align: center;text-wrap: nowrap;max-height: 100%;/*敲重点:这个sideways-rl可以实现文本竖着显示(相当于旋转90°)但还不会影响布局*/writing-mode: sideways-rl;/*让元素对齐到右侧 方便上级剪裁*/float: right;}}/** * 不显示滚动条 但是可以触摸和滚轮滚动*/
.no-scrollbar {overflow: auto;scrollbar-width: none;/* Firefox */-ms-overflow-style: none;/* Internet Explorer 10+ */&::-webkit-scrollbar {display: none;/* Safari and Chrome */}&::-webkit-scrollbar-thumb {background: transparent;/* Safari and Chrome */}
}
</style>

为啥不用JS

用JS也可以将事件转为横向滚动 但是模拟出来的操作不够丝滑 具体原因:

  • 作为一个相当尿性的前端应当少用JS,这可以提升网页运行效率(尤其是在移动端的时候,响应会有很大延迟)
  • 模拟JS,也就是自己拦截wheel事件并通过.scroll()方法重新设置水平位置这种方式的弊端:
  • -> 滚动距离值得考究 取值比较迷惑
  • -> 如果连续滚动的话 会出现卡顿情况(尤其用了smooth)
  • -> 如果你打算解决上面的问题,你会写很多很多的代码,比如动态目标位置计算,加减速控制等(相信我 我写过)
  • -> 啥都不如浏览器原生的好
http://www.dtcms.com/a/298113.html

相关文章:

  • 【氮化镓】GaN取代GaAs作为空间激光无线能量传输光伏转换器材料
  • SQL server 2019删除重建用户
  • Dify数据可视化-AntV Visualization Chart
  • 「iOS」——多线程原理总结
  • Codeforces Round 735 (Div. 2) D. Diane
  • 页面实时数据更新(进入页面或者浏览器后退前进状态刷新页面)
  • 单目云台是一种安防监控设备,它通常配备一个摄像机,用于实现远程监控和目标追踪
  • nacos的配置中心
  • MySQL性能优化配置终极指南
  • 算法讲解--有效三角形的个数
  • 将本地项目推送到远程github仓库
  • Promise的allSettled,all,race
  • RCE真实漏洞初体验
  • CGA老年综合评估汉密尔顿抑郁量表与认知评估联用
  • HTML 常用标签速查表
  • 智能机器人的技术革命:从感知到决策的全栈架构解析
  • 目前市面上arm64-v8a、armeabi-v7a设备的市占率有多少?为什么x86架构的手机越来越少?
  • 如何识别发票特殊版式?OCR大模型如何颠覆传统并保证准确率?
  • 力扣面试150(41/150)
  • 力扣-560.和为K的子数组
  • 第 9 篇:神经网络初探——当AI拥有了“大脑”,世界从此不同
  • JAVA语法糖
  • 高效算法的实现与优化是计算机科学的核心,直接决定了程序的性能和资源消耗。下面针对排序算法、搜索算法和动态规划,深入探讨其高效实现与关键优化技术。
  • 机器视觉对位印刷加工PCB板应用
  • LlamaIndex 和 Elasticsearch Rerankers:无与伦比的简洁
  • Power Compiler:漏电功耗、内部功耗、切换功耗及其计算方式(NLPM)
  • 基于Transform、ARIMA、LSTM、Prophet的药品销量预测分析
  • Jenkins中HTML文件显示样式问题解决方案
  • 【数据库】AI驱动未来:电科金仓新一代数据库一体机如何重构性能边界?
  • Vue接口平台十二 —— 测试任务(Task)