简单的放大缩小,显示坐标功能。
-------------------------------------
Источник:
-------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<ГЛАВА>
<TITLE> Документ </TITLE>
<style type="text/css">
тело{
отступ: 0 пикселей;
поле: 0 пикселей;
цвет фона: #999999 ;
}
.DivMain {
позиция: абсолютная;
выравнивание текста: по центру;
переполнение: скрыто;
}
.DivMenu {
позиция: абсолютная;
выравнивание текста: по левому краю;
переполнение: скрыто;
}
.ImgMain {
позиция: абсолютная;
переполнение: скрыто;
граница: 0 пикселей;
}
.TBMain {
цвет фона: #CCCCCC;
отступ: 0 пикселей;
граница: 0 пикселей;
z-индекс: 99;
высота строки: 18 пикселей;
}
.TBMenu {
цвет фона: #FFCCCC;
отступ: 0 пикселей;
граница: 0 пикселей;
z-индекс: 99;
цвет: #000000 ;
}
.HrScroll {
поле: 0 пикселей;
цвет фона: #FFFFFF;
отступ: 0 пикселей;
граница: 0 пикселей;
z-индекс: 99;
цвет: #000000;
расстояние между границами: 0 пикселей;
ширина: 160 пикселей;
высота: 10 пикселей;
}
</стиль>
<SCRIPT LANGUAGE="JavaScript">
<!--
вар оригиналWidth;
вар originalHeight;
вар objDivMain;
вар objTbMain;
вар объект ;
вар ObjDrag;
вар objDivMenu;
вар objTbMemu;
вар objbtnImgInfo;
вар objDivFlag;
вар objHrScroll;
вар oRcts ;
вар oTextRange;
функция 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");
originalWidth = объект.ширина;
originalHeight = obj.height;
objImg.style.width = оригинальная ширина;
objImg.style.height = originalHeight;
fmImgZoom.FitScreen.click();
}
функция setFitScreen() {
initImg (objImg);
}
функция setOriginal() {
вар intBodyWidth;
вар intBodyHeight;
intBodyWidth = document.body.clientWidth;
intBodyHeight = document.body.clientHeight;
objImg.style.left = 0;
objImg.style.top = 0;
objImg.style.width = оригинальная ширина;
objImg.style.height = originalHeight;
objImg.style.zoom = 1;
objDivMain.style.width = intBodyWidth;
objDivMain.style.height = intBodyHeight - objTbMain.clientHeight;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
функция initImg(objCurrent) {
вар intBodyWidth;
вар intBodyHeight;
intBodyWidth = document.body.clientWidth;
intBodyHeight = document.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 (objCurrent);
}
функция initZoom(obj){
вар intObjWidth;
вар intObjHeight;
вар intDivHeight;
вар intZoomRatio;
intDivHeight = objDivMain.style.pixelHeight;
intObjHeight = obj.style.pixelHeight;
intZoomRatio = intDivHeight / intObjHeight;
obj.style.zoom = intZoomRatio;
объект.стиль.топ = 0;
obj.style.left = 0;
fnWritePos (obj.style.left,obj.style.top,obj.style.zoom) ;
}
функция fnMouseDown(obj) {
ObjDrag=объект;
ObjDrag.setCapture();
ObjDrag.l=event.x-ObjDrag.style.pixelLeft;
ObjDrag.t=event.y-ObjDrag.style.pixelTop;
}
функция fnMouseMove() {
если (ObjDrag! = ноль) {
ObjDrag.style.left = event.x-ObjDrag.l;
ObjDrag.style.top = event.y-ObjDrag.t;
fnWritePos(ObjDrag.style.left,ObjDrag.style.top,ObjDrag.style.zoom);
}
}
функция fnMouseUp() {
если (ObjDrag! = ноль) {
ObjDrag.releaseCapture();
ObjDrag = ноль;
}
}
функция fnZoomIn() {
objImg.style.zoom = parseFloat(objImg.style.zoom) + 0.01 ;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
функция fnZoomOut() {
если (objImg.style.zoom>0,01){
objImg.style.zoom = parseFloat(objImg.style.zoom) - 0.01 ;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
}
функция fnDivMouseDown() {
if ( event.button == 2 && event.srcElement.id != "imgMain") {
objDivMenu.style.top = event.y;
objDivMenu.style.left = event.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 = "скрытый";
objDivFlag.style.visibility = "скрытый";
}
}
функция fnWritePos(intLeft,intTop,intZoom) {
objbtnImgInfo.innerText = " ImgLeft:" + intLeft + " ImgTop:" + intTop + " ImgZoom:" + intZoom ;
}
функция fnSlipMouseDown(obj) {
ObjDrag=объект;
ObjDrag.setCapture();
ObjDrag.l = event.x - ObjDrag.style.pixelLeft;
ObjDrag.t = ObjDrag.style.pixelTop;
}
функция fnSlipMouseMove() {
если (ObjDrag! = ноль) {
if(event.x >= oRcts[0].left && event.x <= oRcts[0].right ){
ObjDrag.style.left = event.x - objDivFlag.offsetWidth/2;
}
ObjDrag.t = ObjDrag.style.pixelTop;
var intCurrentPos = ObjDrag.style.pixelLeft - oRcts[0].left + objDivFlag.offsetWidth / 2;
вар intPicZoom = intCurrentPos / 10;
objImg.style.zoom = intPicZoom;
fnWritePos(objImg.style.left,objImg.style.top,objImg.style.zoom);
}
}
функция fnSlipMouseUp() {
если (ObjDrag! = ноль) {
ObjDrag.releaseCapture();
ObjDrag = ноль;
}
}
функция setDisplay() {
if(objImg.style.visibility == ""){
objImg.style.visibility = "скрытый";
}
еще{
objImg.style.visibility = "";
}
}
функция fnContextMenu() {
window.event.returnValue = ложь;
}
//-->
</СКРИПТ>
</HEAD>
<BODY oncontextmenu="fnContextMenu()">
<form name="fmImgZoom">
<TABLE id="tbMain" class="TBMain">
<ТР>
<ТД>
<input type="button" name="ZoomIn" value="ZoomIn" onclick="fnZoomIn()">
<input type="button" name="ZoomOut" value="ZoomOut" onclick="fnZoomOut()">
<input type="button" name="Original" value="Original" onclick="setOriginal()">
<input type="button" name="FitScreen" value="FitScreen" onclick="setFitScreen()">
<input type="button" name="btnView" value="hide/view" onclick="setDisplay()">
<input id="btnImgInfo" size="50">
</ТД>
</TR>
</ТАБЛИЦА>
<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" style="visibility:hidden">
<TABLE class="TBMenu">
<ТР>
<TD>10%</TD>
<TD><button id="HrScroll" class="HrScroll"><hr noshade></button> </TD>
<TD>1600%</TD>
</TR>
</ТАБЛИЦА>
</div>
<DIV ID="DivFlag" STYLE="position:absolute;visibility:hidden;width:1px;height:10px;z-index:99" onmousedown="fnSlipMouseDown(this)" onmousemove="fnSlipMouseMove()" onmouseup=" fnSlipMouseUp()» onmouseover="this.style.cursor ='hand'" onmouseout="this.style.cursor=''">↑</DIV>
</форма>
</ТЕЛО>
</HTML>