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

教你实现一个悬浮可拖动并在滑动页面时会自动收缩的vue侧边组件按钮

: 0, oldScrollTop: 0, //记录上一次滚动结束后的滚动距离 scrollTop: 0, // 记录当前的滚动距离 } }, 复制代码 props接收父级传来的参数...:首先获得页面宽度并减去按钮宽度及距离页面两侧的距离得到按钮的初始宽度位置,再通过页面高度*页面上下的距离比例得到组件的高度位置 created() { this.clientWidth = document.documentElement.clientWidth...; }) }, 复制代码 开始滑动 当组件开始滑动时判断上次滑动距离是否等于监听到的Old值,等于则说明开始滑动,这时我们可以将组件距离侧边的距离减去组件自身的一半宽度+组件默认距离侧边的距离,这样就可以实现在滑动组件时组件收缩到页面内侧的一个效果...{ this.left = this.left + 40 } } 复制代码 结束滑动 结束滑动时判断滑动距离是否等于页面水平滚动的像素数,等于则代表了停止滑动,这时判断一下当前组件在页面左侧还是右侧并调整相关的距离参数...) { //延时执行后当newValue等于window.scrollY,代表滚动结束 //console.log('滚动结束'); if (this.left ===

5.2K40

整理获取 viewport 和 element 尺寸和位置方法

整理获取 viewport 和 element 尺寸和位置方法 ⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅 视口页面或窗口的位置和宽高 获取视口宽高 下面方法是包括滚动条的宽高,不支持 IE8...页面滚动位置 返回整个页面的滚动的位置,pageYOffset/pageXOffset 与 scrollY/scrollX 返回的值一致,前者是后者的别名,建议使用前者,不支持 IE8 window.pageYOffset...) { var x = 0, y = 0; while (e !...如果元素是 document.body,并且是在混杂模式下,那么返回的是视口滚动区域宽度和视口宽度中较大的那个 scrollLeft/scrollTop 这个方法返回元素滚动条的位置 如果元素是根元素...,那么返回 window.scrollY 的值 如果元素是 body,并且在混杂模式下,那么返回的是 window.scrollY 的值 因此可用于处理页面滚动的距离的兼容

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

    渐变的艺术:变量的力量——阿超与ChatGPT 4o的代码探险

    然而,他很快发现顶部的白色有些发灰,中间的渐变生硬到底部,始终拖着尾巴。 阿超: “顶部需要完全纯白,中间渐变要自然,底部也必须纯黑。”...ChatGPT 4o 听出了阿超的期望,决定重新设计逻辑: ChatGPT 4o 的分析: “我们可以通过 CSS 自定义属性(--scroll)来动态调整背景位置,将 JavaScript 的控制逻辑转移到.../* 滚动百分比变量 */ } body { margin: 0; height: 200vh;...background-repeat: repeat; /* 默认,背景在两个方向重复 */ 2. background 属性的缩写 语法顺序: background: [颜色] [图片] [重复模式] [位置.../* 滚动百分比变量 */ } body { margin: 0; height: 200vh; } #scroll-percent {

    8310

    【转】动效案例:纯手工写一个滚动视差效果

    说的简单点就是网页内的元素在滚动屏幕时发生的位置的变化,然而各个不同的元素位置变化的速度不同,导致网页内的元素有层次错落的错觉,这和我们人体的眼球效果很像。...我们通过window的scrollY属性来充当因子变量,控制各图片在平面移动的距离,来回滚动又能恢复原先各自的位置。 Window接口的只读scrollY属性返回文档当前垂直滚动的像素数。...区域为弹性盒子容器,并定义position: relative; 让内部的图片参照其进行位置浮动,改变其正常流的布局方式。...七、编写脚本 JS脚本为本示例的核心部分,这里通过定义变量获取window.scrollY的属性,作为变量因子,更改各图片的移动位置,并能进行恢复各自初始的位置,脚本代码如下: let bg = document.getElementById...= document.getElementById("text"); window.addEventListener('scroll', function () { var value = window.scrollY

    1.3K11

    动效案例:纯手工写一个滚动视差效果

    说的简单点就是网页内的元素在滚动屏幕时发生的位置的变化,然而各个不同的元素位置变化的速度不同,导致网页内的元素有层次错落的错觉,这和我们人体的眼球效果很像。...我们通过window的scrollY属性来充当因子变量,控制各图片在平面移动的距离,来回滚动又能恢复原先各自的位置。 Window接口的只读scrollY属性返回文档当前垂直滚动的像素数。...区域为弹性盒子容器,并定义position: relative; 让内部的图片参照其进行位置浮动,改变其正常流的布局方式。...七、编写脚本 JS脚本为本示例的核心部分,这里通过定义变量获取window.scrollY的属性,作为变量因子,更改各图片的移动位置,并能进行恢复各自初始的位置,脚本代码如下: let bg = document.getElementById...= document.getElementById("text"); window.addEventListener('scroll', function () { var value = window.scrollY

    2.1K30

    Meteor 分页包 alethes:pages 详解

    (瀑布流) infinite: true, // 滚动条加载到什么位置时加载下一组分页数据,这个参数问题比较多,后面再介绍 infiniteTrigger: .8, //...第一个问题就是滚动条滚动到 0.8 的位置后,数据不会自动继续加载。...修正了第一个问题后,随后出现的问题时滚动条并非到 0.8 的位置才加载数据,而是我滚动条只要一动,下一页的数据就自动加载出来了,这样明显不对。...2500 的高度了,2500 * 0.8 = 2000 l = oh * t; } else { return; } // 如果当前可视的页面高度 + 滚动条的位置...div 的滚动条在滚动,而 body 的滚动条一直在 0 的位置,所以无论你看到的 div 的滚动条滚动到了哪里,下一组数据都不会继续加载。

    21520

    动效案例:纯手工写一个滚动视差效果

    说的简单点就是网页内的元素在滚动屏幕时发生的位置的变化,然而各个不同的元素位置变化的速度不同,导致网页内的元素有层次错落的错觉,这和我们人体的眼球效果很像。...2、window属性:scrollY 在这里我们使用JS脚本动态更新相关图片在界面的位置,这是我们制作滚动视差的关键。...我们通过window的scrollY属性来充当因子变量,控制各图片在平面移动的距离,来回滚动又能恢复原先各自的位置。 Window接口的只读scrollY属性返回文档当前垂直滚动的像素数。...七、编写脚本 JS脚本为本示例的核心部分,这里通过定义变量获取window.scrollY的属性,作为变量因子,更改各图片的移动位置,并能进行恢复各自初始的位置,脚本代码如下: let bg = document.getElementById...= document.getElementById("text"); window.addEventListener('scroll', function () { var value = window.scrollY

    1.4K20

    JavaScript 高级程序设计(第 4 版)- BOM

    )窗口,即浏览器窗口本身 parent对象始终指向当前窗口的父窗口 如果当前窗口是最上层窗口,则parent等于top(都邓鼓window) self对象是终极window属性,始终指向window(...self 和 window实际是同一个对象,之所以暴露self,是为了和top、parent保持一致) # 窗口位置与象素比 screenLeft和screenTop属性用于表示窗口相对于屏幕左侧和顶部的位置...度量文档相对于视口滚动距离的属性有两对,返回相等的值:window.pageXoffset/window.scrollX和window.pageYoffset/window.scrollY 可以使用scroll...()、scrollTo()和scrollBy()方法滚动页面。...三个方法都接收表示相对视口距离的x和y坐标,前两个表示要滚到的坐标,最后一个表示滚动的距离 这几个方法都接收一个ScrollToOptions对象,除了提供偏移值,还可以通过behavior属性告诉浏览器是否平滑滚动

    1.2K10

    getBoundingClientRect使用指南

    getBoundingClientRect Element.getBoundingClientRect() 含义: 方法返回元素的大小及其相对于视口的位置。...当计算边界矩形时,会考虑视口区域(或其他可滚动元素)内的滚动操作,也就是说,当滚动位置发生了改变,top和left属性值就会随之立即发生变化(因此,它们的值是相对于视口的,而不是绝对的)。...如果你需要获得相对于整个网页左上角定位的属性值,那么只要给top、left属性值加上当前的滚动位置(通过window.scrollX和window.scrollY),这样就可以获取与当前的滚动位置无关的值...// 获取dom元素相对于网页左上角定位的距离 function offset(el) { var top = 0; var left = 0; // 获取元素的位置还有getBoundingClientRect...if (top 0) { return true; } else if (top >= se || bottom 0) {

    1.5K40

    React 滚动监听 Scroll Listener

    滚动位置不一致在某些情况下,用户可能在多个窗口或标签页之间切换,导致滚动位置不一致的问题。问题:用户切换标签页后,滚动位置丢失或不一致。解决方案:保存滚动位置并在组件重新挂载时恢复。...useState } from 'react';function ScrollComponent() { const [scrollPosition, setScrollPosition] = useState(0)...; useEffect(() => { const handleScroll = () => { setScrollPosition(window.scrollY); };...window.removeEventListener('scroll', handleScroll); }; }, [setScrollPosition]); useEffect(() => { window.scrollTo(0,...为了确保滚动监听功能的稳定性和性能,我们需要关注冗余调用、组件卸载时的清理、滚动位置的一致性以及跨浏览器兼容性等问题。同时,合理使用防抖和节流技术可以在不影响用户体验的前提下提升性能。

    16500

    再谈BOM和DOM(6):dom对象及event对象位值计算—如offsetXTop,clentX

    event对象位置信息获取 先总结下区别: event.clientX、event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。...标准事件和IE事件都定义了这2个属性 dom元素位置信息获取 client指元素本身的可视内容。...    obj.clientHeight = (height + padding)  //元素的高     clientTop、clientLeft 这两个返回的是元素周围边框的厚度,一般它的值就是0。...js中getBoundingClientRect 当滚动位置发生了改变,top和left属性值就会随之立即发生变化(因此,它们的值是相对于视口的,而不是绝对的)。...如果你需要获得相对于整个网页左上角定位的属性值,那么只要给top、left属性值加上当前的滚动位置(通过window.scrollX和window.scrollY),这样就可以获取与当前的滚动位置无关的值

    1.5K20

    Interection Observer如何观察变化

    通过这种方式,你可以跟踪观看者遇到特定目标所花费的时间。即使稍后将目标再次滚动到视图中,此属性也会提供新的时间。这可用于跟踪目标进入和离开根元素的时间。...把页面放在静态服务器上,然后我用Puppeteer加载了HTML文件,启动了跟踪,让页面以预设的增量向下滚动到底部,一旦到达底部,就停止了跟踪,最后保存跟踪的结果。...阈值是一个0、0.5和1的数组。在根元素中滚动时,将出现目标,并且其位置将在按钮上方的输出中报告。...如果比率恰好等于1,则它在根元素“内部”。除了使用left或right属性检查水平位置外,其他检查方法相同。 这是高效使用Intersection Observer的一部分。...该解决方案通过识别粘性元素始终位于根元素顶部的“粘性”位置来利用这一优势。随着滚动的继续,粘性元素最终移出视野,并且相交停止。因此,我们根据输入对象的isIntersecting属性添加和删除类。

    2.6K20

    Axure函数大全

    scrollX 用途:获取元件对象的水平滚动距离(当前仅限动态面板)。 scrollY 用途:获取元件对象的垂直滚动距离(当前仅限动态面板)。 text 用途:获取元件对象的文本文字。...Window.scrollX 用途:浏览器中页面水平滚动的距离。 Window.scrollY 用途::浏览器中页面垂直滚动的距离。 页面函数 PageName 用途:获取当前页面的名称。...参数:x不能为负数且y为小数,或者x为0且y小于等于0。 Math.random() 用途:随机数函数,返回一个0~1之间的随机数。...charAt(index) 用途:获取当前文本对象中指定位置的字符; 参数:index为大于等于0的整数。...charCodeAt(index) 用途:获取当前文本对象中指定位置字符的Unicode编码(中文编码段19968 ~ 40622);字符起始位置从0开始。 参数:index为大于等于0的整数。

    2.3K10
    领券