Vue?運(yùn)行高德地圖官方樣例,設(shè)置class無(wú)效的解決
vue 使用高德地圖,網(wǎng)上有很多樣例,還是選擇官方樣例吧,做的挺不錯(cuò)的。
可以下載官方樣例,在里邊添加各種api來(lái)測(cè)試
添加各種api的方法,要在.then((AMap)里增加,我剛開始放在外層,是錯(cuò)誤的
把對(duì)應(yīng)的代碼貼一下
<template> <div class="home_div"> <div class="map_title"> <h3>JSAPI Vue2地圖組件示例</h3> </div> <div id="container"></div> </div> </template> <script> import AMapLoader from "@amap/amap-jsapi-loader"; export default { name: "Mapview", data() { return { //map:null, }; }, created() {}, mounted() { this.initAMap(); }, methods: { initAMap() { AMapLoader.load({ key: "設(shè)置自己的key", //設(shè)置您的key version: "2.0", plugins: ["AMap.ToolBar", "AMap.Driving"], AMapUI: { version: "1.1", plugins: [], }, Loca: { version: "2.0", }, }) .then((AMap) => { var map = new AMap.Map("container", { viewMode: "3D", zoom: 5, zooms: [2, 22], center: [105.602725, 37.076636], }); var marker = new AMap.Marker({ position: map.getCenter(), icon: "http://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png", anchor: "bottom-center", offset: new AMap.Pixel(0, 0), }); marker.setMap(map); // 設(shè)置鼠標(biāo)劃過(guò)點(diǎn)標(biāo)記顯示的文字提示 marker.setTitle("我是marker的title"); // 設(shè)置label標(biāo)簽 // label默認(rèn)藍(lán)框白底左上角顯示,樣式className為:amap-marker-label marker.setLabel({ direction: "top", offset: new AMap.Pixel(10, 0), //設(shè)置文本標(biāo)注偏移量 content: "<div class='info'>我是 marker 的 label 標(biāo)簽</div>", //設(shè)置文本標(biāo)注內(nèi)容 }); }) .catch((e) => { console.log(e); }); }, }, }; </script>
<style > .home_div { padding: 0px; margin: 0px; width: 100%; height: 100%; position: relative; } #container { padding: 0px; margin: 0px; width: 100%; height: 100%; position: absolute; } .map_title { position: absolute; z-index: 1; width: 100%; height: 50px; background-color: rgba(27, 25, 27, 0.884); } h3 { position: absolute; left: 10px; z-index: 2; color: white; } .amap-icon img { width: 25px; height: 34px; } .amap-marker-label { border: 0; background-color: transparent; } .info { position: relative; margin: 0; top: 0; right: 0; min-width: 0; } </style>
如果用官方樣例,設(shè)置內(nèi)置樣式,是無(wú)效的,比如設(shè)置 marker的Label樣式,這個(gè)內(nèi)置的樣式是amap-marker-label,但是設(shè)置了是無(wú)效的,原因是<style scoped>,官方樣例加了scoped,會(huì)把此style限定在當(dāng)前的頁(yè)面中。
在編譯時(shí),有scoped的頁(yè)面樣式,都會(huì)自動(dòng)生成有一個(gè)唯一標(biāo)識(shí)(attribute),這樣,用字符串方式添加的標(biāo)簽只會(huì)是單獨(dú)的標(biāo)簽而缺少這些標(biāo)識(shí)導(dǎo)致css設(shè)置無(wú)效。
解決辦法
1.樣式直接添加到index.html中
index.html中的標(biāo)簽會(huì)是一個(gè)全局標(biāo)簽,添加到這里會(huì)直接有效。
2.樣式不使用 scoped
不添加scoped在編譯時(shí)就不會(huì)有唯一標(biāo)識(shí),這些css也是全局有效,但是全局標(biāo)簽存在一些風(fēng)險(xiǎn),比如兩個(gè)頁(yè)面寫了同名的之類。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用WebSocket+SpringBoot+Vue搭建簡(jiǎn)易網(wǎng)頁(yè)聊天室的實(shí)現(xiàn)代碼
這篇文章主要介紹了使用WebSocket+SpringBoot+Vue搭建簡(jiǎn)易網(wǎng)頁(yè)聊天室的實(shí)現(xiàn),具體的步驟如下,需要的朋友可以參考下2023-03-03setup+ref+reactive實(shí)現(xiàn)vue3響應(yīng)式功能
這篇文章介紹了通過(guò)setup+ref+reactive實(shí)現(xiàn)vue3響應(yīng)式功能,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11vue組件實(shí)現(xiàn)發(fā)表評(píng)論功能
這篇文章主要為大家詳細(xì)介紹了vue組件實(shí)現(xiàn)發(fā)表評(píng)論功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Vue-Cli項(xiàng)目?jī)?yōu)化操作的實(shí)現(xiàn)
這篇文章主要介紹了Vue-Cli項(xiàng)目?jī)?yōu)化操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Vite中自制mock服務(wù)器(不使用第三方服務(wù))
本文主要介紹了Vite中自制mock服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04vue動(dòng)態(tài)設(shè)置img的src路徑實(shí)例
今天小編就為大家分享一篇vue動(dòng)態(tài)設(shè)置img的src路徑實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09詳解vue如何使用rules對(duì)表單字段進(jìn)行校驗(yàn)
這篇文章主要介紹了詳解vue如何使用rules對(duì)表單字段進(jìn)行校驗(yàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10