小程序开发踩坑:页面窗口定位(相对于浏览器定位)

在小程序开发中,使用position: fixed创建遮罩层或固定header时,发现绑定的事件无法触发。原因是fixed定位元素的z-index默认为0,脱离了文档流。解决方法是设置z-index至少为1,确保元素对用户可见并能响应事件。

开发中我们要做一些类似遮罩层或者页面header固定而页面内容滚动的效果时,往往会使用到:position: fiexd;属性,但是往往会出现绑定在定位元素上的事件无法触发,原因出现在哪里?

经过摸索,终于找到答案:元素定位之后, z-index的值默认还是0,又因为定位而导致元素脱离了原来的文档流(page页面层),所以,定位元素相对于用户来说,虽然看得见,但是就像已经“不存在”一样,所以必须设置值:z-index至少大于等于1,将定位元素暴露给用户,这样才能触发绑定在元素之上的事件。

<view class="pageHead">
    <view class="hedTop">
      <view class="headTab">
        <view class="tablab">违章条数</view>
        <view class="tabbody">6</view>
      </view>
      <view class="headTab">
        <view class="tablab">罚款金额</view>
        <view class="tabbody">1200</view>
      </view>
      <view class="headTab">
        <view class="tablab">违章扣分</view>
        <view class="tabbody">12</view>
      </view>
    </view>
    <view class="headBot">
      <view class="hedBtnTab {{currentTab==0 ? 'activeNav':''}}" data-current="0" bindtap="swichNav">全部</view>
      <view class="hedBtnTab {{currentTab==1 ? 'activeNav':''}}" data-current="1" bindtap="swichNav">可办理</view>
      <view class="hedBtnTab {{currentTab==2 ? 'activeNav':''}}" data-current="2" bindtap="swichNav">扣车主分</view>
    </view>

/*--页面fixed定位层--*/
.pageHead{
   position: fixed;
   top: 0;
   width:100%;
   background-color:#fff;
	 z-index: 10;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值