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

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

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

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

    setInerval实现图片滚动离开页面后又返回页面时图片加速滚动问题解决

    问题: setInerval实现图片滚动,离开页面后又返回页面时图片加速滚动 代码本身实现方案: 在每次页面加载的时候会清除定时器。...问题产生原因: 由于在加载了图片滚动的页面之后,又去到了其他页面,但是定时器没有停止,而页面又没有显示在用户面前,当返回页面的时候,就会把之前定时器中已经移动的图片动画一股脑移动,就会出现如题所述加速滚动的效果...,1s速度跟css 动画速度保持一致 slider(imageRealHeight, 3000, "roll-animation-3") } } } var...webkitvisibilitychange"; } function handleVisibilityChange() { if (document[hidden]) { //页面失去焦点也就是切换页面时清除定时器...clearInterval(scrollTimer) //清除定时器 console.log("失去焦点"); } else { //页面聚焦时开启定时器

    1.9K10

    学会一行CSS即可提升页面滚动性能

    重点来了,既然该属性可以阻止元素成为鼠标事件,那么修改页面该属性值为 none,就能避免在滚动时鼠标频繁触发包括hover在内的任何鼠标事件,从而提升了页面滚动时的性能。...() { document.body.style.pointerEvents = 'none'; // 滚动时禁用鼠标事件 if (timer) { clearTimeout(timer)...顾名思义,该属性是用于设置触摸屏如何操纵元素区域动作,同样的,touch-action 可以禁用浏览器在移动端处理手势的事件,进而提高页面滚动性能,同时它还能解决移动端 点击延迟问题(很多人可能只知道viewport...不过需要注意的是,虽然该属性也有 none 值,但在这里并不适用,因为"滚动"也属于手势的一种,应该使用 manipulation 这个值,意为只允许进行滚动和持续缩放操作,也就相当于禁用了其他页面手势...(touch-action: none 会阻止任何触摸行为,但 touch 事件是正常触发的)// 以下代码效果:在滑动时阻止系统默认事件,且页面可以正常滑动document.documentElement.style.touchAction

    4.2K30

    jQuery遮罩(Mask)及弹窗时禁止页面滚动实现

    jQuery遮罩很容易实现,遮罩弹出后最好是要禁止页面滚动。 下面就写一个简单的遮罩,和禁止页面滚动的实例。...("height",$(document).height());     $("#mask").css("width",$(document).width());     $("#mask").show...(); } //隐藏遮罩层 function hideMask(){     $("#mask").hide(); } 禁止滚动: #禁止浏览器滚动条滚动: $('body').css({       ..."overflow":"hidden" }); #还原滚动:  $('body').css({     "overflow":"auto" }); 保险起见可以把 html 和 body 的高度都设置...{     $('html,body').removeClass('ovfHiden'); //使网页恢复可滚 }) 声明:本文由w3h5原创,转载请注明出处:《jQuery遮罩(Mask)及弹窗时禁止页面滚动实现

    8.1K10

    CSS | 视差滚动 | 笔记

    scroll 背景相对于元素本身固定,而不是随着它的内容滚动(对元素边框是有效的)。 对父元素 css_demo 设置 overflow: scroll, 当元素内容超出页面时滚动。...子元素 word 随着页面滚动显示, 对子元素 bg 设置 background-attachment: fixed, 使其在当前视口固定。...image-20230720145639107css3中的坐标系,rotateX就是绕着x轴旋转,rotateY就是绕着Y轴旋转,rotateZ就是绕着z轴旋转(也就是xy平面的旋转)。...更糟糕的是,当用户第一次使用手机访问网站时,地址栏会显示在页面顶部, 因此用户体验是很糟糕的。...当页面加载时,将高度设置为 window.innerHeight 将正确地将高度设置为窗口的可见部分。 如果地址栏是可见的,那么 window.innerHeight 是全屏的高度。

    5.2K21

    iOS中Mint Picker滑动时页面跟着滚动的解决方法

    主要表现在用手指在弹出层触摸滑动时,页面也跟着滚动,严重影响体验。...解决方法: 1、由于 Picker 组件的滚动是用 touch 事件 + translate 实现的,所以我们可以在 Picker 弹层出现的时候禁止页面的默认滚动机制,Picker 弹层消失时解除禁用页面的默认滚动机制...*---------监听函数--------------*/     handler:function(e){e.preventDefault();}   } }, // 通过监听蒙层的显隐字段来控制页面滚动的禁用事件...newvs){       this.closeTouch();     }else{       this.openTouch();     }   } }, methods:{   /*解决iphone页面层级相互影响滑动的问题...closePicker(){  /* 弹层关闭   */     this.openTouch();   } }, 2、当弹层出现的时候设置给body设置 overflow: hidden ,弹层关闭时设置

    1.9K20

    CSS vw让overflow:auto页面滚动条出现时不跳动

    应该都知道,现代浏览器滚动条默认是overflow:auto类型的,也就是如果尺寸不足一屏,没有滚动条;超出,出现滚动条。于是,问题来了: 信息流页面,如新浪微博,是从上往下push渲染的。...JS交互,本来默认页面高度不足一屏,结果点击了个“加载更多”,内容超过一屏,滚动条出现,页面主体就会左侧跳动。 结构类似几个页面通过头部的水平导航刷新切换,结果有的页面有滚动条,有的没有。...使用CSS把页面尺寸布局骨架搭好,再在里面吐数据。于是,要么没有滚动条,要么滚动条直接出现。不会出现跳动。 ? 然而,然而,后面的策略只适合一些特殊的定制性很强的页面。...阿弥陀佛,骚年,请看我手中的这盏灯…… 二、CSS3计算calc和vw单位巧妙实现滚动条出现页面不跳动 很简单,只要一行代码就搞定了: .wrap-outer { margin-left: calc...您可以狠狠地点击这里(IE10+):页面出现滚动条的时候没有跳动demo demo页面中,标题和下面的妹子都是居中效果。

    5.1K20

    (二十)页面滚动行为控制

    页面滚动行为控制 scrollBehavior(to, from, savedPosition) 说明 浏览器默认前进后退的时候,滚动条会默认保持子啊当前滚动区域,如果要让滚动条每次访问页面的时候都从头开始...,则需要在路由创建的时候进行配置 页面滚回到顶部 scrollBehavior(to, from, savedPosition) const router = createRouter({ history...,正数则是向下偏移,负数表示向上偏移 top: 0 , // 设置平滑滚动,这个属性要浏览器支持,现在浏览器都支持 behavior: 'smooth' }...} }); 延时滚动到顶部 const router = createRouter({ history: createWebHistory(), routes, scrollBehavior...savedPosition) { return new Promis((resolve) => { setTimeOut(() => { top: 200, // 设置增提页面进行偏移

    2.6K20
    领券