首页
学习
活动
专区
圈层
工具
发布

如何防止Vue页面局部元素滚动时,页面整体滚动?

我最近遇到了一个问题,就是Vue页面我引入了一个列表组件,这个列表是可以单独滚动的。当我把鼠标移入,开始滚动操作时候,浏览器最右边的滚动条也会开始滚动。...而浏览器的默认行为是,当一个滚动事件发生且子元素滚动到边界时(比如已经滚动到底部或顶部),事件会继续传递给父容器,最终传递到 body,导致页面的整体滚动。...解决方法 为了防止整个页面滚动(即 body 的滚动),你需要使用 e.preventDefault() 来阻止浏览器的默认行为。...e.preventDefault(); // 阻止浏览器默认行为(即防止页面滚动) // 其他滚动处理逻辑 } } } .scrollable-element...总结 浏览器的滚动事件需要用preventDefault() 来阻止,这个事件写在某个页面元素上不会影响该元素的正常滚动。这是个小问题,记录一下,方便下次遇到又忘记了。

1.8K10

Framer 滚动动画效果集合 (讲解)

滚动动画在我们浏览一些网站的时候经常看到(苹果官网,oppo官网,等等). 但是我们今天不是讲如何使用代码来实现,而是讲一下在Framer 里面如何实现....第一个效果,滚动时,文本从四个方向淡入出现 看效果: 具体步骤: 首先给下面两个大盒子设置一个滚动部分属性的编写.分别设置好名称就可以了,这是为了我们之后设置滚动动画的时候打好铺垫 添加滚动动画 点击文本元素...向左淡入, 向右淡入,从上淡入,从下淡入效果和上面实现的方式一样, 只需要修改偏移量Offset的值即可. 对于x, 负数:表示向左位移; 正数:表示向右位移....仅当所有父图层的溢出都设置为可见时,粘性才会起作用,这可能会导致移动设备出现问题。具体来说,网页中的溢出元素(如下图所示)可能会导致网站在移动设备上水平滚动,从而导致不需要的结果。...为防止这种情况发生,请确保仔细检查页面中是否有溢出元素,如有必要,将它们包装在父图层中,并将其溢出属性设置为隐藏。

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

    【干货】使用 CSS Scroll Snap 优化滚动,提升用户体验!

    这意味着,滚动必须对齐到滚动容器的开始处。 在下图中,每次用户向右滚动时,浏览器都会将项目捕捉到容器的开头。...如果你使用的是手机或平板电脑,可以向右移动滚动条或使用触摸。应该能感受到每个项目是如何从其容器的开始抓取的。 演示地址:https://codepen.io/shadeed/pe......image.png 使用 Scroll-Snap-Stop 有时,我们可能需要一种方法来防止用户在滚动时意外跳过一些重要的项。如果用户滚动太快,就有可能跳过某些项。...在向元素添加边距时,滚动将根据边距对齐。 参见下图: ? .item-2具有scroll-margin-left: 20px。 结果,滚动容器将在该项目之前对齐到20px。...请注意,当用户再次向右滚动时,.item-3会捕捉到滚动容器的开头,这意味着仅具有边距的元素将受到影响。

    2.5K30

    使用 CSS Scroll Snap 优化滚动,提升用户体验!

    这意味着,滚动必须对齐到滚动容器的开始处。 在下图中,每次用户向右滚动时,浏览器都会将项目捕捉到容器的开头。...如果你使用的是手机或平板电脑,可以向右移动滚动条或使用触摸。应该能感受到每个项目是如何从其容器的开始抓取的。 演示地址:https://codepen.io/shadeed/pe......使用 Scroll-Snap-Stop 有时,我们可能需要一种方法来防止用户在滚动时意外跳过一些重要的项。如果用户滚动太快,就有可能跳过某些项。...在向元素添加边距时,滚动将根据边距对齐。 参见下图: .item-2具有scroll-margin-left: 20px。 结果,滚动容器将在该项目之前对齐到20px。...请注意,当用户再次向右滚动时,.item-3会捕捉到滚动容器的开头,这意味着仅具有边距的元素将受到影响。

    3.4K41

    移动端轮播图效果实现

    -index*w ul.style.transform = 'translateX('+translateX+'px)' } }) }) 当用户在第一张进行向右拖动时...,用户看到的是克隆版的最后一张,为了实现无缝滚动效果,此时我们瞬间跳转到真正的最后一张也就是索引为2的,当执行定时器时,索引变成了3,此时又会跳到第一张,由此实现了无缝滚动。...接下来我们实现手指拖放元素,通过手指控制图片位置,要用到两个移动端的事件 touchstart:获取手指初始坐标 touchmove:移动手指 计算手指滑动距离,并且移动盒子 代码如下...= 'translateX('+translateX+'px)'; flag=true;//移动时状态为正 e.preventDefault();//阻止滚动屏幕的行为 }); //手指离开时...; ul.style.transform = 'translateX('+translateX+'px)'; } moveX=0;//手指离开时清除移动距离防止用户移动离开后在次点击触发

    1.9K10

    JavaScript笔记(21)

    我们先来看看结构: 样式: JS: 先获取元素: 先搞定两个简单的事件,鼠标在预览图上时就显示遮罩层和大图,否则隐藏 这个地方一定要注意是给preview-img这个盒子加事件而不是...这个时候我们要加一些判断条件 最后由于方向是反的,当我们的遮罩层向右移动时,图片应该向左走,所以要在bigX和bigY之前加上负号 元素可视区client系列 client翻译过来就是客户端...现在老师在带我们分析淘宝的源码,里面又有很多新知识: pageshow: 是我们重新加载页面触发的事件 但是我试了一下发现火狐已经没有这个问题了 元素滚动scroll系列属性 scroll翻译过来就是滚动的...,我们使用scroll系列的相关属性可以动态的得到该元素的大小,滚动距离等....banner以上时,slider侧边栏就开始变成固定定位,当我们再往下滑到main部分时,slider里面的返回顶部会显示出来: JS部分: 获取元素 看看效果是怎样的吧: 不过好的方法总是有兼容性问题的

    74510

    前端学习(53)~键盘事件

    鼠标的拖拽事件 拖拽的流程: (1)onmousedown:当鼠标在被拖拽元素上按下时,开始拖拽; (2)onmousemove:当鼠标移动时被拖拽元素跟随鼠标移动; (3)onmouseup:当鼠标松开时...,被拖拽元素固定在当前位置。...鼠标的滚轮事件 onmousewheel:鼠标滚轮滚动的事件,会在滚轮滚动时触发。但是火狐不支持该属性。 DOMMouseScroll:在火狐中需要使用 DOMMouseScroll 来绑定滚动事件。...当onkeydown连续触发时,第一次和第二次之间会间隔稍微长一点,后续的间隔会非常快。这种设计是为了防止误操作的发生。 键盘事件一般都会绑定给一些可以获取到焦点的对象或者是document。.../* * 按左键,div向左移 * 按右键,div向右移 * ... *

    1.3K20

    Android Scroller完全解析,关于Scroller你所需知道的一切

    另外还有一点需要注意,就是两个scroll方法中传入的参数,第一个参数x表示相对于当前位置横向移动的距离,正值向左移动,负值向右移动,单位是像素。...可以看到,当我们点击scrollTo按钮时,两个按钮会一起向右下方滚动,因为我们传入的参数是-60和-100,因此向右下方移动是正确的。...而scrollBy()方法则是让View相对于当前的位置滚动某段距离,那每当我们点击一次scrollBy按钮,View的当前位置都进行了变动,因此不停点击会一直向右下方移动。...另外为了防止用户拖出边界这里还专门做了边界保护,当拖出边界时就调用scrollTo()方法来回到边界位置。...startScroll()方法接收四个参数,第一个参数是滚动开始时X的坐标,第二个参数是滚动开始时Y的坐标,第三个参数是横向滚动的距离,正值表示向左滚动,第四个参数是纵向滚动的距离,正值表示向上滚动。

    1.8K60

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

    ,当我们要设置一个固定在顶部的菜单、导航、元素等时使用 // paddingTop: "100px", // //设置每个section底部的padding,当我们要设置一个固定在底部的菜单...、导航、元素等时使用 // paddingBottom: "100px", // //固定的元素,为jquery选择器;可用于顶部导航等 // fixedElements...,当我们要设置一个固定在顶部的菜单、导航、元素等时使用 // paddingTop: "100px", // //设置每个section底部的padding,当我们要设置一个固定在底部的菜单...、导航、元素等时使用 // paddingBottom: "100px", // //固定的元素,为jquery选择器;可用于顶部导航等 // fixedElements...); // //和moveTo一样,但是没有动画效果 // silentMoveTo(section,slide); // //幻灯片向右滚动 // moveSlideRight();

    13.1K30

    (Demo分享)利用原生JavaScript-ScrollLeft-实现做轮播广告通知

    轮播广告通知整体思路: 1.首先文字的移动利用了JAVA script 中ScrollLeft的知识点; 2.在设置一条一模一样的新闻,利用无缝轮播图滚动的原理让新闻无缝滚动。...实现效果:文字实现无缝跑马灯滚动轮播效果,鼠标划入停止滚动,鼠标移出继续滚动。 代码内有超级详细的注释,如有疑问,请留言,会在第一时间回复! 效果图: ? 全部代码如下: 元素内容向左滚动的尺寸。 // 也就是被元素左侧所遮挡的尺寸,或者说滚动条向右滚动的距离。...// 此属性相当有用,比如可以用来制作水平无缝滚动效果 // 简单了说:元素会从scrollLeft的位置显示该元素的内容。...,每执行一次定时就距离加1,就形成了文字滚动效果 wrap.scrollLeft ++; // 如果是wrap元素的显示的内容与该元素实际的内容的距离。

    1.9K10

    从 antDesign 来窥探移动端“滚动穿透”行为

    通常情况下,当我们对于某个不可滚动元素进行拖拽时往往会意外触发其父元素(背景元素)的滚动。...常见的业务场景比如在 Dialog、Mask 等存在全屏覆盖的内容中,当我们拖动不可滚动的弹出层元素内容时,背后的背景元素会被意外滚动。...比如上方图片中有两个元素,一个为红色边框存在滚动条的父元素,另一个则为蓝色边框黑色背景不存在滚动条的子元素。 当我们拖动不可滚动的子元素时,实际会意外造成父元素会跟随滚动。...将可滚动元素拖动至顶部或者底部时,继续拖动触发最近可滚动祖先元素的滚动。 还有另一种常见场景,我们在某个可滚动元素上进行拖动时,当该元素的滚动条已经到达顶部/底部。...在移动端,我们完全可以使用一种通用的解决方案来解决上述造成“滚动穿透”意外行为: 无论元素是否可以滚动时,每次元素的拖拽事件触发时我们只需要进行判断: 寻找当前触发 touchMove 事件 event.target

    1.1K20

    web前端技术讲解之CSS中position的定位技术

    如果定义多个属性,当left、right、冲突时以left为准,当top、bottom冲突时以top为准,如果一个也不指定则元素扔按普通文档流布局,但他自己不再占据空间,后续元素上移与其重叠。...绝对定位元素定位后相对祖先元素的位置不在变化,若页面内容较多拖动页面滚动时,定位元素会随页面一起滚动。 绝对定位元素重叠覆盖其他元素时可用z-index属性设置他们的叠放次序。 ? 2....(3) Left、right、top、和bottom指定相对原位置移动的偏移量,可以使用带单位数值、相对父元素的百分比%。 Left正值:左边向内—向右移动,负值:左边向外—向左。...right正值:右边向内—向左移动,负值:右边向外—向右。 top正值:上边向内—向下移动,负值:上边向外—向上。 bottom正值:下边向内—向上移动,负值:下边向外—向下。 3....固定定位与绝对定位absolute的区别是定位的元素无论父元素是否定位都会直接在浏览器窗口中定位,不会随滚动条拖动页面而滚动,固定定位用left、right、top、bottom指定浏览器左、右、上、下各边向中心的偏移量作为定位元素外边距位置

    1.1K10

    CSS 技巧一则 -- 不定宽溢出文本适配滚动

    hover 时弹出框提示 一种可行的方案是在 hover 的时候,弹出一个文本框展示全文,最简单的就是在文本标签下添加 title 属性,填充我们需要的内容: <li title="溢出文本...---- 本文将简单介绍在文本长度不确定,容器长度也不确定的情况下,任意长度的文本实现 hover 状态下,从左向右,滚动到文本末端,再滚动回初始位置,如此反复,像是这样: ?...那么很容易得到需要滚动的距离: 需要滚动的距离 S = 溢出的文本元素的宽度 - 父元素的宽度 这样,我们只需要找到一个可以表示并且当前文本宽度是变量值即可。即是 -- transoform。...其实表示的就是向右移动一个元素本身宽度的距离。...这样,不论父容器宽度如何,文本元素宽度如何,都可以实现对溢出文本适配滚动展示。

    2.1K20

    marquee 标签的使用详情

    ,属性的参数值有down、left、right、up共四个单一可选值,分别代表滚动方向向下、向左、向右、向上。...  loop属性  loop属性决定滚动文字的滚动次数,缺省是无限循环。参数值可以是任意的正整数,如果设置参数值为-1或infinite时将无限循环。...当不处于滚动状态时,scrollLeft 对于设置为水平滚动的字幕来说为可读写,scrollTop 对于设置为垂直滚动的字幕来说为可读写。    ...此元素是块元素。    此元素需要关闭标签。  示例    下面的例子使用了 MARQUEE 元素创建了由左向右的滚动字幕,移动速度为每 200 毫秒 10 像素。    ...-- 单击此按钮可在字幕滚动时读取 scrollLeft 和 scrollTop 属性的值。

    2.9K30

    《网页滚动的“隐形指挥官”:overscroll - behavior属性全解析》

    想象一下,当我们滑动页面时,就像是在探索一个虚拟的世界,手指的每一次触动,都连接着信息的传递与获取。然而,传统的滚动行为在某些场景下,却容易引发一系列问题。...比如,当页面中存在多层嵌套的滚动区域时,用户在滚动一个子元素到边界时,往往会不经意间触发父元素的滚动,这种“滚动链”现象不仅打断了用户原本流畅的操作节奏,还可能导致页面出现意想不到的抖动与错乱,破坏了整体的用户体验...当元素设置为overscroll - behavior: contain时,一旦用户滚动到该元素的边界,滚动事件将被限制在这个元素内部,不会传播到其父元素。...同时,对于一些弹窗、模态框等元素,使用contain或none属性可以防止它们在滚动时影响到下层页面的稳定性,确保用户在操作这些元素时能够获得清晰、独立的交互体验。...当我们精确控制滚动行为,避免不必要的滚动链传播和默认行为的触发时,可以减少浏览器在处理滚动事件时的计算量,从而提升网页的性能和响应速度。

    20100
    领券