小程序开发中如何避免页面窗口定位(相对于浏览器)的常见问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计618个文字,预计阅读时间需要3分钟。
在开发中,我们经常需要实现一种效果:固定页面的头部或header,而页面内容可滚动。此时,通常会使用以下CSS属性:
cssposition: fixed;
然而,这种做法有时会导致问题,例如在固定定位的元素上绑定的事件无法触发。原因可能出现在:
- 事件绑定在固定元素上,但事件冒泡或捕获被阻止,导致事件无法传递到文档。- 固定元素遮挡了其他元素,导致事件无法触发。
开发中我们要做一些类似遮罩层或者页面header固定而页面内容滚动的效果时,往往会使用到:position: fiexd;属性,但是往往会出现绑定在定位元素上的事件无法触发,原因出现在哪里?
经过摸索,终于找到答案:元素定位之后, z-index的值默认还是0,又因为定位而导致元素脱离了原来的文档流(page页面层),所以,定位元素相对于用户来说,虽然看得见,但是就像已经“不存在”一样,所以必须设置值:z-index至少大于等于1,将定位元素暴露给用户,这样才能触发绑定在元素之上的事件。
本文共计618个文字,预计阅读时间需要3分钟。
在开发中,我们经常需要实现一种效果:固定页面的头部或header,而页面内容可滚动。此时,通常会使用以下CSS属性:
cssposition: fixed;
然而,这种做法有时会导致问题,例如在固定定位的元素上绑定的事件无法触发。原因可能出现在:
- 事件绑定在固定元素上,但事件冒泡或捕获被阻止,导致事件无法传递到文档。- 固定元素遮挡了其他元素,导致事件无法触发。
开发中我们要做一些类似遮罩层或者页面header固定而页面内容滚动的效果时,往往会使用到:position: fiexd;属性,但是往往会出现绑定在定位元素上的事件无法触发,原因出现在哪里?
经过摸索,终于找到答案:元素定位之后, z-index的值默认还是0,又因为定位而导致元素脱离了原来的文档流(page页面层),所以,定位元素相对于用户来说,虽然看得见,但是就像已经“不存在”一样,所以必须设置值:z-index至少大于等于1,将定位元素暴露给用户,这样才能触发绑定在元素之上的事件。

