首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何阻止冒泡&&浏览器默认行为

摘要 很多同学对阻止事件冒泡和阻止事件默认行为容易混淆,项目中因为一些原因也需要阻止浏览器的一些默认行为,这里就简单总结一下。...阻止事件冒泡 什么是事件冒泡这里就不再赘述了,网上的文章一大把,这里就简述一下如何阻止事件冒泡,阻止事件冒泡在使用浏览器原生API的情况下,是需要分情况考虑的,毕竟有个个性的浏览器IE,这里分为IE实现和...可以尝试使用return false 阻止浏览器默认行为 在开始之前,首先需要了解什么是浏览器的默认行为,我这里简单举几个例子: 点击a标签,如果设置了href会执行跳转 点击输入框,输入框会获取焦点...点击右键,会弹出浏览器右键菜单 点击submit,会提交其所在表单 点击checkbox 会选中或者反选 还有其他的很多,这里就不一一列举了 同样的对于阻止浏览器默认行为的实现也分为W3C标准实现和IE...console.dir(event); } } document.addEventListener('wheel', preventCancelableEvents); # 总结 阻止默认冒泡和阻止浏览器默认行为需要关注的是兼容性问题

2.1K40

js 停止事件冒泡 阻止浏览器的默认行为

在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”。...浏览器默认行为: 在form中按回车键就会提交表单;单击鼠标右键就会弹出context menu. a标签 1..停止事件冒泡 JavaScript代码 1 //如果提供了事件对象,则这是一个非IE浏览器...否则,我们需要使用IE的方式来取消事件冒泡 7 window.event.cancelBubble = true; 8 return false; 2.阻止浏览器的默认行为 JavaScript代码...2、使用原生javaScript,在事件处理程序中返回false只会阻止浏览器默认行为,而事件冒泡依然存在。 3、浏览器默认行为和事件冒泡是相互独立的。阻止事件冒泡不会影响默认行为,反之亦然。...注意: 有一些浏览器行为是在事件处理程序执行前发生的,也就是说这些默认行为是无法取消的,如:在大部分浏览器上鼠标移到一个超链接上超链接的样式会发生改变,这个动作是发生在focus事件之前的,是focus

5.3K120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    你也许不知道的浏览器的一些滚动行为

    最近挺忙的,这次抽空写写文陶冶下情操,浏览器滚动真的天天见日日见啦,比如你现在看的这篇文章,往下看就必须得滚动,这篇文章主要聊聊滚动相关的一些方法跟属性,还有一些有趣的例子?...分类 按照我的个人理解,滚动分全局滚动(浏览器窗口)跟局部滚动(自定义的盒子),以下内容绝大部分都是指全局滚动,局部滚动的话获取指定的DOM再调用相应的API即可✅ 如何设置全局滚动条高度 1....} 效果如下: 注意:设置了该属性之后,所有方法都可以不用设置behavior参数了,二选一即可,因为都是控制当前指定元素的滚动行为,所以锚点跳转、设置scrollTop也具有平滑(smooth)的滚动行为...} 对比如下: 注意:要真机才能看到效果,这里指的局部滚动是指自己定义的盒子,然后设置overflow: auto || scroll;后的滚动行为; 7....滚动传播 指有多个滚动区域,当一个滚动区域滚动完之后,继续滚动会传播到到父区域继续滚动的行为: .box { overscroll-behavior: contain; // 阻止滚动传播 } 对比效果图如下

    3.1K20

    vscode如何设置默认打开的浏览器为Chrome(vscode设置默认打开的浏览器为Chrome为什么不还是用其他浏览器打开)

    vscode如何设置默认打开的浏览器为Chrome vscode如何设置默认打开的浏览器为Chrome 安装下载配置插件 一起加油!...vscode如何设置默认打开的浏览器为Chrome 在使用vscode编辑器的时候,如果我们不设置默认浏览器,那么直接打开的是IE浏览器或者360浏览器(看本地的默认浏览器是什么),在进行页面调试的时候无疑是有点麻烦的...,下面我们就说一下如何设置打开的浏览器为chrome open in Browser 首先需要安装open in browser插件(如果没有安装 ,下拉有安装配置教程),如果安装过了可以跳过此步骤...然后修改默认浏览器为Chrome:选择文件—首选项—设置,在搜索栏输入open-in-browser.default,输入框里面直接输入 Chrome 这也就完成了默认打开chrome的设置 Open...,选择扩展设置 打开扩展设置 然后选择chrome即可 我自己这边之前只是 修改了配置文件中的默认设置 修改后一直尝试但都没有成功,最终在扩展设置中 把默认浏览器修改成和配置文件中的一样,这样猜配置成功

    1.2K10

    jimojianghu

    用于设置触摸屏用户如何操纵元素的区域,允许你在触控时控制滚动操作。 例如,浏览器内置的缩放功能。 这样做的好处还有,它可以允许你自己实现这些手势。...manipulation 这是pan-x pan-y pinch-zoom的别名。 浏览器只允许进行滚动和持续缩放操作,任何其它被auto值支持的行为不被支持。...pan-left, pan-right,pan-up,pan-down 启用以指定方向滚动开始的单指手势。 一旦滚动开始,方向可能仍然相反。 多个方向可以组合。...passived 实际上就是告诉浏览器,某个事件监听是否会使用 preventDefault 来阻止默认行为,便于浏览器优化性能。特别是浏览器优化页面滚动时的性能,可以让页面滚动更顺滑。...由于目标被视为被动,因此无法在被动事件侦听器中阻止默认行为。 可能的发生情景:移动端使用touch事件后,垂直平移时的报错。

    3.8K00

    【总结】1823- 移动端滚动穿透与滚动溢出解决方案

    ,平移(滚动)和缩放手势由浏览器专门处理,但是可以通过 CSS 特性 touch-action 来改变触摸手势的行为。...摘取几个 touch-action 的值如下。 值 描述 auto 启用浏览器处理所有平移和缩放手势。 none 禁用浏览器处理所有平移和缩放手势。...大意是说,在 touchstart 和 touchmove 事件中调用 preventDefault 方法可以阻止任何关联事件的默认行为,包括鼠标事件和滚动。 因此我们可以这样处理。...Step 1、监听弹窗最外层元素(popup)的 touchmove 事件并阻止默认行为来禁用所有滚动(包括弹窗内部的滚动元素)。...值 描述 auto 默认效果,元素的滚动可以传播到祖先元素。 contain 阻止滚动链,滚动不会传播到祖先元素,但是会显示节点自身的局部效果。

    60811

    探究 css touch-action 属性

    ,平移(滚动)和缩放手势由浏览器专门处理。...通过明确指定浏览器应该处理哪些手势,应用程序可以在 pointermove 和 pointerup 监听器中为其余的手势提供自己的行为。...当手势开始时,浏览器与触摸的元素及其所有祖先的触摸动作值相交直到一个实现手势(换句话说,第一个包含滚动元素)的触摸动作值。...manipulation 浏览器只允许进行滚动和持续缩放操作。任何其它被auto值支持的行为不被支持。启用平移和缩小缩放手势,但禁用其他非标准手势,例如双击以进行缩放。...pan-left, pan-right,pan-up,pan-down 启用以指定方向滚动开始的单指手势。 一旦滚动开始,方向可能仍然相反。

    1.8K10

    我如何用一行Css代码使谷歌浏览器的数据网格滚动快10倍

    您还可以检查哪些外部网站链接到您的页面,当我浏览"顶部链接网站"页面时,我注意到了 主要 的滚动滞后。当选择显示较大的数据集(500 行)而不是默认的 10 个结果时,就会发生这种情况。...这就是我所看到的:DevTools / Performance 滚动"顶部链接站点"数据网格的性能配置文件,非常低的 FPS "任务"块上的那些红耳朵表明,在滚动时,某些东西需要的时间比可接受的时间要长...好消息 - 我试着应用一些秘密酱汁, 再次滚动, 现在感觉好多了。这也清楚地显示在它的性能配置文件: 滚动改进了很多!...现在每个帧需要大约 16 ms,我们以接近 60 FPS而不是60 f7 的速度滚动。了不起! 那我做了什么?...植入广告:如果您需要一个可执行的数据网格处理 10 万+行与平滑滚动,请务必查看 Bryntum 网格 (由我和我的同事开发).

    2.2K10

    ,掌握这9个鲜为人知的CSS属性

    该属性提供了五个可选值: auto :这是默认值,它的行为就好像该属性未被使用。浏览器使用自定义字体隐藏文本,直到字体加载完成后再显示文本。...它提供了一种创建平滑且精确的滚动行为的方式,特别适用于需要滚动浏览一系列项目或部分的情况。 scroll-snap 属性有多个子属性,用于控制滚动行为的不同方面。... 值定义了应用捕捉行为的滚动轴,可以设置为以下选项之一: none :没有应用于任何轴的捕捉行为。 both :拍扑行为应用于水平和垂直轴。...block :快照行为应用于块轴(垂直滚动)。 inline :快照行为应用于内联轴(水平滚动)。...它提供了几个取值: none :这是默认值,不应用任何约束效果。 size:启用尺寸约束意味着元素可以在不需要检查其子元素的情况下进行尺寸调整,从而优化布局计算。

    49630

    【愚公系列】《AIGC辅助软件开发》031-AI辅助解决各种疑难杂症:警惕小众场景下的误导性回答

    WebGL 和纹理的默认行为有时会导致纹理在 y 轴上被翻转。 在 WebGL 中,纹理坐标的原点(0, 0)通常在左下角,而在 Pixi.js 或其他 2D 渲染引擎中,原点可能在左上角。...**滚动容器问题**:在一些移动浏览器中,`` 和 `` 元素的滚动行为可能有所不同。...有些浏览器实际上会把滚动行为应用在 `` 标签上,而不是 `` 标签上。...在部分安卓浏览器中,设置 `body.style.overflow = 'hidden'` 后页面仍然可以滚动,通常是由于浏览器在处理滚动和 `overflow` 属性时的差异化行为。...**浏览器 Bug 或特殊实现**: 某些安卓浏览器或特定的 WebView 版本可能存在处理 `overflow: hidden` 时的 bug,导致滚动行为无法正常禁用。

    11600

    效率工具RunFlow完全手册之局域网传输篇

    启用局域网传输局域网传输工具默认是没有启用的,要启用它我们需要跳转到内置插件的设置页面,向下滚动会看到一个叫 局域网传输 的功能,勾选它以启用局域网传输。...如果您还不清楚如何打开我们的设置页面,可以先从我们的基础篇开始了解。...要启用静态文件浏览服务,首先我们需要勾选它,并设置一个需要共享的文件(通常是一个文件夹),设置成功后我们可以看到一个可访问的链接,用浏览器打开链接就可以浏览和下载文件。...注意通过浏览器建立连接的一些限制:1. 无法接收文件;2. 无法监听剪贴板,所以推送剪贴板是您的主动行为;3. 无法接收来自该设备的剪贴板推送,但是可以查看该设备当前的剪贴板内容。...结语本篇向您介绍了如何使用我们提供局域网传输用具来传输文件以及同步剪贴板,以满足各种隐私数据的传输。

    17420

    安全资讯|Firefox默认为美国用户通过HTTPS打开DNS

    Mozilla已经开始默认为美国所有用户在其Firefox浏览器上推出使用DNS over HTTPS(DoH)协议,以增强他们在网络上的隐私和安全性。...Mozilla本周表示:“部署将在接下来的几周内继续进行,以确认没有发现重大问题,因为该新协议已为Firefox的美国用户启用。”...默认情况下,仅在美国启用DoH选项。...如果您在美国境外并想要激活它,则可以通过以下方法进行操作:导航到Firefox的“选项”菜单,向下滚动到“网络设置”,单击右侧的“设置”,然后向下滚动并选中“在HTTPS上启用DNS”复选框 。...---- 文章由白帽技术与网络安全整理翻译,图片部分来源网络,如果有侵权行为请联系我方删除

    91020

    终于等到你,新的虚拟键盘API 即将到来,快来先睹为快吧!

    这已经是多年来网络上的默认行为了。在本文中,我们将探讨这个问题,为什么会发生这种情况,以及如何使用虚拟键盘API来解决它。让我们开始吧。 问题 在深入细节之前,让我们通过一个例子来了解一下。...浏览器将向上滚动以使输入框在键盘上方,因此粘性标题和浮动按钮将消失。 它看起来与以下内容相似: 这是移动浏览器中的默认行为。...启用虚拟键盘API 此 API 默认不可用。我们需要使用 JavaScript 来启用它。...如果浏览器不支持该API,则会默认为 0。 你可能会对由于标题和固定底部的存在而导致的空间减少感到困惑。我们可以使用垂直媒体查询来在垂直空间足够的情况下显示标题。...为桌面使用不同的值 假设我们想在桌面浏览器上进一步调整浮动按钮的位置,我们该如何做呢?嗯,我考虑使用 max() 比较函数,结果行得通。

    37020

    2019-08-09 满屏切换vue项目中使用 vue-fullpage.js

    ,设为false后,会出现浏览器自带的滚动条,将不会按页滚动 // autoScrolling: false, // //是否包含滚动条,设为true,则浏览器自带的滚动条会出现,页面还是按页滚动...,但是浏览器滚动条默认行为也有效 // scrollBar: true, // //设置每个section顶部的padding,当我们要设置一个固定在顶部的菜单、导航、元素等时使用...: false,//是否可以使用键盘方向键导航,默认为true continuousVertical: true, /// 是否循环滚动,默认为false。...,设为false后,会出现浏览器自带的滚动条,将不会按页滚动 // autoScrolling: false, // //是否包含滚动条,设为true,则浏览器自带的滚动条会出现,页面还是按页滚动...,但是浏览器滚动条默认行为也有效 // scrollBar: true, // //设置每个section顶部的padding,当我们要设置一个固定在顶部的菜单、导航、元素等时使用

    11.9K30

    📚一站式解决:H5开发全攻略,看这篇让你省时又省力

    / ⭐️⭐️body存在默认背景色 解决方案 body 标签在大部分浏览器中的默认背景色是白色,但在极少数浏览器中的背景颜色是淡绿色或者其他颜色。...// 启用滚动穿透 function enableScroll() { // 恢复滚动区域容器的样式 container.style.height = ''; container.style.overflow...组件库解决方式 思想思路: 针对触摸滑动事件 touchmove,通过监听滑动方向和滚动元素的状态,决定是否阻止默认的滑动行为,从而防止滚动穿透。...在需要锁定滚动的情况下,给 document 添加 touchstart 和 touchmove 事件的监听器,通过捕获触摸滑动事件,并根据情况阻止默认行为,从而避免滚动穿透。...在解锁滚动时,从 document 移除对触摸事件的监听器,恢复默认的滑动行为。

    90521

    微信小程序实践:2.3 可滚动的容器组件之 scroll-view

    这是自定义实现的效果,相当于浏览器的滚动条,效果是通过css样式控制的。 3、主要属性讲解 scroll-view是一个略显复杂的组件。它的属性主要支持了两个功能:左右滚动与下拉更新。...当scroll-y为真时,允许纵向滚动;当添加scroll-x属性时,允许横向滚动。 ? 在这张动图中,上面启用的是scroll-x,下方启用的是scroll-y。...两个方向的滚动可以同时开启,但在操作时,只能同时朝一个方向滚动。 scroll-top指内部的滚动实体,高于顶部边缘多少距离。单位默认是px,也可以传入rpx。...像scroll-top、scroll-left这两个属性,它们是通过属性绑定、控制组件行为的属性。如果我们想让滚动实体滚动到某个位置,并不能直接调用它的一个类似于scrollTo()的方法。...它是控制「滚动锚定」特征的,即控制滚动位置不随内容变化而抖动,这种情况据说在用户浏览行为中占比1%。这个属性默认是false,添加后,功能才会开启。 什么是滚动锚定?

    15.3K30

    精读《深入了解现代浏览器四》

    概述 前几章介绍了浏览器的基础进程、线程以及它们之间协同的关系,并重点说到了渲染进程是如何处理页面绘制的,那么最后一章也就深入到了浏览器是如何处理页面中事件的。...// 没有用的,无法阻止滚动,因为委托处默认 passive onWheel={event => event.preventDefault()} > ......总结 从浏览器角度看待问题会让你具备上帝视角而不是开发者视角,你不会再觉得一些奇奇怪怪的优化逻辑是 Hack 了,因为你了解浏览器背后是如何理解与实现的。...毕竟作为一个不了解浏览器实现的开发者,自然会认为 preventDefault() 绑定在滚动事件时,一定可以阻止默认滚动行为呀,但为什么因为: 浏览器分为合成层和渲染进程,通信成本较高导致滚动事件监听会引发滚动卡顿...总之就是 React 与浏览器实现背后的纠纷,导致滚动行为阻止失效,而这个结果链条传导到了开发者身上,而且有明显感知。

    69810
    领券