ajax zoom,zoom.js 使用事例

给地图加个放大镜

var shrinkfactor=5

// left and top position of the thumbnailimage

// (distance to the left and top browser-margin, pixels)

var thumbleft = 30

var thumbtop = 30

// left and top position of the zoomed image

// (distance to the left and top browser-margin, pixels)

var largeleft = 300

var largetop = 30

// width and height of the enlarged image's sector (visible part, pixels)

var clipwidth = 240

var clipheight = 160

var isNav, isIE

var offsetX, offsetY

var selectedObj

var largewidth = 0

var largeheight = 0

var thumbwidth = Math.floor(largewidth/shrinkfactor)

var thumbheight = Math.floor(largeheight/shrinkfactor)

var dragimgwidth = Math.floor(clipwidth/shrinkfactor)

var dragimgheight = Math.floor(clipheight/shrinkfactor)

var dragimgleft = thumbleft+3

var dragimgtop = thumbtop+3

var difleft= largeleft-thumbleft

var diftop= largetop-thumbtop

var clippoints

var cliptop=0

var clipbottom=cliptop+clipheight

var clipleft=0

var clipright=clipleft+clipwidth

if (parseInt(navigator.appVersion) >= 4) {

if (navigator.appName == "Netscape") {

isNav = true

} else {

isIE = true

}

}

function setZIndex(obj, zOrder) {

obj.zIndex = zOrder

}

function shiftTo(obj, x, y) {

if (isNav) {

if(x<=document.thumb.left) {x=document.thumb.left}

if(x>=(document.thumb.left+thumbwidth-dragimgwidth-2)) {x=document.thumb.left+thumbwidth-dragimgwidth-2}

if(y<=document.thumb.top) {y=document.thumb.top}

if(y>=(document.thumb.top+thumbheight-dragimgheight-2)) {y=document.thumb.top+thumbheight-dragimgheight-2}

obj.moveTo(x,y)

} else {

if(x<=document.all.thumb.style.posLeft) {x=document.all.thumb.style.posLeft}

if(x>=(document.all.thumb.style.posLeft+thumbwidth-dragimgwidth-2)) {x=document.all.thumb.style.posLeft+thumbwidth-dragimgwidth-2}

if(y<=document.all.thumb.style.posTop) {y=document.all.thumb.style.posTop}

if(y>=(document.all.thumb.style.posTop+thumbheight-dragimgheight-2)) {y=document.all.thumb.style.posTop+thumbheight-dragimgheight-2}

obj.pixelLeft = x

obj.pixelTop = y

}

cliptop = (y-thumbtop)*shrinkfactor

clipbottom = cliptop+clipheight

clipleft = (x-thumbleft)*shrinkfactor

clipright = clipleft+clipwidth

if (document.all) {

clippoints ="rect("+cliptop+" "+clipright+" "+clipbottom+" "+clipleft+")"

document.all.large.style.posTop=largetop-cliptop

document.all.large.style.posLeft=largeleft-clipleft

document.all.large.style.clip=clippoints

}

if (document.layers) {

document.large.top=largetop-cliptop

document.large.left=largeleft-clipleft

document.large.clip.left = clipleft

document.large.clip.right = clipright

document.large.clip.top = cliptop

document.large.clip.bottom = clipbottom

}

}

function setSelectedElem(evt) {

if (isNav) {

var testObj

var clickX = evt.pageX

var clickY = evt.pageY

for (var i = document.layers.length - 1; i >= 0; i--) {

testObj = document.layers[i]

if ((clickX > testObj.left) &&

(clickX < testObj.left + testObj.clip.width) &&

(clickY > testObj.top) &&

(clickY < testObj.top + testObj.clip.height && document.layers[i].id=="dragimg")) {

selectedObj = testObj

setZIndex(selectedObj, 100)

return

}

}

} else {

var imgObj = window.event.srcElement

if (imgObj.parentElement.id.indexOf("dragimg") != -1) {

selectedObj = imgObj.parentElement.style

setZIndex(selectedObj,100)

return

}

}

selectedObj = null

return

}

function dragIt(evt) {

if (selectedObj) {

if (isNav) {

shiftTo(selectedObj, (evt.pageX - offsetX), (evt.pageY - offsetY))

} else {

shiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))

return false

}

}

}

function engage(evt) {

setSelectedElem(evt)

if (selectedObj) {

if (isNav) {

offsetX = evt.pageX - selectedObj.left

offsetY = evt.pageY - selectedObj.top

} else {

offsetX = window.event.offsetX

offsetY = window.event.offsetY

}

}

return false

}

function release(evt) {

if (selectedObj) {

setZIndex(selectedObj, 0)

selectedObj = null

}

}

function setNavEventCapture() {

if (isNav) {

document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)

}

}

function init() {

if (document.layers) {

var imageurl=document.large.document.largepic.src

largewidth=document.large.document.width

largeheight=document.large.document.height

thumbwidth = Math.floor(largewidth/shrinkfactor)

thumbheight = Math.floor(largeheight/shrinkfactor)

document.thumb.document.write("%22+imageurl+%22")

document.thumb.document.close()

document.dragimg.document.write("dragimg.gif")

document.dragimg.document.close()

document.large.left=largeleft

document.large.top=largetop

document.thumb.left=thumbleft

document.thumb.top=thumbtop

document.dragimg.left=dragimgleft

document.dragimg.top=dragimgtop

document.large.clip.left=clipleft

document.large.clip.right=clipright

document.large.clip.top=cliptop

document.large.clip.bottom=clipbottom

document.large.visibility="visible"

setNavEventCapture()

}

if (document.all) {

var imageurl=document.largepic.src

largewidth=document.all.large.offsetWidth

largeheight=document.all.large.offsetHeight

thumbwidth = Math.floor(largewidth/shrinkfactor)

thumbheight = Math.floor(largeheight/shrinkfactor)

thumb.innerHTML="%22+imageurl+%22"

dragimg.innerHTML="1797cc5cdff4d0fe39083d76cb8cb42e.gif"

document.all.large.style.posLeft=largeleft

document.all.large.style.posTop=largetop

document.all.thumb.style.posLeft=thumbleft

document.all.thumb.style.posTop=thumbtop

document.all.dragimg.style.posLeft=dragimgleft

document.all.dragimg.style.posTop=dragimgtop

clippoints ="rect("+cliptop+" "+clipright+" "+clipbottom+" "+clipleft+")"

document.all.large.style.clip=clippoints

document.all.large.style.visibility="visible"

}

document.onmousedown = engage

document.onmousemove = dragIt

document.onmouseup = release

}

window.οnlοad=init

用鼠标移动下面的方框,效果不错吧

871d5b2cf9f57166f8133f7d6a517b24.png

posted on 2008-03-11 10:22 lk 阅读(1925) 评论(0)  编辑  收藏 所属分类: ajax&js 、html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值