windows监听滚动事件,滚动满足fixed条件时,元素一直抖动是什么原因?
window.addEventListener('scroll', this.handleTabFix, true)handleTabFix () { let timeOut = null clearTimeout(timeOut) timeOut = setTimeout(() => { let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop let offsetTop = document.querySelector('#testNavBar') && document.querySelector('#testNavBar').offsetTop + 60 scrollTop > offsetTop ? this.isFixTab = true : this.isFixTab = false // isFixTab为true时,设置元素为fixed }, 1000)}
猜测是你设置某个元素 fixed
之后,页面高度就不够了;然后它就又被解除 fixed
,然后页面高度又超了;于是反复。
解决方案,有两个:
position: sticky
fixed
之后留着壳撑页面let timeOut = null;window.addEventListener('scroll', () => { if (timeOut) { cancelAnimationFrame(timeOut); } timeOut = requestAnimationFrame(handleTabFix);}, true);function handleTabFix() { let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; let offsetTop = document.querySelector('#testNavBar') && document.querySelector('#testNavBar').offsetTop + 60; if (scrollTop > offsetTop) { if (!document.querySelector('.placeholder')) { let placeholder = document.createElement('div'); placeholder.style.height = '60px'; placeholder.className = 'placeholder'; document.querySelector('#testNavBar').insertAdjacentElement('beforebegin', placeholder);}this.isFixTab = true;} else {if (document.querySelector('.placeholder')) {document.querySelector('.placeholder').remove();}this.isFixTab = false;}}
本文向大家介绍jQuery插件jRumble实现网页元素抖动,包括了jQuery插件jRumble实现网页元素抖动的使用技巧和注意事项,需要的朋友参考一下 jRumble,它能让网页上的任意元素抖动起来,在你的网站中使用这个效果会有很大的机率吸引用户的注意力。此插件的效果可以用在链接上,或者div上,你可以设置抖动的范围、XY坐标、抖动幅度等。可设置为当鼠标移动上去抖动或者默认一直抖动,插件可定制
本文向大家介绍JavaScript动态修改网页元素内容的方法,包括了JavaScript动态修改网页元素内容的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript动态修改网页元素内容的方法。分享给大家供大家参考。具体分析如下: 下面的JS代码当用户点击提交按钮后,通过元素的textContent或者innerHTML动态指定元素的内容 希望本文所述对大家的javascr
我有一个jquery函数,它允许一个元素可以拖动和调整大小,并且工作得很好。我想给它添加的是设置一个元素可以拖动和调整大小的位置。更具体地说,在我的代码中,我想让我的元素可以在两行(v1和vh)的空格之间拖动。有没有办法做到这一点?感谢任何帮助。提前道谢。 null null
本文向大家介绍js style动态设置table高度,包括了js style动态设置table高度的使用技巧和注意事项,需要的朋友参考一下 直接在table标签中设置下不就行了吗?这是静态的,如果要动态设置你会吗?
Framework7 可以创建动态页面并直接加载,不需要额外的Ajax请求。 只有通过 路由器 API 才可以实现。 加载页面的结构、禁用滑动返回上一页和返回上一页等,所有这些需要考虑的事情都和 Ajax Pages 是一样的。 我们只需要使用视图的 .router.loadContent 方法,并且传入我们新页面的HTML代码即可。 // Init app var myApp = new Fra
本文向大家介绍JS动态创建DOM元素的方法,包括了JS动态创建DOM元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS动态创建DOM元素的方法。分享给大家供大家参考。具体如下: 近日,因工作需要,需要通过点击某个元素后, 动态创建一个DOM元素并显示,因此写了一些相关的JS函数,在此记录,以作备忘: 使用示例: 希望本文所述对大家的javascript程序设计有所帮助。