位置: IT常识 - 正文

微信小程序解决view点击事件穿透地图map触发markertap(微信小程序解决跨域问题)

编辑:rootadmin
微信小程序解决view点击事件穿透地图map触发markertap

推荐整理分享微信小程序解决view点击事件穿透地图map触发markertap(微信小程序解决跨域问题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序解决全局数据共享的方案是?,微信小程序解决原生组件在最高层问题,微信小程序解决异步问题,微信小程序解决http请求,微信小程序解决全局数据共享的方案是?,微信小程序解决原生组件在最高层问题,微信小程序解决全局数据共享的方案是?,微信小程序解决跨域问题,内容如对您有帮助,希望把文章链接给更多的朋友!

微信小程序中使用map组件,ios手机中点击地图上的view,会触发底下的markertap,只要底下如果有marker点的话。

这就造成了用户体验不是很好。

然后无意间我发现点击能滑动的scroll-view反而不会触发底下的markertap,就等于是一个不穿透的容器。我就在想是不是view也可以换成scroll-view,然后防止穿透点击,答案是:可以。

但是体验还是不太好,因为scroll-view会滑动,所以按钮里面的内容也会滑动,不是最佳的解决方法。于是,我就想到可以用透明的可滑动的scroll-view放在上层作为隐形按钮,下层放普通的按钮样式,这回真正的解决了ios的bug。

一、地图上覆盖的子组件代码

wxml代码

<view class="box"> <swiper circular> <swiper-item wx:for="{{switchArr}}"> <view class="container" catchtap="switchItem" data-index="{{index}}" data-name="{{item.name}}"> <view class="card"> <view class="content"> <view class="icon"> <image src="{{item.imageUrl}}" mode="aspectFill"></image> </view> <view class="bt"> <view class="title">{{item.name}}</view> </view> </view> </view> </view> <scroll-view class="scroll-view" scroll-y="true" catchtap="switchItem" data-index="{{index}}" data-name="{{item.name}}"> <view style="height:100vh;"></view> </scroll-view> </swiper-item> </swiper> <view class="cancelSwitch" style="top:{{statusHeight+3}}px" catchtap="cancelSwitch"> <text>退出页面</text> </view></view>

less代码

/* pages/subPack/otherAnimation/index.wxss */page { box-sizing: border-box; font-family: sans-serif;}.cancelSwitch{ position: absolute; left: 40rpx; display: flex; align-items: center; justify-content: center; width: 210rpx; height: 60rpx; line-height: 60rpx; border-radius: 30rpx; color:#fff; background-color: #d94251; image{ width: 35rpx; height: 30rpx; margin-left: 3rpx; }}.box{ position: fixed; z-index: 10000; min-height: 100vh; background-color: #1a1c22; width: 100%; swiper { width: 100%; height: 100vh; swiper-item { width: 100%; height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; .container { position: relative; display: flex; justify-content: space-around; align-items: center; width: 710rpx; .card { width: 100%; margin: 20px; padding: 40px 30px; border-radius: 40px; background-color: #20252a; border: 4rpx solid #ffefa1; box-shadow: -0px -0px 10px #ffefa1; .imgBx { position: relative; text-align: center; } .content { text-align: center; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; .icon { padding: 20px; margin-top: 15px; height: 100%; width: 120%; border-radius: 40px; color: #32a3b1; font-size: 16px; overflow: hidden; text-decoration: none; background: #20252a; box-shadow: 13px 13px 26px #181c20, -13px -13px 26px #282e35; image { width: 100%; border-radius: 10px; } } .bt { display: inline-block; padding: 10px 20px; margin-top: 45px; border-radius: 40px; color: #ffefa1; font-size: 16px; text-decoration: none; background: #20252a; box-shadow: 20px 20px 41px #161a1d, -20px -20px 41px #2a3037; &:hover { background: #20252a; box-shadow: inset 20px 20px 41px #161a1d, inset -20px -20px 41px #2a3037; } } } &:hover { background: #20252a; box-shadow: inset 20px 20px 41px #161a1d, inset -20px -20px 41px #2a3037; } } } .scroll-view{ width: 750rpx; background-color: #fff; position:absolute; height: 1000rpx; opacity: 0; } } }}

js代码

const app = getApp();Component({ data: { statusHeight: app.globalData.statusHeight, buttonCanUse:true }, properties: { switchArr:{ type:Array, value:[] } }, methods: { switchItem(e) { if(!this.data.buttonCanUse){ return } this.setData({ buttonCanUse:false }) this.triggerEvent('switchItem', { index:e.currentTarget.dataset.index, name:e.currentTarget.dataset.name }) this.setData({ buttonCanUse:true }) }, cancelSwitch() { this.triggerEvent('cancelSwitch') }, }})二、小程序效果

map效果:map上面有很多点位 这些点位都是可以点击进去其他页面的点

微信小程序解决view点击事件穿透地图map触发markertap(微信小程序解决跨域问题)

 切换旅游路线的子组件:是覆盖在map之上的一个容器 z-index:10000

点击就可以切换到路线

三、问题所在

点击这个全景路线的时候 如果点击的位置下方有一个marker点,则他触发两个点击事件,即同时切换路线 同时进入marker点链接的路径

四、解决思路

利用可滑动的scroll-view不会穿透的特性,在子组件上面插入隐形scroll-view,设置点击事件,(用户以为点击的是子组件,实际上点击的是scroll-view,这是一个通用的思路),然后将scroll-view大小覆盖子组件

五、代码分析

核心代码:

<view class="container" catchtap="switchItem" data-index="{{index}}" data-name="{{item.name}}"> <view class="card"> <view class="content"> <view class="icon"> <image src="{{item.imageUrl}}" mode="aspectFill"></image> </view> view class="bt"> <view class="title">{{item.name}}</view> </view> </view> </view></view> <scroll-view class="scroll-view" scroll-y="true" catchtap="switchItem" data-index="{{index}}" data-name="{{item.name}}"> <view style="height:100vh;"></view></scroll-view>.scroll-view{ width: 750rpx; background-color: #fff; position:absolute; height: 1000rpx; opacity: 0;}

 <view class="container" catchtap="switchItem" data-index="{{index}}" data-name="{{item.name}}">是子组件里面每个路线的容器,点击可以切换路线

我在同级写了一个scroll-view 设置宽度750rpx撑满屏幕 然后高度1000rpx盖住整个路线容器 并且将透明度改为零(即opacity:0)

然后在wxml中 设置scroll-y=“true” 在scroll-view里面放一个高度100vh的盒子,让整个scroll-view可滑动,因为scroll-y,所以是上下滑动。

这里为什么不设置scroll-x=“true” 然后在横向上滑动 是因为 我本身用了swiper组件 左右滑动切换,用scroll-x的话,两个滑动事件会冲突,会影响原有的滑动感受。然后在scroll-view上

然后在scroll-view上添加原本写在container上面的点击的点击事件,让用户点的实际上是scroll-view

这样就可以保证ios系统手机点击不会穿透了。

本文链接地址:https://www.jiuchutong.com/zhishi/288122.html 转载请保留说明!

上一篇:nvm 安装node失败问题记录(nvm安装及全局配置node)

下一篇:Web 页面之间传递参数的几种方法(html页面间传数据)

  • 蚂蚁庄园怎样获得福卡(蚂蚁庄园怎样获得饲料)

    蚂蚁庄园怎样获得福卡(蚂蚁庄园怎样获得饲料)

  • 钉钉看直播分屏老师知道吗

    钉钉看直播分屏老师知道吗

  • 开通黄钻隐身访问别人空间别人看得到吗(开通黄钻隐身访问陌生人空间,别人看得到吗)

    开通黄钻隐身访问别人空间别人看得到吗(开通黄钻隐身访问陌生人空间,别人看得到吗)

  • 微信支出总额怎么查(微信支出总额怎么设置)

    微信支出总额怎么查(微信支出总额怎么设置)

  • 微信怎么禁言群成员(微信怎么禁言群成员单人)

    微信怎么禁言群成员(微信怎么禁言群成员单人)

  • 移动升级5g需要换卡吗(移动升级5g需要换sim卡吗)

    移动升级5g需要换卡吗(移动升级5g需要换sim卡吗)

  • qq群文件可以保存多久(qq群文件保存到微云文件会过期吗)

    qq群文件可以保存多久(qq群文件保存到微云文件会过期吗)

  • 显卡内存大小的区别(显卡的内存容量)

    显卡内存大小的区别(显卡的内存容量)

  • 来电话断网怎么解决(来电话网络断开)

    来电话断网怎么解决(来电话网络断开)

  • 电脑开机运行的程序太多怎么办(电脑开机运行的过程)

    电脑开机运行的程序太多怎么办(电脑开机运行的过程)

  • 华为wastl10是什么机型(华为wastl10手机)

    华为wastl10是什么机型(华为wastl10手机)

  • 在创建磁盘文件时保存文档的含义是(创建磁盘文件时,保存文档的含义是指)

    在创建磁盘文件时保存文档的含义是(创建磁盘文件时,保存文档的含义是指)

  • word怎么生成参考文献(word文档制作生成)

    word怎么生成参考文献(word文档制作生成)

  • 华为plktl01h全网通吗(华为plk-ul00)

    华为plktl01h全网通吗(华为plk-ul00)

  • appleid无法查看闪退(apple id 无法查看怎么办)

    appleid无法查看闪退(apple id 无法查看怎么办)

  • 有道词典单词锁屏显示不了(有道词典单词锁屏怎么一直开)

    有道词典单词锁屏显示不了(有道词典单词锁屏怎么一直开)

  • sub6g是指哪一段频率(5g sub6是什么意思)

    sub6g是指哪一段频率(5g sub6是什么意思)

  • mp1602是什么手机(mp1512是什么手机)

    mp1602是什么手机(mp1512是什么手机)

  • 微信怎么上传高清视频(微信怎么上传高清画质)

    微信怎么上传高清视频(微信怎么上传高清画质)

  • 小米8se的耳机孔在哪(小米8 耳机孔)

    小米8se的耳机孔在哪(小米8 耳机孔)

  • vivo如何截屏(vivo如何截屏长图)

    vivo如何截屏(vivo如何截屏长图)

  • wps格式刷快捷键(wps格式刷快捷键用不了怎么办)

    wps格式刷快捷键(wps格式刷快捷键用不了怎么办)

  • Pinia 数据持久化储存(pinia-plugin-persistedstate)(数据持久化操作)

    Pinia 数据持久化储存(pinia-plugin-persistedstate)(数据持久化操作)

  • 4.网络爬虫—Post请求(实战演示)(“网络爬虫”)

    4.网络爬虫—Post请求(实战演示)(“网络爬虫”)

  • vue3生命周期及setup介绍(vue3生命周期及使用)

    vue3生命周期及setup介绍(vue3生命周期及使用)

  • 网络课程购买
  • 全成本核算优缺点
  • 机械租赁税率是10个点还是9个点
  • 补贴收入是否缴税
  • 百旺购货方红字信息表怎么开具
  • 个税系统如何增员
  • 小微企业开票多少算小规模纳税人
  • 纳税人财务会计报表报送管理办法
  • 资产损失企业所得税扣除
  • 非货币性资产交换的记忆口诀
  • 股利怎么算出来的
  • 实收资本印花税怎么申报税目
  • 付汇代扣代缴增值税纳税期限
  • 分配股利需要缴纳个税吗
  • 房地产企业预缴税费
  • 资产一次性摊销
  • 营改增后书据转移印花税是含税的吗?
  • 个税起征点是多少啊
  • 现金流量表编制依据和方法
  • 公司注销报表怎么调
  • 金税盘抄税报税清卡流程图
  • 一张发票上可以开几行
  • 个人所得税征收计算方法
  • 用一般户发工资会怎么样
  • 计提固定资产会计科目
  • win11小组件加载内容出现错误
  • 电脑上不了网怎么安装网卡驱动
  • 怎么操作win10系统
  • 员工的罚款计入什么科目
  • 财政专项补助资金企业所得税申报
  • windows10轻松使用是什么
  • 微软输入法繁体字变简体字
  • 常见的无线网络技术有
  • php怎么新建
  • map程序
  • 软件工程毕设题目冷门
  • 销售过程的主要内容
  • 除了正式发票还有啥
  • 出售债券税费处理方法
  • node.js in action
  • mysql查找重复项
  • 员工出国公司要承担的责任
  • 接受捐赠收入要交企业所得税吗
  • 股东借款属于什么科目
  • redis的
  • sqlserver2008误操作数据
  • access中宏是按什么调用的
  • 股东转股怎么办理
  • 政府无偿划转股权印花税
  • 企业所得税季报人数季度初值
  • 物业费的税可以抵扣吗
  • 哪些企业不能核算成本
  • 折旧费属于什么总账科目
  • 销售费用怎么用
  • 管理费用借方红字怎么记凭证
  • 关联公司代缴社保劳动者怎么处理
  • 发票金额与付款金额不一致情况说明
  • 既有从价又有从租如何计算房产税
  • 银行承兑汇票记载事项
  • 长期待摊销费用属于流动资产吗
  • 备用金怎么做会计科目
  • sap批量导入
  • mysql5.7最新版
  • 类似wps office的手机软件
  • 韩国电脑用什么系统
  • linux处理文件命令
  • 安装solaris11
  • windows么
  • 物联网 iot
  • centos安装scala
  • 无人值守工厂
  • ping命令详解步骤
  • 如何选择性地隐藏部分任务栏程序
  • linux ssh key登录
  • 铁嘴的故事
  • 文章标题用几号字体
  • 出口退税的管理办法
  • 2018年建筑业增值税税率变更文件
  • portal
  • 联通前面加什么可以隐藏号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设