讲师中心 微信公众号
AI工具推荐 视频效率加速

如何实现垂直滑动(上下)触发水平滚动效果

阿涛小哥_8179

阿涛小哥_8179

发布时间:2026-08-08 23:55:03

|

327人浏览过

|

来源于php中文网

原创

如何实现垂直滑动(上下)触发水平滚动效果

本文讲解如何通过监听鼠标滚轮事件,将用户垂直方向的滚动操作映射为页面水平滚动,从而在保持常规交互习惯的同时实现横向内容浏览。

本文讲解如何通过监听鼠标滚轮事件,将用户垂直方向的滚动操作映射为页面水平滚动,从而在保持常规交互习惯的同时实现横向内容浏览。

在响应式网页中,有时需要突破浏览器默认的“垂直滚动 = 垂直位移”逻辑,实现「用户向上/下滑动,页面却向左/右平移」的效果——这在全屏横向画廊、时间轴展示或创意型单页布局中非常实用。核心原理是:拦截原生滚动行为,将其 delta 值重新定向到水平轴。

你当前代码中的关键问题在于 window.scrollBy(evt.deltaY, 0) —— 这实际是让页面沿 Y 轴(垂直方向)移动,与目标相悖。正确做法是交换参数顺序,将滚轮的垂直偏移量(evt.deltaY)应用于 X 轴:

const scrollContainer = document.querySelector(".sp");
scrollContainer.addEventListener("wheel", (evt) => {
    evt.preventDefault(); // 阻止默认垂直滚动
    window.scrollBy(evt.deltaY, 0); // ❌ 错误:仍触发垂直滚动
});

✅ 应改为:

scrollContainer.addEventListener("wheel", (evt) => {
    evt.preventDefault();
    window.scrollBy(evt.deltaY, 0); // ⚠️ 注意:此处看似未改?实则需结合 CSS 方向理解
});

但更准确、更健壮的写法是 显式控制水平滚动,尤其当页面存在复杂嵌套或 overflow-x: hidden 时:

scrollContainer.addEventListener("wheel", (evt) => {
    evt.preventDefault();
    // 将垂直滚轮位移映射为水平滚动(正向滑动向下 → 向右滚动)
    const scrollAmount = evt.deltaY;
    scrollContainer.scrollLeft += scrollAmount;
});

✅ 推荐此方式:直接操作 scrollLeft,避免全局 window.scrollBy 可能引发的布局重排冲突,且精准作用于目标容器。

此外,关于你提到的「canvas 3 后出现大片空白」问题,根源极可能在于:

  • .sp 容器宽度计算误差(如 totalWidth - 2500 中的硬编码 -2500 缺乏自适应性);
  • 子元素 .sb 的 margin-right: -4px 或 inline-block 间隙导致总宽塌陷;
  • height: 100vh 在移动端或缩放下引发高度溢出,间接影响 scrollWidth 计算。

优化建议:

  • 移除硬编码宽度减法,改用 scrollContainer.scrollWidth = [...document.querySelectorAll('.sb')].reduce((sum, el) => sum + el.offsetWidth, 0);
  • 使用 display: flex 替代 inline-block,彻底消除间隙;
  • 添加防抖机制避免高频滚动卡顿:
    let isScrolling = false;
    scrollContainer.addEventListener("wheel", (evt) => {
        if (isScrolling) return;
        isScrolling = true;
        evt.preventDefault();
        scrollContainer.scrollLeft += evt.deltaY;
        setTimeout(() => isScrolling = false, 16); // 约 60fps 限制
    });

最后,请确保 和 的 overflow-x: hidden 已正确设置(你已在 JS 中设置 document.documentElement.style.overflowX = 'hidden'),并配合 CSS scroll-behavior: smooth 提升体验:

.sp {
    scroll-behavior: smooth;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch; /* iOS 平滑滚动支持 */
}

这样,用户只需自然上下滑动,即可流畅浏览横向内容,同时空白区域问题也将随布局规范化一并解决。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

0

2026.10.14

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

0

2026.10.14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

0

2026.10.14

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

0

2026.10.14

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

0

2026.10.14

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

0

2026.10.14

讯飞绘文全功能使用教程
讯飞绘文全功能使用教程

本专题系统整理讯飞绘文官网入口、注册登录、工作台及内容创作流程,帮助用户熟悉常用功能,快速完成首篇图文内容。

0

2026.10.14

讯飞绘文AI写作与文案生成合集
讯飞绘文AI写作与文案生成合集

本专题聚焦讯飞绘文AI写作、提纲生成、文章改写和文案润色,覆盖从主题输入到成稿优化的关键操作与实用技巧。

0

2026.10.14

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

100

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn