捕获滚动​​溢出:隐藏元素

2023-12-21

假设您有一个隐藏了溢出的元素,是否可以在不滚动的情况下捕获该元素上的鼠标滚动?

我问这个的原因是;我有一个单页设计的网站,我编写了一个脚本,当您向下或向上滚动时,该脚本会自动滚动到下一个位置。但有一些我不想要的东西。当他们尝试滚动时,页面实际上是在真正意义上滚动,然后函数触发滚动以滚动到下一个位置。我打算采取body's overflow to hidden他们不会看到滚动,而是自动滚动。

ex:

HTML

<body>
<div id="blue" class="clicked">
</div>
<div id="red" class="clicked">
</div>
<div id="green" class="clicked">
</div>
</body>

CSS

body{
  overflow:hidden;
  margin:0;
}
#blue{
  background-color:blue;
  width:100vw;
  height:100vh;
}
#red{
  background-color:red;
  width:100vw;
  height:100vh;
}
#green{
  background-color:green;
  width:100vw;
  height:100vh;
}

JS

$(document).ready(function(){
  $(document).scroll(function(){
    $('body').animate({'scrollTop':'1000'},3000);
  });
});

DEMO http://cr8code.co/editor.php?workid=9c5343be4b9e1baa3bbfc4aab9af0dd0


这是一个带有元素的示例overflow:hidden并在位置之间滚动:

var scroll_blocked = false;
$('.scrollable').on('mousewheel DOMMouseScroll', function (e) {
		
  if (!scroll_blocked){
		
		var delta = (e.originalEvent.wheelDelta || -e.originalEvent.detail);

		if (delta < 0){
    
      var new_pos = $('.scrollable').scrollTop() + $('.scrollable').height();
      if (new_pos > ($('.scrollable_inner').height() - $('.scrollable').height())) return false;
          
    } else if (delta > 0){
		
      var new_pos = $('.scrollable').scrollTop() - $('.scrollable').height();
      if (new_pos < 0) return false;
    
    }
    
    // scroll to new position
		$('.scrollable').animate({'scrollTop': new_pos}, 500);
    scroll_blocked = true;
    setTimeout(function(){
      scroll_blocked = false;
    }, 500);
    
	}
    
  // disable all other scroll
  return false;
  
});
.scrollable {
  height: 200px;
  width: 200px;
  overflow: hidden;
}

.scrollable_inner {

}

.box {
  height: 200px;
  width: 100%;
}

.box_green {
  background-color: green;
}

.box_blue {
  background-color: blue;
}

.box_red {
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="scrollable">
  <div class="scrollable_inner">
    <div class="box box_green">First slide - hover and scroll down</div>
    <div class="box box_blue">Middle slide</div>
    <div class="box box_red">Last slide -scroll up</div>
  </div>
</div>

对于整个页面,将事件侦听器附加到:

// mouse
$('html').on('mousewheel DOMMouseScroll', function (e) { ...

// touch
$('body').on('touchmove', function(e) { ...

滚动整个页面

$('html,body').animate({'scrollTop': ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

捕获滚动​​溢出:隐藏元素 的相关文章

  • 按箭头键时光标会跳跃

    我有一个文本框 无法在其中输入禁用字符 然而 当文本框填充了数据时 我将焦点放在文本框的中间 然后使用箭头键左右移动 然后它跳到文本框的末尾 这是有效的 如果我也在文本框中间输入一个字符 它会再次转到末尾 id txtClient keyu
  • 字体大小缩放取决于文本和父 div 的长度

    反应 Javascript 我有一个 div 它包含一个段落 这是一个问题框 因此可以更长或更短 我想解决这个段落是否较长 文本数量 的问题 然后缩小字体大小以使文本适合 div 如果段落较短 请放大字体大小 字体大小限制不是最好的方法 我
  • CSS Flexbox Gap - 影响宽度计算的间隙值[重复]

    这个问题在这里已经有答案了 我正在使用 flexbox 和新的gap功能在项目之间添加一些空间 我试图每行有 4 个项目 因此将项目宽度设置为25 像这样 container display flex max width 800px wid
  • 为什么 React 会删除我的类名?

    我正在学习 Reactjs 并且正在使用一些组件渲染一个简单的页面 该组件之一是 class Header extends React Component render return
  • 从express.js 中删除所有标头

    我正在创建一个页面 其中有一些数据可以由另一个设备解析 我曾经使用 php 执行此操作 但现在将其移至 Node js 我需要从页面中删除所有标题 这样我就只有我的输出 此输出是对 GET 请求的响应 此刻我有 HTTP 1 1 200 O
  • EmberJS 支持单字母单词模型吗?

    我无法真正确定问题是 Ember 还是 Ember 数据 或者甚至是一个问题 但发生的情况如下 假设你的模型被称为tell me a story 如果您使用 ActiveModelAdapter 这将是您的 JSON 应该提供的名称 无论如
  • 设置 iframe 内容的样式

    是否有可能设置 iframe 内容的样式 我正在研究 Google 集成 并将 iframe 与文档一起包含在内 这个谷歌文档有我不想显示的菜单 文件 编辑 是否有可能针对此元素并赋予它们诸如 显示 无 或者只是以某种方式隐藏这些元素 Th
  • Eslint throws 被分配了一个值但从未使用过,webpack 模块

    我正在 webpack 中导入脚本 一切正常 但 eslint 抛出错误 modal is assigned a value but never used 是否必须将 const 声明为全局变量或导出模块才能修复错误 module vani
  • 使用 PhoneGap for Android:无法在数据库中创建表

    背景 我是 PhoneGap 的新手 尝试在 Android 上使用 HTML5 PhoneGap 在 SQLite 中创建一个简单的表 这是我的 HTML 代码 使用 PhoneGap 网站的参考代码
  • 如何让元素在进入页面时滚动到滚动条的中心

    我正在制作一个 Angular 项目 它有一个 时间轴 组件 其中有一个overflow x scroll元素 container width 30vw height 100vh background color aquamarine ma
  • jQuery ajax表单多次提交

    我在使用 jQuery ajax 表单提交多个表单时遇到一些问题 我通过在服务器上打印表单提交的每个实例发现了这一点 并发现表单会正确提交一次 然后再次提交多次 需要明确的是 这段代码在第一次提交时可以 100 正确运行 但是当我单击表中的
  • 如何清理除图像网址之外的 html 字符串?

    我正在尝试清理 html 字符串 但我想将图像网址列入白名单 我的代码 ActionView Base full sanitizer sanitize phrase meaning tags w img attributes w src 这
  • 反应材料ui自动完成元素焦点onclick

    我有一个 Material ui 自动完成元素
  • 如何在 iOS 中的电子邮件的 HTML 正文中嵌入图像

    我正在尝试在从 iPad 发送的 HTML 电子邮件的正文中包含图像 这似乎是不可能的 我尝试过使用 CID 方法 但似乎在 iOS 中无法获取 设置附件的 CID 我也尝试过将图像嵌入src data image png base64 b
  • jQuery - 检测元素是否在视口中

    我正在编写一个脚本 当不同的元素出现在屏幕上时 它会为它们提供一些动画 第一步是检测它们何时进入屏幕 但这似乎不起作用 我尝试过的 The visible 选择器 我很快发现这在 jQuery 中还有其他作用 不同的插件 但我发现它们做的事
  • Document.querySelector 返回 null,直到使用 DevTools 检查元素

    我正在尝试创建一个 Chrome 扩展程序 用于查找 Facebook 上的 赞助 帖子并将其删除 在执行此操作时 我注意到 Google Chrome 在 Facebook com 上的这种相当奇怪的行为 其中对现有元素的某些类型的查询
  • 在css3动画中添加延迟时间

    我只是给div设置了一个动画 就成功了 现在我想要证明它 因为它的延迟太短了 那么如何添加动画 0 到25 和动画 25 到50 之间的延迟时间 这是代码 flow position absolute webkit animation my
  • 让 Jsoup 支持通过 JavaScript 动态生成 html

    现在我正在开发一个网络爬虫 这个应该解析一些特定的站点并将输出输出到 xml 文件中 到目前为止 没有问题 Crawler 可以工作 您可以通过 cfg 文件快速自定义它 我使用 Jsoup 来解析 HTML 内容 我刚刚添加了几个站点 发
  • 云功能:如何将 Firestore 集合复制到新文档?

    我想在使用 Cloud Functions 进行活动时在 Firestore 中制作集合的副本 我已经有了这段代码 可以迭代集合并复制每个文档 const firestore admin firestore firestore collec
  • 要求节点模块 var 或 const 的最佳方法是什么?

    当我们需要诸如express或bodyParser之类的节点模块时 我们将使用var关键字创建变量并分配模块 我们不能用const声明这样的模块 也就是说 代替这个 var express require express var app e

随机推荐

  • “您可能需要一个额外的加载器来处理这些加载器的结果。”

    我目前正在尝试为 ReactJs 构建一个状态管理库 但是一旦我将它实现到我的 React 项目中 使用create react app 它开始丢弃此错误 Failed to compile path to agile dist runti
  • QProcess 在未 waitForFinished() 时不发出信号

    下面的代码中省略了waitForFinished 使 QProcess 停止发出信号 这到底是怎么回事 这是 Qt 的错误吗 5 7 请注意 此代码与 QtConcurrent 并行运行 但这不应该改变任何事情 不是吗 Afaik 在其他线
  • [decl.constexpr].5 到底是什么意思?

    该标准关于常量表达式函数 decl constexpr 第 5 点规定 对于非模板 非默认 constexpr 函数或非模板 非默认 非继承 constexpr 构造函数 如果不存在参数值 则函数或构造函数的调用可以是核心常量的计算子表达式
  • 导出到 Excel 不适用于 SSL (https) 下的 IE

    我一直在尝试修复安全网站 https 上的某些内容 该网站是一个生成 CSV 文件的 导出到 Excel 按钮 它适用于 Firefox Chrome 等 但不适用于 Internet Explorer 我已经更改了标头 消除了无缓存 还编
  • 自移动批处理文件

    我正在寻找一种方法让批处理文件在执行后将其自身移动到已知位置 自动移动 似乎是最恰当的名字 但我确信它有一个技术术语 我想移动批处理文件after所有其他代码都已运行 move C temp move me bat D temp move
  • 溢出的签名/未签名作业及其结果

    我正在阅读 Stroustrup 的书 C 编程语言第 4 版 并且有三个关于溢出赋值的问题 特别是对有符号 无符号字符 如书中所示 首先 根据标准5 4段 如果在计算表达式时 结果不是 数学定义或不在可表示值的范围内 它的类型 行为未定义
  • HTML5 svg 不工作

    我使用的是 Chrome 版本 5 0 375 55 和 Firefox 版本 3 5 9 但我无法获取下面的 HTML5 代码来显示一个框
  • VBA/VB6 集合到底是什么?

    对于整数键 索引速度为O N 所以看起来它是一个列表 但显然 wqw 的评论无法在 VB6 For Each 循环中正确循环键和值 https stackoverflow com q 57066954 1261153 字符串键的访问时间是O
  • subversion authz 路径包含空格

    如何为包含空格的路径设置 authz 文件 我尝试了各种方法来逃离这个空间 但都不起作用 some path some 20path some path some path 我刚刚检查了 svn 源代码和文件解析器 在 libsvn sub
  • 词干提取的逆过程

    我使用 lucene 雪球分析器来执行词干提取 结果是没有意义的话 我提到了这个question https stackoverflow com questions 190775 stemming algorithm that produc
  • 电话格式的 HTML 电话链接 [重复]

    这个问题在这里已经有答案了 我正在为手机制作一个 html 链接 这就是我所拥有的 a href 1 888 888 8888 a 手机会识别这一点 还是我需要将其更改为 a href 1 888 888 8888 a uri 中允许使用视
  • ASP.Net Core 上具有自动再生功能的内存缓存

    我想没有内置的方法可以实现这一点 我有一些缓存数据 需要始终保持最新 间隔几十分钟 它的生成大约需要 1 2 分钟 因此有时会导致请求超时 为了优化性能 我将其放入内存缓存中 使用Cache GetOrCreateAsync 所以我确信可以
  • Haskell 中的随机整数 [重复]

    这个问题在这里已经有答案了 我正在学习 Haskell 并学习我想生成一个随机的 Int 类型 我很困惑 因为下面的代码有效 基本上 我想要一个 Int 而不是 IO Int 在 ghci 中 这是有效的 Prelude gt import
  • 如何使用 Spring Cloud 和 Netflix OSS 在微服务之间路由

    在使用 Spring Cloud 开发微服务期间 我们开始使用 Zuul 作为从外部到微服务的任何连接以及任何需要联系另一个微服务的微服务的代理 一段时间后 我们得出结论 Zuul 被设计为边缘服务 仅代理从外部到微服务的流量 并且不应用于
  • 如何在AWS Lambda上使用tabula阅读pdf?

    我知道我们必须下载 Java 才能运行 我在 IDE 上执行了该操作 并且成功了 但不知道如何在 AWS Lambda 上下载它 如果有人能帮助我 我将不胜感激 我认为代码本身产生了我所期望的结果 但是 java正是我所需要的 这是我收到的
  • 将 GKE 服务帐户凭据与 kubectl 结合使用

    我正在尝试从 CI 系统中调用 kubectl 我希望使用谷歌云服务帐户进行身份验证 我有一个秘密管理系统 可以将秘密注入到我的 CI 系统中 但是 我的 CI 系统没有安装 gcloud 我不想安装它 它只包含 kubectl 有什么方法
  • Azure AD B2C 令牌返回名称,但 User.Identity.Name 为 null

    我有一个 Azure AD B2C 令牌 它似乎可以正确返回当前登录的用户名 这是 jwt ms 的屏幕截图 我在登录后使用它来解码应用程序返回的令牌 但是 然后我尝试使用 User Identity Name in my Layout c
  • 关于Javascript中的“5”-1和“5”+1(加号和减号)[重复]

    这个问题在这里已经有答案了 我读了一本关于 Javascript 运算符的书 这让我很困惑 console log 5 1 这将使 5 成为一个字符串 所以结果是51 console log 5 1 这个结果将是4 我知道它会转换 5 to
  • 在 VSTS 中设置 GitFlow - 最佳实践?

    有没有关于如何使用 Visual Studio TeamServices 设置 GitFlow 的建议 我们来自 BitBucket 那里只是一个简单的初始化 但在VSTS中我们找不到任何脚手架 看来我们必须进行很多手动设置 对吗 那么如何
  • 捕获滚动​​溢出:隐藏元素

    假设您有一个隐藏了溢出的元素 是否可以在不滚动的情况下捕获该元素上的鼠标滚动 我问这个的原因是 我有一个单页设计的网站 我编写了一个脚本 当您向下或向上滚动时 该脚本会自动滚动到下一个位置 但有一些我不想要的东西 当他们尝试滚动时 页面实际