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

pageYOffset IE8中的滚动和动画

首先,我们需要了解pageYOffset在IE8中的实现。pageYOffset是一个与页面滚动相关的属性,它返回一个包含当前滚动条宽度、高度和位置的数组。在IE8中,pageYOffset属性存在一些限制,例如它不能包含垂直滚动条的信息。因此,在处理IE8中的滚动和动画时,我们需要采用一些其他方法来获取滚动位置。

以下是处理IE8中滚动和动画的步骤:

  1. 获取滚动位置:使用window.scrollY获取垂直滚动位置,使用window.scrollX获取水平滚动位置。
  2. 处理动画:使用window.performance.now()获取当前时间戳,使用Math.floor()将时间戳舍入到最接近的整数,然后使用requestAnimationFrame()将动画帧提交给浏览器。

以下是示例代码:

代码语言:javascript
复制
// 获取滚动位置
var scrollTop = window.scrollY;
var scrollLeft = window.scrollX;

// 处理动画
var now = window.performance.now();
var delta = now - lastTime;
var animationFrame = Math.floor(delta / 1000);
lastTime = now;

if (animationFrame % 1 === 0) {
  // 提交动画帧
  requestAnimationFrame(animate);
}

function animate() {
  // 动画逻辑
}

在处理IE8中的滚动和动画时,需要注意IE8中requestAnimationFrame()的兼容性。可以使用MSAnimationCacheMSAnimation对象来替代requestAnimationFrame()

总之,在处理IE8中的滚动和动画时,需要采用一些其他方法来获取滚动位置和动画帧,并采用适当的兼容性处理方式来确保代码在IE8中正常运行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

整理获取 viewport element 尺寸位置方法 ⭐️ 更多前端技术知识点,搜索订阅号 JS 菌 订阅 视口页面或窗口位置宽高 获取视口宽高 下面方法是包括滚动宽高,不支持 IE8...页面滚动位置 返回整个页面的滚动位置,pageYOffset/pageXOffset 与 scrollY/scrollX 返回值一致,前者是后者别名,建议使用前者,不支持 IE8 window.pageYOffset.../border-top-width 值,就是边框宽度 offsetWidth/offsetHeight 同样可以使用 offsetWidth/offsetHeight 来获取元素包括滚动边框尺寸...document.documentElement.scrollHeight || document.body.scrollHeight 如果元素是 document.documentElement,返回是视口滚动区域宽度视口宽度较大那个...如果元素是 document.body,并且是在混杂模式下,那么返回是视口滚动区域宽度视口宽度较大那个 scrollLeft/scrollTop 这个方法返回元素滚动位置 如果元素是根元素

1.3K20

JavaScript案例:带动画返回顶部

案例分析: 带有动画返回顶部 继续使用我们封装动画 只需要把所有的left相关值改为跟页面垂直滚动距离相关就可以 页面滚动了多少,可以通过 window.pageYOffset得到 最后是页面滚动...,使用window.scroll(x,y) JavaScript——动画函数封装 核心原理:通过定时器setInterval()不断移动盒子位置。...将以下代码添加到淘宝侧边栏案例: JavaScript案例:仿淘宝侧边栏 案例分析原先侧边栏是绝对定位当页面滚动到一定位置,侧边栏改为固定定位页面继续滚动,会让返回顶部显示出来。...//当我们点击了返回顶部模块,就让窗口滚动到页面最上方。...function () { // window.scroll(0, 0); animate(window, 0); }); //动画函数

75910

返回顶部案例

带有动画返回顶部 此时可以继续使用我们封装动画函数 只需要把所有的left 相关值改为 跟 页面垂直滚动距离相关就可以了 页面滚动了多少,可以通过 window.pageYOffset...(11);                // window.pageYOffset 页面被卷去头部                // console.log(window.pageYOffset...当我们点击了返回顶部模块,就让窗口滚动页面的最上方        goBack.addEventListener('click', function() {            // 里面的x...(window, 0);       }); ​ 修改后动画函数: // 把所有的left 相关值改为 跟 页面垂直滚动距离相关        function animate(obj, target...Math.ceil(step) : Math.floor(step);                // 移动到指定位置就停止动画                if (window.pageYOffset

1.4K30

仿淘宝返回顶部案例

.案例:返回顶部 带有动画返回顶部 此时可以继续使用我们封装动画函数 只需要把所有的left 相关值改为 跟 页面垂直滚动距离相关就可以了 页面滚动了多少,可以通过 window.pageYOffset...console.log(window.pageYOffset); // 当我们页面被卷去头部大于等于171 此时 侧边栏就要改为固定定位 if (window.pageYOffset...当我们点击返回顶部模块,就让窗口滚动到页面的最上方 goBack.addEventListener("click", function () { // 里面的x y 不跟单位...}); // 动画函数 function animate(obj, target, callback) { // 先清除以前定时器,只保留当前一个定时器执行...// 把我们步长改为整数 不要出现小数 // var sept = Math.ceil((target - obj.offsetLeft) / 10); 因为有前进后退

1.1K20

Web浏览器滚动方案一览| rAF等

其中,请求动画帧(requestAnimationFrame,简称rAF)是一种常用技术。rAF通过优化动画效果渲染,可以避免卡顿过度绘制问题。...此外,还有其他滚动方案如CSS动画滚动事件监听等等,开发人员可以根据具体需求选择合适方案。通过合理选择应用这些滚动方案,我们可以提供更加流畅优化用户体验。...为了兼容所有主流浏览器,一个更好方式是直接使用window对象pageXOffsetpageYOffset属性。...总体来说,获取滚动状态是前端开发中常见需求之一。我们应该选择最简单高效且兼容所有主流浏览器方式来实现它,那就是使用window.pageXOffsetwindow.pageYOffset属性。...Tips:我们也可以从 window scrollX scrollY 属性获取滚动信息由于历史原因,存在了这两种属性,但它们是一样:window.pageXOffset 是 window.scrollX

7510

DOM基本操作与结构树

2.getElementsByName方法定义在HTMLDocument.prototype上, 即非htmldocument不能使用(xml document,Element) 3.getElementsByTagName...方法定义在Document.prototype Element.prototype上 4.HTMLDocument.prototype定义了一些常用属性,body,head, 分别指代HTML文档...注意 :setInterval(“func()”,1000); 复制代码 查看滚动滚动位置 window.pageXOffset/pageYOffset IE8IE8以下不兼容 document.body.../ documentElement.scrollLeft/scrollTop 兼容性比较混乱,用时取两个值相加,因为不可能存在两个同时有值 封装兼容性方法,求滚动滚动离getScrollOffset(...) 复制代码 查看视口尺寸 window.innerWidth/innerHeight IE8IE8以下不兼容 document.documentElement.clientWidth/clientHeight

45720

前端day15-JS(WebApi)学习笔记(三大家族、事件对象、getComputedStyle)

类型) scrollWidthscrollHeight:元素内容真实宽高 scrollLeftscrollTop:元素在滚动时超出内容区域部分 onscroll:元素滚动条事件,只要滚动就会触发...3.png 获取网页滚动距离 1.如何获取页面的HTML元素body元素 HTML:document.documentElement; body: document.body; 2.获取整个页面的滚动事件...:window.onscroll 没有兼容性 3.获取页面的scrollTopscrollLeft:存在浏览器兼容性 谷歌/火狐 : window.pageXOffset (左) window. pageYOffset..., 例如你是在哪个位置点击,你在点击时候是直接鼠标左键点击,还是鼠标左右键一起点击(骚操作)等等 浏览器把这些所有的信息放到一个变量存储,这个变量数据类型是对象,所以称之为事件对象 2.如何获取事件对象...x值y值 e.clientY e.clientX 3.页面的左上角(哪怕页面滚走了,还是页面左上角),距离触发事件那一点x值y值 e.pageX e.pageY 浏览器兼容问题:IE8及之前不支持

63900

DOM、BOM一些兼容性问题

汇集了许多关于DOMBOM兼容性问题,主要是关于 IE 浏览器,考虑到浏览器迭代,这里主要列出了 IE8 以及之后浏览器版本。...DOM 选择器差异 getElementById getElementsByName 在低于 IE8 版本(不包括 IE8浏览器,这两个选择器匹配元素 ID/name 值是不区分大小写...2、BOM window.pageXoffset window.pageYoffset 这两个属性分别返回文档在水平/垂直方向已滚动像素值。...在这里只实现以下 width height(x y 对象 left、top 是一样)。...除了 Firefox 之外,都是有这么一个属性来表示:wheelDelta,它值通常是 120 或 -120,在 Chrome 却是 150 -150。向上滚动是正值,向下滚动是负值。

1.5K20

常见网页特效案例

案例:返回顶部 带有动画返回顶部 此时可以继续使用我们封装动画函数 只需要把所有的left 相关值改为 跟 页面垂直滚动距离相关就可以了 页面滚动了多少,可以通过 window.pageYOffset...(11); // window.pageYOffset 页面被卷去头部 // console.log(window.pageYOffset...当我们页面滚动到main盒子,就显示 goback模块 if (window.pageYOffset >= mainTop) {...当我们点击了返回顶部模块,就让窗口滚动页面的最上方 goBack.addEventListener('click', function() { // 里面的x...案例:筋头云案例 利用动画函数做动画效果 原先筋斗云起始位置是0 鼠标经过某个小li,把当前小lioffsetLeft 位置做为目标值即可 鼠标离开某个小li,就把目标值设为 0

2.2K40

Vue组件设计-滚动置顶

在前端开发滚动置顶是一个比较常见交互设计,特别是在一些大型网站首页,当内容篇幅较多时,在页面的底部或是侧边都会放置一个滚动置顶图标,方便用户快速回到顶部。 1. 滚动交互注意事项 1....滚动过程要做缓冲动画处理,即滚动要速度要递减,才不能显那么突兀; 2. 组件设计考虑因素 1. 组件要可以传参控制滚动置顶位置; 2....组件要可以传参控制滚动置顶图标在什么时候显示消失; 3. 组件滚动置顶图标最好支持传参自定义样式; 4. 组件滚动置顶图标在显示消失时最好支持传参自定义动画; 3....background: "#e7eaf1", }; }, }, // 定义滚动动画...interval: null, // 正在滚动 isMoving: false, }; },

56110

前端成神之路-WebAPIs05

案例分析: 点击弹出层, 模态框遮挡层就会显示出来 display:block; 点击关闭按钮,模态框遮挡层就会隐藏起来 display:none; 在页面拖拽原理:鼠标按下并且移动, 之后松开鼠标...触发事件是鼠标按下mousedown,鼠标移动mousemove 鼠标松开 mouseup 拖拽过程: 鼠标移动过程,获得最新值赋值给模态框lefttop值,这样模态框可以跟着鼠标走了 鼠标按下触发事件源是最上面一行...,把鼠标在页面坐标,减去 鼠标在盒子内坐标就是模态框lefttop值 document.addEventListener('mousemove', move)...1.a标签超链接 2.F5或者刷新按钮(强制刷新) 3.前进后退按钮 但是 火狐,有个特点,有个“往返缓存”,这个缓存不仅保存着页面数据,还保存了DOMJavaScript状态;实际上是将整个页面都保存在了内存里...动画函数给不同元素记录不同定时器 如果多个元素都使用这个动画函数,每次都要var 声明定时器。我们可以给不同元素使用不同定时器(自己专门用自己定时器)。

1.5K10

「JavaScript 」动画基础 - 02

动画函数封装 1.1.1 缓动效果原理 缓动动画就是让元素运动速度有所变化,最常见是让速度慢慢停下来。...案例:返回顶部 带有动画返回顶部 此时可以继续使用我们封装动画函数 只需要把所有的left 相关值改为 跟 页面垂直滚动距离相关就可以了 页面滚动了多少,可以通过 window.pageYOffset...页面滚动事件 scroll document.addEventListener('scroll', function() { // console.log(11); // window.pageYOffset...当我们页面滚动到main盒子,就显示 goback模块 if (window.pageYOffset >= mainTop) { goBack.style.display = '...当我们点击了返回顶部模块,就让窗口滚动页面的最上方 goBack.addEventListener('click', function() { // 里面的xy 不跟单位 直接写数字即可

32120

详细设计一个文章页目录插件

首先需要根据文章内容二级三级标题生成目录; 然后,页面从上到下滚动过程,需要在右侧目录里高亮当前标题,而高亮原则是当前标题所在位置到浏览器可视区域顶部距离需要小于或等于一个固定值,如上图所示...给 window 加上滚动事件,用于监听当滚动时候去做一些操作,这里操作就是设置高亮滚动目录。...,即位线以下,此时目录滚动距离将是滚动后高亮子目录底部位置到位线高度差,如上图 ②; 滚动高亮目录处于位线以下且最后一个子目录需要贴着滚动区域底部,此时目录滚动距离将是滚动列表底部到滚动区域底部高度差...用 JS 实现动画效果,一定离不开定时器,诸如 setTimeout、setInterval 之类,但是这次我不打算用他们,而是用 HTML5 增加 requestAnimationFrame,这是一个专门为浏览器实现动画而提供...好了,对于 requestAnimationFrame 介绍就到这里,下面我们直接来说下动画实现滚动核心原理: 每次滚动距离 = ( 滚动距离 / 动画持续时间 ) * 每次动画执行时间距离第一次执行时间差值

2.3K20

「JavaScript 」动画基础 - 01

style style 只能得到行内样式表样式值 style.width 获得是带有单位字符串 style.width 获得不包含paddingborder 值 style.width 是可读写属性...首先得到鼠标在页面坐标(e.pageX, e.pageY) 其次得到盒子在页面距离 ( box.offsetLeft, box.offsetTop) 用鼠标距离页面的坐标减去盒子在页面距离,...案例分析: 点击弹出层, 模态框遮挡层就会显示出来 display:block; 点击关闭按钮,模态框遮挡层就会隐藏起来 display:none; 在页面拖拽原理:鼠标按下并且移动, 之后松开鼠标...触发事件是鼠标按下mousedown,鼠标移动mousemove 鼠标松开 mouseup 拖拽过程: 鼠标移动过程,获得最新值赋值给模态框lefttop值,这样模态框可以跟着鼠标走了 鼠标按下触发事件源是最上面一行...动画函数给不同元素记录不同定时器 如果多个元素都使用这个动画函数,每次都要var 声明定时器。我们可以给不同元素使用不同定时器(自己专门用自己定时器)。

48410

前端成神之路-WebAPIs06

案例:返回顶部 带有动画返回顶部 此时可以继续使用我们封装动画函数 只需要把所有的left 相关值改为 跟 页面垂直滚动距离相关就可以了 页面滚动了多少,可以通过 window.pageYOffset...当我们页面滚动到main盒子,就显示 goback模块 if (window.pageYOffset >= mainTop) {...当我们点击了返回顶部模块,就让窗口滚动页面的最上方 goBack.addEventListener('click', function() { // 里面的x...我们可以使用 targetTouches[0] 里面的pageX pageY 移动端拖动原理: 手指移动,计算出手指移动距离。...然后用盒子原来位置 + 手指移动距离 手指移动距离: 手指滑动位置 减去 手指刚开始触摸位置 拖动元素三步曲: (1) 触摸元素 touchstart: 获取手指初始坐标,同时获得盒子原来位置

1.3K40

记几处原生JS开发 原

最近才正式接手工作,遇到很多奇葩领导,总有很多奇葩想法理念。比如不让用jquery,不过要求兼容ie11chrome ff,就行。放弃jquery开始感觉很难,写了两天,也还行。...高亮后,IE11非常的卡,无法滚动,按F12查看性能,要2秒多去渲染一屏,这JS无关了。我以为是元素过多,IE性能太差原因。后来偶然把prism.css文件去掉,结果瞬间显示出来。...2、IE11,在主界面,获取了iframe初始contentWindow后,  如果再往里写入一个新页面,那么这个已经获取window就无效了。...3、获取窗体滚动位置,IE11不支持window.scrollY,需要去其它属性找。...("frm")   直接用 frm,得到完全不同东西。

2.1K20

Kubernetes滚动更新(Rolling Update)滚动回滚(Rollback)过程策略,以及相关方法配置

图片滚动更新(Rolling Update)滚动回滚(Rollback)滚动更新(Rolling Update)是Kubernetes中一种用于更新应用程序版本策略,它可以在不中断服务情况下逐步替换旧版本...下面是滚动更新和滚动回滚过程策略:滚动更新过程:创建一个新版本Pod副本,并将其加入到Service或Ingress后端。...可以通过控制Pod创建速率、健康检查时间间隔超时时间等参数来实现平滑替换。容忍度:可以设置滚动更新期间允许故障容忍度,即在滚动更新过程,最多容忍多少个副本不可用。...重复步骤2步骤3,直到所有新版本Pod都被替换为旧版本。滚动回滚策略:回滚速度:可以设置回滚速度,即每次回滚Pod数量。...方法配置:滚动更新和滚动回滚可以通过Deployment资源来进行管理配置。

88861
领券