当前位置: 首页 > wzjs >正文

提示网站建设页面百度公司地址

提示网站建设页面,百度公司地址,北京网站建设哪家便宜,日韩网站模板源码问题根源分析 原生组件层级&#xff1a;uniapp中的原生地图组件&#xff08;如<map>&#xff09;默认处于最高层级&#xff0c;普通视图元素无法覆盖事件冒泡机制&#xff1a;触摸事件会穿透到下层组件滚动冲突&#xff1a;当内容滚动到底部/顶部时继续滑动会触发父容器…

问题根源分析

  1. 原生组件层级:uniapp中的原生地图组件(如<map>)默认处于最高层级,普通视图元素无法覆盖
  2. 事件冒泡机制:触摸事件会穿透到下层组件
  3. 滚动冲突:当内容滚动到底部/顶部时继续滑动会触发父容器滚动

完整解决方案

步骤1:结构优化
<template><!-- 地图容器使用固定布局 --><view class="map-container"><map id="myMap" style="width:100%;height:100vh" :latitude="latitude" :longitude="longitude"></map></view><!-- 覆盖层使用 cover-view --><cover-view class="mapViewBox" :style="viewStyle" v-if="viewPlan"@touchmove.prevent.stop="noop"catchtouchmove><!-- 关闭按钮使用原生组件 --><cover-image class="close-btn" src="/static/icon/cancel.png" @click="viewPlan = false"/><!-- 滚动区域隔离事件 --><scroll-view scroll-y class="content-scroll"@touchstart.stop="noop"@touchmove.stop="noop"><!-- 内容区域 --></scroll-view><!-- 底部按钮 --><cover-view class="navigation"><button @click="mapNavigation">到这里去</button></cover-view></cover-view>
</template>
步骤2:样式控制
/* 地图容器 */
.map-container {position: fixed;width: 100%;height: 100vh;z-index: 1; /* 确保低于覆盖层 */
}/* 覆盖层 */
.mapViewBox {position: fixed;bottom: 0;left: 0;right: 0;z-index: 9999; /* 必须高于地图层级 */background: #fff;max-height: 60vh;touch-action: none; /* 禁用默认滚动 */box-shadow: 0 -4rpx 20rpx rgba(0,0,0,0.1);.content-scroll {height: calc(60vh - 120rpx); /* 动态高度计算 */overflow: hidden;}
}/* 关闭按钮定位 */
.close-btn {position: absolute;top: -100rpx;right: 30rpx;width: 30rpx;height: 30rpx;z-index: 10000;
}
步骤3:事件处理
<script setup>
// 空操作函数阻止事件冒泡
const noop = () => {};// 动态计算样式
const viewStyle = ref({});
onMounted(() => {const systemInfo = uni.getSystemInfoSync();viewStyle.value = {width: '100%',maxHeight: `${systemInfo.windowHeight * 0.6}px`};
});
</script>

核心原理详解

  1. 层级控制
    z-index:9999 确保覆盖层在地图组件之上
    position:fixed 脱离文档流避免布局错乱
    • 使用 cover-viewcover-image 原生组件覆盖地图

  2. 事件拦截
    @touchmove.prevent.stop:阻止默认滚动行为 + 停止事件冒泡
    catchtouchmove:小程序专用属性,捕获并终止事件传递
    touch-action:none:CSS属性禁用浏览器默认滚动处理

  3. 滚动隔离
    scroll-view 设置固定高度(calc(60vh - 120rpx)
    • 底部按钮使用绝对定位,避免占据滚动空间
    overflow:hidden 防止内容溢出导致穿透


扩展优化建议

  1. 性能优化
// 在 onPageScroll 生命周期中阻止滚动穿透
onPageScroll(e) {if(this.viewPlan) return false;
}
  1. 视觉优化
/* 添加渐变遮罩提示 */
.mapViewBox::after {content: '';position: absolute;bottom: 120rpx;left: 0;right: 0;height: 60rpx;background: linear-gradient(to top, rgba(255,255,255,1), rgba(255,255,255,0));
}
  1. 平台差异处理
// 条件编译处理不同平台
// #ifdef MP-WEIXIN
viewStyle.value.maxHeight = '60vh';
// #endif

最终效果验证

  1. 覆盖层滑动时地图保持静止
  2. 滚动到底部/顶部时不会触发地图移动
  3. 点击操作正常响应无穿透
  4. 各平台(H5、小程序、APP)表现一致

通过以上方案,可有效解决uniapp地图组件与覆盖层的滚动冲突问题。如仍有异常,请检查是否使用了非原生组件实现地图功能。

http://www.dtcms.com/wzjs/208953.html

相关文章:

  • 基层人武部正规化建设seo百度关键词优化软件
  • 大型网站模板飓风seo刷排名软件
  • 商业网站的后缀抖音搜索关键词推广
  • 提供网站建设教学视频成都网站seo公司
  • 网站做产品的审核工作内容快手seo软件下载
  • 上海市建设工程安全协会网站深圳推广公司推荐
  • 网站备案就是合法的易搜搜索引擎
  • 做网站预付款 怎么做账游戏代理是怎么赚钱的如何代理游戏
  • 设计个人网站的步骤手机网站模板
  • b2b网站20180409正规网站优化公司
  • 免费咨询的律师靠谱吗seo优化推广教程
  • 石家庄建立网站的公司手机优化大师下载安装
  • 南京网络程序开发公司滁州网站seo
  • 教育学校网站源码 php3d建模培训班一般多少钱
  • 内容社交电商平台win优化大师有免费版吗
  • 企业年金怎么查询seo综合查询中的具体内容有哪些
  • 那个装修公司的网站做的好树枝seo
  • 磁力猫seo软件定制
  • 网站cms是什么seo平台有哪些
  • 专门做广东11选5的网站电子商务网站建设规划方案
  • 创建网站的公司宁波网站优化公司价格
  • 优秀网文网站搜索排名优化怎么做
  • 新建的wordpress没有注册厦门seo推广公司
  • 广州公司注册无地址快速排名优化推广排名
  • 厦门做网站多seo网站设计
  • 深圳网站制作hi0755建站推广网站
  • 学做电商的网站有哪些模板之家
  • 在哪个网站做失业分解网上推
  • 书生商友网站建设东莞做好网络推广
  • 中小学网站建设规范电脑培训速成班多少钱