⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buaa_script.js

📁 map delevopsadfdasaf sd sdfdsafsd fasd
💻 JS
字号:
// JScript source code
 
var SVGDoc;
var mousehavedown = false;
var currentMode=0;
var mousedown_x;
var mousedown_y;  

function changeVisible(evt,tagname)
{
	SVGDoc=evt.getTarget().getOwnerDocument();
	var gou = SVGDoc.getElementById(tagname+"gou");
	var tag=SVGDoc.getElementById(tagname);
	
	if(!tag)
	{
		return;
	}
	var visible=tag.getAttribute("visibility");
	
	if(visible=="hidden")
	{
		gou.setAttribute("visibility","visible");
		tag.setAttribute("visibility","visible");
	}
	else
	{
		gou.setAttribute("visibility","hidden");
		tag.setAttribute("visibility","hidden");  
	}
}

	function ZoomIn(evt)
	{
		currentMode=1;
		if(!SVGDoc)
		{
			SVGDoc=evt.getTarget().getOwnerDocument();  
		}

		var beijing=SVGDoc.getElementById("zoomInBack");

		beijing.setAttribute("visibility","visible");
		beijing=SVGDoc.getElementById("zoomOutBack");
		beijing.setAttribute("visibility","hidden")
		beijing=SVGDoc.getElementById("NavBack");
		beijing.setAttribute("visibility","hidden");
	}

function ZoomOut(evt)
{
	currentMode=2;
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}

	var beijing=SVGDoc.getElementById("zoomInBack");
	beijing.setAttribute("visibility","hidden")
	beijing=SVGDoc.getElementById("zoomOutBack");
	beijing.setAttribute("visibility","visible")
	beijing=SVGDoc.getElementById("NavBack");
	beijing.setAttribute("visibility","hidden");
}

function Nav(evt)
{
	currentMode=0;
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}

	var beijing=SVGDoc.getElementById("zoomInBack");
	beijing.setAttribute("visibility","hidden")
	beijing=SVGDoc.getElementById("zoomOutBack");
	beijing.setAttribute("visibility","hidden")
	beijing=SVGDoc.getElementById("NavBack");
	beijing.setAttribute("visibility","visible");
}
function scaleTheMap(tagscale)
{
	var scaleControl=SVGDoc.getElementById("mapscaleControl");
	var matrix=scaleControl.getCTM();
	matrix=matrix.scale(tagscale);
	resetTransform(matrix);
}
function mousedown()
{
	showMouseLocation(evt);
	mousehavedown=true;
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}
	
	switch(currentMode)
	{
		case 0:
		var mainBox=SVGDoc.getElementById("mainBox");
		var base_x=mainBox.getAttribute("x");
		var base_y=mainBox.getAttribute("y");
		mousedown_x=evt.screenX-base_x;
		mousedown_y=evt.screenY-base_y;  
		  
		break;
		case 1:
		var mainBox=SVGDoc.getElementById("mainBox");
		var base_x=mainBox.getAttribute("x");
		var base_y=mainBox.getAttribute("y");
		mousedown_x=evt.screenX-base_x;
		mousedown_y=evt.screenY-base_y;
		var temprect=SVGDoc.getElementById("temprect");
		temprect.setAttribute("x",mousedown_x);
		temprect.setAttribute("y",mousedown_y);
		break;
		case 2:
		zoomOut_2x(evt)      
		break;
	}
}

function mousemove()
{
	showMouseLocation(evt);
	
	switch(currentMode)
	{
		case 0:
		if(!mousehavedown)
		{
			break;
		}

		var mainBox=SVGDoc.getElementById("mainBox");
		var base_x=mainBox.getAttribute("x");
		var base_y=mainBox.getAttribute("y");
		var now_x=evt.screenX-base_x;
		var now_y=evt.screenY-base_y;
		
		if(Math.abs(now_x-mousedown_x)>5||Math.abs(now_y-mousedown_y)>5)
		{
			var scaleControl=SVGDoc.getElementById("mapscaleControl");
			var matrix=scaleControl.getCTM ( );
			matrix= matrix.translate((now_x-mousedown_x)/matrix.a,(now_y-mousedown_y)/matrix.d)
			resetTransform(matrix);         
			mousedown_x=now_x;
			mousedown_y=now_y;
		}
		
		break;
		
		case 1:
		if(!mousehavedown)
		{
			break;
		}
		var mainBox=SVGDoc.getElementById("mainBox");
		var base_x=mainBox.getAttribute("x");
		var base_y=mainBox.getAttribute("y");
		var now_x=evt.screenX-base_x;
		var now_y=evt.screenY-base_y;
		if(Math.abs(now_x-mousedown_x)>=5||Math.abs(now_y - mousedown_y)>5)
		{
		    var temprect=SVGDoc.getElementById("temprect");
		   temprect.setAttribute("x",Math.min(mousedown_x,now_x));
		   temprect.setAttribute("y",Math.min(mousedown_y,now_y));
		   temprect.setAttribute("width",Math.abs(mousedown_x - now_x));
		   temprect.setAttribute("height",Math.abs(mousedown_y - now_y));
		}
		break;
		
		case 2:
		break;
	}
}
function mouseup()
{
	switch(currentMode)
	{
		case 0:
		
		break;
		case 1:
		var mainBox=SVGDoc.getElementById("mainBox");
		var base_x=mainBox.getAttribute("x");
		var base_y=mainBox.getAttribute("y");
		var up_x=evt.screenX-base_x;
		var up_y=evt.screenY-base_y;
		if(Math.abs(up_x-mousedown_x)<5&&Math.abs(up_y-mousedown_y)<5)
		{
			zoomIn_2x(evt)
		}
		else
		{
			var scaleControl=SVGDoc.getElementById("mapscaleControl");
			var matrix=scaleControl.getCTM ( );
			var temprect=SVGDoc.getElementById("temprect");
			var theWidth=temprect.getAttribute("width");
			var theHeight=temprect.getAttribute("height");
			var Zoom=Math.min(mainBox.getAttribute("width")/theWidth,mainBox.getAttribute("height")/theHeight);
			var downx=temprect.getAttribute("x")
			var downy=temprect.getAttribute("y")
			matrix=matrix.translate((-downx +matrix.e)/matrix.a*(Zoom-1),(-downy +matrix.f)/matrix.d*(Zoom-1));
			matrix=matrix.translate(-downx /matrix.a,-downy/matrix.d);
			matrix=matrix.scale(Zoom);         
			resetTransform(matrix);
		
		}
		var temprect=SVGDoc.getElementById("temprect");    
		temprect.setAttribute("width",'0');
		temprect.setAttribute("height",'0');
		break;
		case 2:
		break;
	}
	
	mousehavedown=false;
}

function showMouseLocation(evt)
{
	var string="X:"+evt.screenX+ " Y:"+evt.screenY;
	window.status=string;
}

function nav_up(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}	evt.getTarget().setAttribute("xlink:href","#jiantou");
	var scaleControl=SVGDoc.getElementById("mapscaleControl");
	var matrix=scaleControl.getCTM();
	var bi = matrix.a;
	//alert(matrix.b);
	matrix = matrix.translate(0,50/bi);
	resetTransform(matrix);
}

function nav_down(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}
	evt.getTarget().setAttribute("xlink:href","#jiantou");
	var scaleControl=SVGDoc.getElementById("mapscaleControl");
	var matrix=scaleControl.getCTM ( );
	var bi=matrix.a;
	matrix=matrix.translate(0,-50/bi);
	resetTransform(matrix);
}
function nav_right(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}
	evt.getTarget().setAttribute("xlink:href","#jiantou");
	var scaleControl=SVGDoc.getElementById("mapscaleControl");
	var matrix=scaleControl.getCTM ( );
	var bi=matrix.a;
	matrix=matrix.translate(-100/bi,0);
	resetTransform(matrix);
}

function nav_left(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}
	evt.getTarget().setAttribute("xlink:href","#jiantou");
	var scaleControl=SVGDoc.getElementById("mapscaleControl");
	var matrix=scaleControl.getCTM ( );
	var bi=matrix.a;
	matrix=matrix.translate(100/bi,0);
	resetTransform(matrix);
}

function resetTransform(Matrix)
{
	var control=SVGDoc.getElementById("mapscaleControl")
	control.setAttribute("transform","matrix("+Matrix.a+","+Matrix.b+","+Matrix.c+","+Matrix.d+","+Matrix.e+","+Matrix.f+")");
}

function clearTransform(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}
	var control=SVGDoc.getElementById("resetBack");
	control.setAttribute("visibility","visible"); 
	control=SVGDoc.getElementById("mapscaleControl");
	control.setAttribute("transform","matrix(1,0,0,1,0,0)");
}

function outResetRegion(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();
	}
	var control=SVGDoc.getElementById("resetBack");
	control.setAttribute("visibility","hidden");
}

function zoomIn_2x(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();  
	}
	var scaleControl=SVGDoc.getElementById("mapscaleControl");
	var matrix=scaleControl.getCTM ( );
	var scale=matrix.a;
	var base_x=evt.getTarget().getAttribute("x");
	var base_y=evt.getTarget().getAttribute("y");
	var down_x=evt.screenX-base_x;
	var down_y=evt.screenY-base_y;
	var now_x=matrix.e;
	var now_y=matrix.f;
	matrix=matrix.translate((-down_x +now_x)/scale,(-down_y +now_y)/scale);
	matrix=matrix.scale(2);
	resetTransform(matrix);
}
function zoomOut_2x(evt)
{
	if(!SVGDoc)
	{
		SVGDoc=evt.getTarget().getOwnerDocument();  
	}
	var scaleControl=SVGDoc.getElementById("mapscaleControl");
	var matrix=scaleControl.getCTM ( );
	var scale=matrix.a;
	var base_x=evt.getTarget().getAttribute("x");
	var base_y=evt.getTarget().getAttribute("y");
	var down_x=evt.screenX-base_x;
	var down_y=evt.screenY-base_y;
	var now_x=matrix.e;
	var now_y=matrix.f;
	matrix=matrix.translate((down_x -now_x)/scale/2,(down_y -now_y)/scale/2);
	matrix=matrix.scale(0.5);
	resetTransform(matrix);
}

function highLight(evt)
{
	evt.getTarget().setAttribute("xlink:href","#jiantou_1");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -