简单的放大缩小,显示坐标功能.
-------------------------------
演示代码:
-------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transicional//ES">
<HTML>
<CABEZA>
<TITLE> Documento </TITLE>
<tipo de estilo="texto/css">
cuerpo{
relleno: 0px;
margen: 0px;
color de fondo: #999999;
}
.DivPrincipal {
posición: absoluta;
alineación de texto: centro;
desbordamiento: oculto;
}
.DivMenú {
posición: absoluta;
alineación de texto: izquierda;
desbordamiento: oculto;
}
.ImgPrincipal {
posición: absoluta;
desbordamiento: oculto;
borde: 0px;
}
.TBPrincipal {
color de fondo: #CCCCCC;
relleno: 0px;
borde: 0px;
índice z: 99;
altura de línea: 18px;
}
.TBMenú {
color de fondo: #FFCCCC;
relleno: 0px;
borde: 0px;
índice z: 99;
color: #000000;
}
.HrDesplazamiento {
margen: 0px;
color de fondo: #FFFFFF;
relleno: 0px;
borde: 0px;
índice z: 99;
color: #000000;
espaciado de bordes: 0px;
ancho: 160 píxeles;
altura: 10px;
}
</estilo>
<IDIOMA DE ESCRITURA="JavaScript">
<!--
var ancho original;
var altura original;
var objDivPrincipal;
var objTbMain;
varobjImg;
var ObjDrag;
varobjDivMenu;
varobjTbMemu;
varobjbtnImgInfo;
varobjDivFlag;
varobjHrScroll;
var oRcts;
var oTextRange;
función setInit(obj) {
objDivMain = document.getElementById("divMain");
objTbMain = document.getElementById("TbMain");
objDivMenu = document.getElementById("DivMenu");
objTbMenu = document.getElementById("TbMenu");
objImg = document.getElementById("imgMain");
objbtnImgInfo = document.getElementById("btnImgInfo");
objDivFlag = document.getElementById("DivFlag");
objHrScroll = document.getElementById("HrScroll");
ancho original = obj.ancho;
altura original = altura obj;
objImg.style.width = ancho original;
objImg.style.height = altura original;
fmImgZoom.FitScreen.click();
}
función establecerFitScreen() {
initImg(objImg);
}
función conjuntoOriginal() {
var intBodyWidth;
var intBodyHeight;
intBodyWidth = documento.body.clientWidth;
intBodyHeight = documento.body.clientHeight;
objImg.style.left = 0;
objImg.style.top = 0;
objImg.style.width = ancho original;
objImg.style.height = altura original;
objImg.style.zoom = 1;
objDivMain.style.width = intBodyWidth;
objDivMain.style.height = intBodyHeight - objTbMain.clientHeight;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
función initImg(objActual) {
var intBodyWidth;
var intBodyHeight;
intBodyWidth = documento.body.clientWidth;
intBodyHeight = documento.body.clientHeight;
objTbMain.style.top = 0;
objTbMain.style.height = 20;
objTbMain.style.width = intBodyWidth;
objDivMain.style.left = 0;
objDivMain.style.height = intBodyHeight - objTbMain.clientHeight;
objDivMain.style.width = intBodyWidth;
initZoom(objActual);
}
función initZoom(obj){
var intObjWidth;
var intObjHeight;
var intDivHeight;
var intZoomRatio;
intDivHeight = objDivMain.style.pixelHeight;
intObjHeight = obj.style.pixelHeight;
intZoomRatio = intDivHeight / intObjHeight;
obj.style.zoom = intZoomRatio;
obj.estilo.top = 0;
obj.estilo.izquierda = 0;
fnWritePos (obj.style.left,obj.style.top,obj.style.zoom);
}
función fnMouseDown(obj) {
ObjArrastrar=obj;
ObjDrag.setCapture();
ObjDrag.l=event.x-ObjDrag.style.pixelLeft;
ObjDrag.t=event.y-ObjDrag.style.pixelTop;
}
función fnMouseMove() {
si (ObjDrag! = nulo) {
ObjDrag.style.left = event.x-ObjDrag.l;
ObjDrag.style.top = event.y-ObjDrag.t;
fnWritePos(ObjDrag.style.left,ObjDrag.style.top,ObjDrag.style.zoom);
}
}
función fnMouseUp() {
si (ObjDrag! = nulo) {
ObjDrag.releaseCapture();
ObjArrastrar=null;
}
}
función fnZoomIn() {
objImg.style.zoom = parseFloat(objImg.style.zoom) + 0,01;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
función fnZoomOut() {
si(objImg.style.zoom>0.01){
objImg.style.zoom = parseFloat(objImg.style.zoom) - 0,01;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
}
función fnDivMouseDown() {
if ( event.button == 2 && event.srcElement.id != "imgMain") {
objDivMenu.style.top = evento.y;
objDivMenu.style.left = evento.x;
objDivMenu.style.visibility = "";
oTextRange = objHrScroll.createTextRange();
oRcts = oTextRange.getClientRects();
oBndRct = objDivFlag.getBoundingClientRect();
objDivFlag.style.top = oRcts[0].top;
objDivFlag.style.left = oRcts[0].left + parseInt(objImg.style.zoom * 10);
objDivFlag.style.visibility = "";
}
if ( event.button == 1 && event.srcElement.id != "imgMain") {
objDivMenu.style.visibility = "oculto";
objDivFlag.style.visibility = "oculto";
}
}
función fnWritePos(intLeft,intTop,intZoom) {
objbtnImgInfo.innerText = " ImgLeft:" + intLeft + " ImgTop: " + intTop + " ImgZoom: " + intZoom ;
}
función fn SlipMouseDown (obj) {
ObjArrastrar=obj;
ObjDrag.setCapture();
ObjDrag.l = evento.x - ObjDrag.style.pixelLeft;
ObjDrag.t = ObjDrag.style.pixelTop;
}
función fn SlipMouseMove() {
si (ObjDrag! = nulo) {
if(evento.x >= oRcts[0].izquierda && evento.x <= oRcts[0].derecha){
ObjDrag.style.left = event.x - objDivFlag.offsetWidth / 2;
}
ObjDrag.t = ObjDrag.style.pixelTop;
var intCurrentPos = ObjDrag.style.pixelLeft - oRcts[0].left + objDivFlag.offsetWidth / 2;
var intPicZoom = intCurrentPos / 10;
objImg.style.zoom = intPicZoom;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
}
función fn SlipMouseUp() {
si (ObjDrag! = nulo) {
ObjDrag.releaseCapture();
ObjArrastrar=null;
}
}
función setDisplay() {
if(objImg.style.visibilidad == ""){
objImg.style.visibility = "oculto";
}
demás{
objImg.style.visibility = "";
}
}
función fnContextMenu() {
ventana.event.returnValue=false;
}
//-->
</SCRIPT>
</CABEZA>
<CUERPO oncontextmenu="fnContextMenu()">
<nombre del formulario="fmImgZoom">
<TABLE id="tbMain" clase="TBMain">
<TR>
<TD>
<tipo de entrada="botón" nombre="ZoomIn" valor="ZoomIn" onclick="fnZoomIn()">
<tipo de entrada="botón" nombre="Alejar" valor="Alejar" onclick="fnZoomOut()">
<tipo de entrada="botón" nombre="Original" valor="Original" onclick="setOriginal()">
<tipo de entrada="botón" nombre="FitScreen" valor="FitScreen" onclick="setFitScreen()">
<tipo de entrada="botón" nombre="btnView" valor="ocultar/ver" onclick="setDisplay()">
<id de entrada="btnImgInfo" tamaño="50">
</TD>
</TR>
</TABLA>
<div id="divMain" class="DivMain" onmousedown="fnDivMouseDown()"><img src="<A href="/u/info_img/2009-06/08/22.jpg" id="imgMain" class="imgMain" onload="setInit(this)" onmousedown="fnMouseDown(this)" onmousemove="fnMouseMove()" onmouseup="fnMouseUp()" >>div>
<div id="divMenu" class="DivMenu" estilo="visibilidad:oculto">
<TABLE clase="TBMenú">
<TR>
<TD>10%</TD>
<TD><button id="HrScroll" class="HrScroll"><hr noshade></button> </TD>
<TD>1600%</TD>
</TR>
</TABLA>
</div>
<DIV ID="DivFlag" STYLE="posición:absoluta;visibilidad:hidden;ancho:1px;altura:10px;z-index:99" onmousedown="fnslipMouseDown(this)" onmousemove="fnslipMouseMove()" onmouseup=" fnslipMouseUp()" onmouseover="this.style.cursor ='mano'" onmouseout="this.style.cursor=''"> ↑</DIV>
</formulario>
</CUERPO>
</HTML>