vue3 封装城市选择组件实现点击字母跳转到对应城市位置

vue3 封装城市选择组件实现点击字母跳转到对应城市位置

在这里插入图片描述
如图所示:
点击R,跳转到对应的r开头的城市

核心思路就是为每个字母设置一个id,然后当点击对应的字母时,根据id获取到对应的dom,然后用scrollIntoView()方法跳转到对应位置。

此时有的朋友可能会说可以用a标签锚点形式,但咱这是vue框架,没有匹配的路由是行不通的。

其实核心代码就两行如下:

// 点击字母区域
<div
  class="province-item"
  v-for="(item, index) in Object.keys(provinces)"
  :key="index"
  @click="clickChat(item)"
>
{{ item }}
</div>
let clickChat = (item: string) => {
  let el = document.getElementById(item)
  if (el) el.scrollIntoView()
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现点击城市列表,高德地图跳转到对应城市的点位,需要先获取城市的经纬度,然后将地图中心点设置为该经纬度。下面是一个简单的实现示例: 1. 在Vue组件中,定义城市列表和地图容器: ```vue <template> <div> <!-- 城市列表 --> <ul> <li v-for="city in cities" :key="city.name" @click="jumpToCity(city.name)">{{ city.name }}</li> </ul> <!-- 地图容器 --> <div id="map-container"></div> </div> </template> <script> export default { data() { return { // 地图对象 map: null, // 城市列表 cities: [ { name: '北京', location: [116.397428, 39.90923] }, { name: '上海', location: [121.473701, 31.230416] }, { name: '广州', location: [113.264385, 23.12911] }, { name: '深圳', location: [114.057868, 22.543099] }, ], }; }, mounted() { // 初始化地图 this.initMap(); }, methods: { initMap() { // 创建地图对象 this.map = new AMap.Map('map-container', { zoom: 13, // 地图缩放级别 center: [116.397428, 39.90923], // 地图中心点 }); }, // 点击城市列表跳转到对应城市 jumpToCity(cityName) { const city = this.cities.find(item => item.name === cityName); if (city) { // 将地图中心点设置为城市经纬度 this.map.setCenter(city.location); } }, }, }; </script> ``` 在上面的代码中,我们先定义了一个城市列表,包含了城市名称和经纬度。当用户点击某一个城市时,会调用`jumpToCity`方法,该方法会根据城市名称找到对应的经纬度,然后将地图中心点设置为该经纬度。这样就可以实现点击城市列表,高德地图跳转到对应城市的点位了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jieyucx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值