搜尋
首頁web前端uni-app移動uni-app專案怎麼實現發送位置的地圖交互

uni-app行動端怎麼仿微信實現發送位置的地圖互動?以下這篇文章就來跟大家介紹一下實現地圖互動的方法,希望對大家有幫助!

移動uni-app專案怎麼實現發送位置的地圖交互

公司新專案要內建地圖,或者說舊地圖要改版,搞一個新的地圖,在UI和互動上要對齊微信,功能上貼合業務需求。

其實這些都挺簡單的,主要麻煩的地方在於下面的動圖互動。

不過先說悔不當初的點,我是按照騰訊地圖教程內置在項目中,在瀏覽器中預覽都是正常,但是在真機調試時,發現並不能這麼做,打算再改下,寫一個html在專案中,再透過webview引入到專案當中。

好了,希望讀者引以為戒。

移動uni-app專案怎麼實現發送位置的地圖交互

接下來說說這個互動的開發吧。

第一版試錯

第一版的做法是利用uni-app的獲取設備的寬高,地圖寬度佔滿屏,內容與列表各佔50%的高度,當觸發展開清單時,調整高度佔比並透過transition屬性加入過渡效果。

但是這樣子做的結果就是, 當高度佔比自動調整時,其本身就有過度式的其調整高度的值,動畫看起來就是卡頓卡頓的。

說白了就是一個字,難看啊。

ps:以下程式碼只是一個核心的理念,並非真實可運行的程式碼,可以理解為就是個偽代碼;

<template>
    <view>
      <view :style="{height: mapHeight + &#39;px&#39;}"> </view>
      <view :style="{height: windowHeight - mapHeight + &#39;px&#39;}"></view>
    </view>
</teamplate>

export default {
  data(){
    return {
        windowWidth: uni.getSystemInfoSync().windowWidth,
windowHeight: uni.getSystemInfoSync().windowHeight,
        searchStatus: false,
    }
  },
  computed{
    mapHeight(){
      return searchStatus ? this.windowHeight * 0.7 : this.windowHeight * 0.5;
    }
  }
}

<style scoped>
.map-box,
.result-list{
  transition: height .3s;
}
</style>

第二版突發奇想

其實第二版看完思路之後,就會覺得第一版真的是我失了智才會想那樣去做。

第二版的想法和第一版整體一致,都是調整高度,但是不同是時,是你進我退式的整體移動。

一、清單容器高度佔比70%,內容高度佔總高度50%。 70%是展開後的高度。

二、展開列表時,地圖向上移動10%,列表向上移動20%;

相比起上一版調整高度導致最終動畫卡頓來說,這一版是調整top值。

地圖高度總是50%,展開清單後隱藏了20%。

清單高度總是70%,展開後,向上移動20%就額外遮住了一部分的地圖,此時地圖中心店不變。不需要重新取得地圖中心點。

<template>
    <view>
      <view :style="{height: windowHeight*0.5+&#39;px&#39;, top: searchStatus ? &#39;-10%&#39; : 0 }"> </view>
      <view :style="{height: windowHeight*0.7+&#39;px&#39;, top: searchStatus ? &#39;50%&#39; : &#39;30%&#39;}">
        <view :style="{height: searchStatus ? windowHeight*0.5+&#39;px&#39; :windowHeight*0.7+&#39;px&#39;}"></view>
      </view>
    </view>
</teamplate>

export default {
  data(){
    return {
        windowWidth: uni.getSystemInfoSync().windowWidth,
windowHeight: uni.getSystemInfoSync().windowHeight,
        searchStatus: false,
    }
  }
}

<style scoped>
.map-box,
.result-list{
  transition: height .3s;
}
</style>

最後

公司專案程式碼,不好貼專案地址, 這部分完整的程式碼還是挺多的, 如果實在沒有實現思路的朋友可以留言區留言,或者加聯絡方式友善交流,無廣告,不收費。

原文網址:https://juejin.cn/post/7054700579590766628

推薦:《uniapp教學

以上是移動uni-app專案怎麼實現發送位置的地圖交互的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:掘金社区。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能