PHP+jQuery는 중국 지도 핫스팟 데이터의 통계적 표시 효과를 실현합니다.

藏色散人
풀어 주다: 2023-04-08 10:08:02
앞으로
2499명이 탐색했습니다.

PHP+jQuery는 중국 지도 핫스팟 데이터의 통계적 표시 효과를 실현합니다.

PHP+jQuery로 구현한 중국 지도 핫스팟 데이터의 통계 표시 예시 지도에서 특정 성 영역으로 마우스를 슬라이드하면 해당 성의 정보가 표시됩니다. 팝업 프롬프트 상자에 데이터 정보가 표시됩니다.

PHP+jQuery는 중국 지도 핫스팟 데이터의 통계적 표시 효과를 실현합니다.

먼저 페이지에 div #tip을 추가하여 지도 정보에 대한 프롬프트 상자를 표시하고 #map을 추가하여 지도를 생성합니다.

<div id="map"></div>  
<div id="tip"></div>
로그인 후 복사

그럼 jQuery 라이브러리인 Raphael.js와 chinamapPath.js(중국 지도 데이터)를 소개합니다.

<script type="text/javascript" src="jquery.js"></script>  
<script type="text/javascript" src="raphael.js"></script> 
<script type="text/javascript" src="chinamapPath.js"></script>
로그인 후 복사

raphael을 호출하여 중국 지도를 그린 후 로드합니다. 통계 데이터, 지도 블록이 작기 때문에 지도가 로드될 때 지도 블록에 데이터를 표시하지 않습니다. 우리는 데이터 정보를 사용자에게 더 잘 표시하기 위해 마우스 상호 작용을 사용합니다.

마우스가 지방 블록으로 슬라이드할 때 e.clientX, e.clientY를 통해 마우스 좌표를 배치한 다음 jquery의 css() 메서드를 통해 프롬프트 상자 div#tip을 배치하고 해당 항목을 변경합니다. 지방의 활성 사용자의 이름과 수가 프롬프트 상자에 추가되어 표시됩니다. 코드는 다음과 같습니다:

$(function() { 
    $.get("json.php", 
    function(json) { 
        var data = string2Array(json); 
        var flag; 
        var arr = new Array(); 
        for (var i = 0; i < data.length; i++) { 
            var d = data[i]; 
            if (d < 100) { 
                flag = 0; 
            } else if (d >= 100 && d < 500) { 
                flag = 1; 
            } else if (d >= 500 && d < 2000) { 
                flag = 2; 
            } else if (d >= 2000 && d < 5000) { 
                flag = 3; 
            } else if (d >= 5000 && d < 10000) { 
                flag = 4; 
            } else { 
                flag = 5; 
            } 
            arr.push(flag); 
        } 
        var colors = ["#d7eef8", "#97d6f5", "#3fbeef", "#00a2e9", "#0084be", "#005c86"]; 
        var R = Raphael("map", 600, 500); 
 
        //调用绘制地图方法 
        paintMap(R); 
 
        var i = 0; 
        for (var state in china) { 
            china[state][&#39;path&#39;].color = Raphael.getColor(0.9); (function(st, state) { 
                var prodata = data[i]; 
                var fillcolor = colors[arr[i]]; 
                st.attr({ 
                    fill: fillcolor 
                }); //填充背景色 
                xOffset = 70; 
                yOffset = 180; 
                st.hover(function(e) { 
                    st.animate({ 
                        fill: "#fdd", 
                        stroke: "#eee" 
                    }, 
                    500); 
                    R.safari(); 
                    $("#tip").css({ 
                        "top": (e.clientY - xOffset) + "px", 
                        "left": (e.clientX - yOffset) + "px" 
                    }).fadeIn("fast").html("<h4>" + china[state][&#39;name&#39;] + "</h4><p>活跃用户数:" + prodata + "</p>"); 
                }, 
                function() { 
                    st.animate({ 
                        fill: fillcolor, 
                        stroke: "#eee" 
                    }, 
                    500); 
                    R.safari(); 
                    $("#tip").hide(); 
                }); 
 
                st.mousemove(function(e) { 
                    $("#tip").css({ 
                        "top": (e.clientY - xOffset) + "px", 
                        "left": (e.clientX - yOffset) + "px" 
                    }); 
                    R.safari(); 
                }); 
 
            })(china[state][&#39;path&#39;], state); 
            i++; 
        } 
    }); 
}); 
 
function string2Array(string) { 
    eval("var result = " + decodeURI(string)); 
    return result; 
}
로그인 후 복사

더 많은 관련 PHP 지식을 보려면 php tutorial을 방문하세요. !

위 내용은 PHP+jQuery는 중국 지도 핫스팟 데이터의 통계적 표시 효과를 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!