国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
使您的SVG映射響應能力涉及將SVG的寬度和高度設置為100%,並確保正確設置了ViewBox屬性。 ViewBox屬性允許您指定地圖的某個區(qū)域可見,並且在縮放或向下擴展時將保留縱橫比。您還可以使用媒體查詢根據(jù)屏幕大小來調(diào)整地圖的大小和位置。
我可以與其他JavaScript庫一起使用SVG地圖,除了jQuery?
如何使我的SVG映射動畫?
首頁 web前端 js教程 與SVG和JQuery的動態(tài)地理地圖

與SVG和JQuery的動態(tài)地理地圖

Feb 21, 2025 pm 12:13 PM

與SVG和JQuery的動態(tài)地理地圖

當我需要創(chuàng)建圖表時,我的首選是Google圖表或另一個專用庫。但是,有時候,我需要一些我在那裡找不到的特定功能。在這些情況下,SVG圖像被證明非常有價值。 最近,我必須構(gòu)建一個報告頁面,該頁面能夠顯示一張意大利的地圖,其中每個區(qū)域根據(jù)從數(shù)據(jù)庫中檢索的某些值具有不同的顏色音調(diào)。多虧了SVG,這項任務非常容易。

>

鑰匙要點

根據(jù)從數(shù)據(jù)庫中檢索到的數(shù)據(jù),可以使用

SVG圖像來創(chuàng)建每個區(qū)域的動態(tài)地理圖。這是通過將每個區(qū)域繪製為具有唯一級別名稱的單個對象來實現(xiàn)的,該對象與數(shù)據(jù)庫中使用的代碼識別其數(shù)據(jù)。
    >可以使地圖與CSS和jQuery進行交互,從而允許其顯示特定的數(shù)據(jù),例如人群值,當鼠標徘徊在區(qū)域上時。這是通過添加G:Hover和新的Info_panel類的CSS規(guī)則來實現(xiàn)的,以樣式的信息框,然後對上一個循環(huán)修改,將.data()添加為存儲將在Hover上顯示的信息。
  • > 可以使
  • SVG地圖響應響應,與其他JavaScript庫一起使用,用於數(shù)據(jù)可視化,甚至是動畫。它們也可以自定義和優(yōu)化以進行性能。但是,創(chuàng)建自定義地圖需要對SVG和地理數(shù)據(jù)有很好的了解,並且複雜的動畫會影響性能。
  • 在Illustrator中創(chuàng)建SVG地圖
  • 首先,我畫了一張意大利的地圖,上面寫著插圖畫家:

>每個區(qū)域都被繪製為一個對象,並且每個區(qū)域都有自己的級別,其名稱與數(shù)據(jù)庫中使用的代碼匹配以識別其相對數(shù)據(jù)(例如:托斯卡納的“ TOS”) 。

最後,必須將地圖保存為SVG文件。您必須注意將“ CSS屬性”選項設置為Illustrator中的“樣式元素”,如下所示:與SVG和JQuery的動態(tài)地理地圖

>打開剛剛創(chuàng)建的文件,您會看到它包含一組g標籤,其ID與Illustrator級別的名稱匹配。

構(gòu)建我們的html文件

與SVG和JQuery的動態(tài)地理地圖g標籤中包含的每個項目都有一個ST0類,因此可以將中風和填充CSS屬性分配給它們:>

如果您嘗試更改這些值,則地圖將立即更改:>

現(xiàn)在,我們可以使用該代碼使用Inline SVG構(gòu)建HTML文件,如下所示(為方便起見,縮短了代碼):與SVG和JQuery的動態(tài)地理地圖>

<span><span><!doctype html></span>
</span><span><span><span><html</span>></span>
</span><span><span><span><head</span>></span>
</span>    <span><span><span><meta</span> charset<span>="UTF-8"</span>></span>
</span>    <span><span><span><title</span>></span>Map Sample<span><span></title</span>></span>
</span>    <span><span><span><style</span> type<span>="text/css"</span> media<span>="all"</span>></span><span>
</span></span><span><span>        <span><span>.map svg</span> {
</span></span></span><span><span>            <span>height: auto;
</span></span></span><span><span>            <span>width: 350px;
</span></span></span><span><span>        <span>}
</span></span></span><span><span>        <span><span>.map g</span> {
</span></span></span><span><span>            <span>fill: #ccc;
</span></span></span><span><span>            <span>stroke: #333;
</span></span></span><span><span>            <span>stroke-width: 1;
</span></span></span><span><span>        <span>}
</span></span></span><span><span>    </span><span><span></style</span>></span>
</span><span><span><span></head</span>></span>
</span><span><span><span><body</span>></span>
</span>    <span><span><span><div</span> class<span>="map"</span>></span>
</span>        <span><span><span><svg</span> version<span>="1.1"</span> id<span>="Livello_1"</span> xmlns<span>="https://www.w3.org/2000/svg"</span> <span>xmlns:xlink</span><span>="https://www.w3.org/1999/xlink"</span> x<span>="0px"</span> y<span>="0px"</span> viewBox<span>="0 -21.6 761 919"</span> <span>style<span>="<span>enable-background:new 0 -21.6 761 919;</span>"</span></span> <span>xml:space</span><span>="preserve"</span>></span>
</span>            <span><span><span><g</span> id<span>="sar"</span>></span>
</span>                <span><span><span><polygon</span> class<span>="st0"</span> points<span>="193,463 ...    "</span>/></span>
</span>            <span><span><span></g</span>></span>
</span>
            <span><!-- etc ... -->
</span>
        <span><span><span></svg</span>></span>
</span>    <span><span><span></div</span>></span>
</span><span><span><span></body</span>></span>
</span><span><span><span></html</span>></span></span>

>您可以看到SVG標籤內(nèi)部的樣式屬性已被刪除,並用位於文檔頭部內(nèi)部的新樣式替換。所有G元素最初都充滿了淺灰色。

>不再使用ST0類(您可以從SVG代碼中刪除它),並且已被.map G Selector替換。無論如何,這不是強制性的,您可以使用您喜歡的CSS選擇器。

第二步包括將我們的地圖與從數(shù)據(jù)庫中檢索的一些數(shù)據(jù)結(jié)合。在此示例中,我們的目標是根據(jù)每個地區(qū)的人口繪製地圖。

添加JSON數(shù)據(jù)和JavaScript

>數(shù)據(jù)以JSON格式檢索,並直接粘貼在我們的HTML文件中(當然,在現(xiàn)實世界中,將使用AJAX或類似的數(shù)據(jù)檢索數(shù)據(jù))。

>

現(xiàn)在,我們的頁面將在我們的JavaScript文件中包含JSON,該文件看起來像這樣(再次,縮寫): 在那之後,選擇了一種顏色(在這種情況下為#0b68AA),然後將其分配給人口最高價值的區(qū)域。其他區(qū)域?qū)⒁灾饕伾纳{(diào)與人口百分比成比例。 接下來,我們可以添加一些JavaScript。

首先,我們必須確定最大種群價值的區(qū)域。這可以使用幾行代碼來完成。

>
<span>var regions=[
</span>    <span>{
</span>        <span>"region_name": "Lombardia",
</span>        <span>"region_code": "lom",
</span>        <span>"population": 9794525
</span>    <span>},
</span>    <span>{
</span>        <span>"region_name": "Campania",
</span>        <span>"region_code": "cam",
</span>        <span>"population": 5769750
</span>    <span>},
</span>
    <span>// etc ...
</span>
<span>];</span>
>一旦構(gòu)建了包含總體值的臨時數(shù)組,我們就可以使用Math.max方法:>

然後,我們可以根據(jù)計算

>人口 /最大值

(在jQuery的一點幫助下),將透明度的百分比應用於它們:>

這是結(jié)果:

<span>var temp_array= regions.map( function( item ) {
</span>    <span>return item.population;
</span><span>});
</span>
<span>var highest_value = Math.max.apply( Math, temp_array );</span>

添加與CSS和JQuery 的交互性 可以通過一些交互性來改進地圖。我們希望它在鼠標位於區(qū)域上放置時顯示人口價值。

>
<span>$(function() {
</span>  <span>for(i=0; i < regions.length; i++) {
</span>    <span>$('#'+ regions[i].region_code).css({'fill': 'rgba(11, 104, 170,' 
</span>     <span>+ regions[i].population/highest_value 
</span>     <span>+ ')'});
</span>    <span>}
</span><span>});</span>
首先,我們?yōu)镚:Hover和一個新的Info_panel類添加了CSS規(guī)則,以設計我們的信息框:

,否則! 然後,我們必須修改以前的循環(huán),將.data()添加到存儲將顯示在懸停:

上的信息

>最後,我們可以通過添加一些鼠標效果來完成腳本:

>

它的工作原理:

  • 首先,使用鼠標,我們構(gòu)建了一個DIV,其中包含要顯示的信息(區(qū)域名稱和人口)。每當鼠標懸停在G元素上並將其附加到文檔主體時,DIV是構(gòu)建的; 當光標在盤旋區(qū)域外時, mouseleave刪除了div;
  • 最後的方法,莫斯莫夫,檢索鼠標坐標並將其分配給生成的divs。
  • 這是codepen的最終結(jié)果:
  • 請參閱codepen上的sitepoint(@sitepoint)的筆kdhfh。

在帶有SVG和jQuery

的動態(tài)地理地圖上的常見問題(常見問題解答)

>如何使我的SVG映射響應?

使您的SVG映射響應能力涉及將SVG的寬度和高度設置為100%,並確保正確設置了ViewBox屬性。 ViewBox屬性允許您指定地圖的某個區(qū)域可見,並且在縮放或向下擴展時將保留縱橫比。您還可以使用媒體查詢根據(jù)屏幕大小來調(diào)整地圖的大小和位置。

我可以與其他JavaScript庫一起使用SVG地圖,除了jQuery?

??

是的,SVG地圖可以與其他JavaScript庫一起使用,例如D3.JS,Raphael和Snap.svg。這些庫為創(chuàng)建和操縱SVG圖形提供了其他功能。但是,實現(xiàn)可能與jQuery不同,因此您需要參考各自的庫的文檔。

>

>如何將交互性添加到我的svg地圖?

>您可以將交互性添加到您的使用JavaScript或jQuery的SVG地圖。這可以包括工具提示,縮放,平移和可點擊區(qū)域之類的功能。例如,您可以使用'MouseOver'和'MeorsOut'事件顯示工具提示,以及“單擊”事件以使區(qū)域可單擊。

>

>如何使用SVG映射進行數(shù)據(jù)可視化? ??> SVG地圖可用於通過基於數(shù)據(jù)值的著色區(qū)域來可視化數(shù)據(jù),這是一種稱為Choropleth映射的技術(shù)。您可以使用JavaScript將數(shù)據(jù)綁定到您的SVG元素並應用顏色尺度。諸如d3.js之類的庫提供了用於創(chuàng)建唱片映射的內(nèi)置功能。 >

>如何創(chuàng)建自定義SVG映射?

>創(chuàng)建自定義SVG地圖涉及使用諸如vector圖形軟件繪製映射Adobe Illustrator或Inkscape,然後將其導出為SVG文件。然後,您可以使用JavaScript或jQuery來操縱SVG元素並添加交互性。請記住,創(chuàng)建自定義地圖需要很好地了解SVG和地理數(shù)據(jù)。

>為什麼我的SVG地圖區(qū)域無法正確顯示?

如果您的SVG地圖區(qū)域未正確顯示,則可能是由於幾個原因。 SVG文件可能無法正確格式化,或者在JavaScript代碼中可能會出現(xiàn)錯誤。檢查控制臺中是否有任何錯誤消息,並確保您的SVG文件有效。

我可以在所有瀏覽器中使用SVG地圖嗎?

野生動物園和邊緣。但是,舊版本的Internet Explorer(IE8及以下)不支持SVG。如果您需要支持這些瀏覽器,則可以使用諸如Rapha?l之類的多填充或?qū)VG轉(zhuǎn)換為其他格式。性能地圖可能涉及幾種技術(shù)。其中包括最大程度地減少SVG文件的大小,使用CSS進行樣式而不是內(nèi)聯(lián)屬性以及有效地使用JavaScript。您還可以使用SVGO之類的工具來優(yōu)化SVG文件。

如何使我的SVG映射動畫?

>您可以使用CSS動畫或JavaScript對SVG映射進行動畫動畫。這可以包括對SVG元素的顏色,形狀和位置進行動畫動畫。請記住,複雜的動畫會影響性能,因此很少使用。 SVG在Android和iOS Web視圖中都得到了支持,並且可以使用Cordova或React Native等框架中使用。但是,請記住,在舊設備或複雜地圖上性能可能是一個問題。

>

以上是與SVG和JQuery的動態(tài)地理地圖的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java vs. JavaScript:清除混亂 Java vs. JavaScript:清除混亂 Jun 20, 2025 am 12:27 AM

Java和JavaScript是不同的編程語言,各自適用於不同的應用場景。 Java用於大型企業(yè)和移動應用開發(fā),而JavaScript主要用於網(wǎng)頁開發(fā)。

JavaScript評論:簡短說明 JavaScript評論:簡短說明 Jun 19, 2025 am 12:40 AM

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

如何在JS中與日期和時間合作? 如何在JS中與日期和時間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時間處理需注意以下幾點:1.創(chuàng)建Date對像有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設置時間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時區(qū)問題建議使用支持時區(qū)的庫,如Luxon。掌握這些要點能有效避免常見錯誤。

為什麼要將標籤放在的底部? 為什麼要將標籤放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScript與Java:開發(fā)人員的全面比較 JavaScript與Java:開發(fā)人員的全面比較 Jun 20, 2025 am 12:21 AM

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)

JavaScript:探索用於高效編碼的數(shù)據(jù)類型 JavaScript:探索用於高效編碼的數(shù)據(jù)類型 Jun 20, 2025 am 12:46 AM

javascripthassevenfundaMentalDatatypes:數(shù)字,弦,布爾值,未定義,null,object和symbol.1)numberSeadUble-eaduble-ecisionFormat,forwidevaluerangesbutbecautious.2)

什麼是在DOM中冒泡和捕獲的事件? 什麼是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標元素,冒泡是從目標元素向上傳播到頂層。 1.事件捕獲通過addEventListener的useCapture參數(shù)設為true實現(xiàn);2.事件冒泡是默認行為,useCapture設為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委託,提高動態(tài)內(nèi)容處理效率;5.捕獲可用於提前攔截事件,如日誌記錄或錯誤處理。了解這兩個階段有助於精確控制JavaScript響應用戶操作的時機和方式。

Java和JavaScript有什麼區(qū)別? Java和JavaScript有什麼區(qū)別? Jun 17, 2025 am 09:17 AM

Java和JavaScript是不同的編程語言。 1.Java是靜態(tài)類型、編譯型語言,適用於企業(yè)應用和大型系統(tǒng)。 2.JavaScript是動態(tài)類型、解釋型語言,主要用於網(wǎng)頁交互和前端開發(fā)。

See all articles