面上大多數的熱點地圖,都是以 JavaScript 來做的,但是使用 CSS3 制作的熱點地圖倒還真的挺少見的。
其實 CSS3 的功能也很強大,能幫助我們實現很多用 JavaScript 實現的效果,最近小編剛學會 HTML5 和 簡單的 CSS3,在這里用 CSS3 實現了熱點地圖動畫,效果如下:
CSS3 實現熱點地圖動畫
下面給大家初步講講,如何用 CSS3 制作一個熱點地圖,你可以學到 HTML 的布局、HTML 列表、CSS 選擇器、CSS3 動畫、CSS3 的 2D 轉換等,對于練習 HTML、CSS 也有很好的幫助。
相關代碼下載命令:
點擊文末閱讀原文,獲取完整代碼。
首先我們來創建如下目錄結構:
在 img 目錄下獲取地圖圖片,打開終端,執行以下命令:
$ cd img$ wget https://labfile.oss.aliyuncs.com/courses/2673/map_black_bg.png
在 index.html 文件中寫入如下代碼:
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>熱點地圖</title> <!-- 引入CSS --> <link rel="stylesheet" href="./index.css" /> </head> <body> <!-- 地圖 --> <div class="china-map"></div> </body></html>
為了讓我們的城市能夠顯示在地圖上,在這里我選擇使用 CSS 相對定位與絕對定位的方式。
在 index.css 文件中寫入如下代碼:
/* CSS 通配符 * 號,表示所有的元素一開始默認的內外邊距為 0 */* { margin: 0; padding: 0;}body { /* 背景色 */ background: #31363a;}.china-map { /* 給地圖加上相對定位 */ position: relative; /* 給地圖設置寬高 */ width: 747px; height: 617px; /* 設置背景圖片,指定為不重復,并且居中 */ background: url("./map_black_bg.png") no-repeat center; /* 將地圖設置為離頂部60px,左右居中 */ margin: 60px auto 0;}
執行如下步驟預覽效果:
這下我們的地圖就顯示出來了。
地圖成功顯示后,我們需要在上面設置地點以及地點的樣式。
在 index.html 中加入以下代碼:
<div class="china-map"> <!-- 地點區域 --> <div class="region"> <!-- 地點顯示的小圓點 --> <div class="dot"></div> <!-- 向外擴散的圓圈 --> <div class="place"></div> <!-- 地名 --> <div class="txt">青海</div> </div></div>
在 index.css 中加入以下代碼:
* { margin: 0; padding: 0;}body { background: #31363a;}/* 地圖 */.china-map { position: relative; width: 747px; height: 617px; background: url("./map_black_bg.png") no-repeat center; margin: 60px auto 0;}/* 區域地點 */.region { /* 絕對定位 */ position: absolute;}/* 小圓點 */.region .dot { position: absolute; top: 50%; left: 50%; margin: -5px 0 0 -5px; width: 10px; height: 10px; background: #a2a9b4; opacity: 1; border-radius: 50%;}/* 向外擴散的圓圈 */.region .place { position: absolute; top: 50%; left: 50%; margin: -33px 0 0 -33px; width: 66px; height: 66px; border: 2px solid #b7b7b7; border-radius: 50%; /* 透明度 */ opacity: 0.12; /* 陰影 */ box-shadow: 0 0 4px #82878f inset;}/* 地名 */.region .txt { position: absolute; top: -20px; left: 10px; font-size: 14px; color: #ccc; width: 50px;}
預覽效果:
如何將這個地點放置在相應位置上呢?這個時候就要使用 left 屬性和 top 屬性了,通過計算正確的偏移值,將地點放置在合適的位置上。
修改 .region 的樣式:
.region { position: absolute; top: 302px; left: 308px;}
預覽效果:
青海就已經顯示在正確的地方上了。但是我們轉念一想,如果我們還有一個城市,比如北京,這個時候是不是該這樣:
.region2 { position: absolute; top: 229px; left: 559px;}
不過如此一來,每當創建一個城市,就要新寫一個 CSS 類,并且每一個類中都會有同樣的代碼 position:absolute,如果大篇幅的重復會增加代碼的冗余度。所以這個時候,我們可以專門新建一個類來放置每一個城市的偏移值,修改 index.css 文件,增加如下代碼:
.region { position: absolute;}/* 青海 */.region-qh { top: 302px; left: 308px;}/* 北京 */.region-bj { top: 229px; left: 559px;}
修改 index.html:
<div class="china-map"> <!-- 青海 --> <div class="region region-qh"> <div class="dot"></div> <div class="place"></div> <div class="txt">青海</div> </div> <!-- 北京 --> <div class="region region-bj"> <div class="dot"></div> <div class="place"></div> <div class="txt">北京</div> </div></div>
預覽效果:
同樣的道理,如果我們想設置不同地點有不同顏色的顯示,我們可以專門新建一個顏色類:
修改 index.html:
<!-- 北京 --><div class="region region-bj blue"> <div class="dot"></div> <div class="place"></div> <div class="txt">北京</div></div>
在 index.css 中加入以下代碼:
/* 顏色*/.region.blue .place { width: 120px; height: 120px; margin: -64px 0 0 -64px; border: 1px solid #009fd9; box-shadow: 0 0 12px #009fd9 inset;}.region.blue .dot { background: #0080d9;}
預覽效果:
如此一來,如果我們想給一些地點加上樣式,只需要為它加上像 .blue 這樣的顏色類就好了。現在我們將其他的地點以及樣式增加上去。
小編學習的這個《CSS3 實現熱點地圖動畫》課程,目前正在限時免費中,感興趣的小伙伴趕緊點擊了解更多,進行學習吧!
說不定做出來的地圖比小編的更好看~
點擊了解更多,學習完整課程內容~
文就是用這種手段,以一個簡單的表格文件出發,在不知道相關地點經緯度的情況下,通過python調用百度地圖API實現熱力地圖,這其中需要申請密鑰、批量經緯度換算、轉換成js數據、百度熱力地圖api相關參數的調整等等。
有需要Python學習資料的小伙伴嗎?小編整理【一套Python資料、源碼和PDF】,感興趣者可以關注小編后私信學習資料(是關注后私信哦)反正閑著也是閑著呢,不如學點東西啦
圖顯示了黃病毒宿主豐富度的地理分布預測結果。A)黃熱病病毒(YFV)和寨卡病毒(ZIKV)。B)西尼羅河病毒(WNV)、圣路易斯腦炎病毒(SLEV)和蘇圖病毒(USUV)。C)蜱傳腦炎病毒(TBEV)。D)里約熱內盧Bravo病毒(RBV)、Entebbe蝙蝠病毒(ENTV)和達喀爾蝙蝠病毒(DBV)。E)登革熱病毒(DENV)。F)日本腦炎病毒(JEV)。
數千年來,人類一直在積極地與各種致病因素作斗爭,其中一些會造成嚴重后果、容易引起大范圍傳染病的病毒更是令人聞之色變。除人類外,很多野生動物也是病毒的自然宿主,對維持病毒的自然傳播有著重要作用。
近日發表在《自然·通訊》雜志上的論文表示,美國加州大學戴維斯分校(University of California, Davis)的科學家們通過收集相關數據,并將其與地球上所有已知的哺乳動物和鳥類進行比較,最后確定了最有可能攜帶寨卡病毒(Zika)、西尼羅河病毒(West Nile)等各類黃病毒(已知會在全世界引起重大流行病和廣泛的疾病和死亡)的野生動物物種。由此得到的“熱點”地圖顯示了世界上黃病毒野生宿主多樣性最高的地區。其中還包括一些尚未發現黃病毒,但當地野生動物物種可能帶有黃病毒的地區。這些信息為科學家和衛生當局提供了有關疾病檢測和監測工作的“路線圖”。
“將來如果世界上任何一個地方爆發疫情,我們就能知道除了人類之外,哪些野生動物最有可能被感染。”加州大學戴維斯分校獸醫學院(UC Davis One Health Institute)疾病動力學中心的博士后學者普拉納夫潘迪特(Pranav Pandit)說。
近期,寨卡病毒出現并持續在南美和東南亞傳播。該研究預測,這些地區的潛在野生動物宿主有能力維持寨卡病毒在自然界的傳播。除此之外,人們也越來越擔心,日本腦炎病毒將在歐洲出現和定植。根據以上研究,歐洲是日本腦炎潛在宿主(包括許多歐洲常見的鳥類)非常豐富的地區之一。
在這項研究中,研究人員收集了所有已發表的、有關黃病毒檢測呈陽性的野生動物物種的數據。由此,他們確定了該類病毒野生宿主的重要特征,如環境和生理特征。之后,他們利用一個涉及到大約10,400種鳥類和5,400種哺乳動物的機器學習模型確定了最有可能攜帶黃病毒的物種。結果顯示,該模型預測到了數百種以前從未觀察到的宿主物種。例如,它預測了173種登革熱病毒的宿主物種,其中139種以前沒有得到確認。
加州大學戴維斯分校的克里斯汀·克魯格·約翰遜(Christine Kreuder Johnson)教授是這項研究的共同作者之一。她說,這項模型研究可以幫助研究人員確定哪些靈長類動物可能是潛在的病毒宿主。例如,該模型表明,靈長類動物是寨卡病毒和黃熱病病毒的主要宿主,但由于迄今為止科學家們對這兩種病毒的監測活動有限,在預測為宿主的21種靈長類動物中,只有9種曾被發現攜帶有這兩種病毒。
加州大學戴維斯分校健康研究所的科學家們已經為靈長類動物建立了非侵入性的取樣技術,比如從靈長類動物咀嚼的樹枝和植物上或者從涂有草莓醬的繩子上收集唾液。但是黃病毒很難檢測,尤其是在野生動物身上。
“我們需要這種建模技術來幫助我們了解這些病毒在其自然棲息地的最可能宿主。”疾病動力學中心主任Johnson說。這對全球健康和野生動物保護都很重要。許多靈長類動物已經瀕臨滅絕,這些疾病給本就已經非常緊張的種群帶來了負擔。
編譯:Max 審稿:alone 責編:張夢
期刊來源:《自然·通訊》
原文鏈接:https://medicalxpress.com/news/2019-01-world-zika-west-nile-dengue.html
中文內容僅供參考,一切內容以英文原版為準。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。