미국의 대화형 지도 만들기
10684 단어 htmlcssjavascript
최종 결과는 여기에서 볼 수 있습니다: https://codepen.io/codecustard/pen/NWpZxey
첫 번째 단계는 지도를 SVG 형식으로 가져오는 것입니다. SVG를 사용하면 각 상태를 경로로 정의할 수 있으므로 CSS로 스타일을 지정하고 Javascript로 대상을 지정할 수 있습니다. 다음에서 무료로 미국 지도를 얻을 수 있습니다. https://simplemaps.com/resources/svg-us
SVG를 다운로드했으면 새 index.html 파일을 만들고 다음을 추가합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive US Map</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="details-box"></div>
</body>
주목해야 할 핵심 사항은 "details-box"id와 "style.css"스타일시트가 연결된 div 요소입니다. "details-box"div는 각 상태 위로 마우스를 가져갈 때 호버 세부 정보 효과를 만드는 데 사용됩니다.
다음으로 할 일은 텍스트 편집기에서 svg 파일을 열고 "..."내용을 html 파일의 본문 태그에 복사하는 것입니다.
<body>
<svg>
...
</svg>
</body>
svg의 내용을 살펴보면 각 상태의 약어로 설정된 "id"와 각 상태의 이름으로 설정된 "data-name"과 같은 몇 가지 유용한 속성이 있음을 알 수 있습니다.
이제 다음을 사용하여 "style.css"라는 새 스타일시트 파일을 생성해 보겠습니다.
@import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');
path {
stroke: white;
fill:paleturquoise !important;
transition: fill .4s ease;
}
path:hover {
fill: orange !important;
}
#us-map {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
#details-box {
padding: 1rem;
border-radius: 8px;
font-size: 24px;
position: fixed;
color: white;
font-family: "Poppins";
background-color: black;
width: fit-content;
transform: translateX(-50%);
transition: opacity .4s ease;
z-index: 1;
}
이제 body 태그 안에 다음 자바스크립트를 추가해 보겠습니다.
<script>
var tooltipSpan = document.getElementById('details-box');
document.addEventListener('mouseover', function (e) {
if (e.target.tagName == 'path') {
var content = e.target.dataset.name;
document.getElementById("details-box").innerHTML = content;
document.getElementById("details-box").style.opacity = "100%";
}
else {
document.getElementById("details-box").style.opacity = "0%";
}
});
window.onmousemove = function (e) {
var x = e.clientX,
y = e.clientY;
tooltipSpan.style.top = (y + 20) + 'px';
tooltipSpan.style.left = (x) + 'px';
};
</script>
그리고 그게 전부입니다. 이것은 웹을 검색하고 다음 웹사이트를 찾는 동안 영감을 받았습니다: https://www.playvs.com/high-school
모든 종류의 사용 사례에 이 효과를 사용할 수 있습니다. 사실, 미국 지도 대신 다른 것을 만들어 인스타그램에서 다음을 언급하여 공유해 보세요.
Reference
이 문제에 관하여(미국의 대화형 지도 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codecustard/creating-an-interactive-map-of-the-us-b5o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)