有一个使用js来实现缩放拖动图片的功能,这个功能在图片较小时(500K左右)没有问题,可以正常实现缩放和拖动,并且速度很快。但在遇到图片较大时,比如超过2M时,就会出现如下问题:
当图片不进行缩放时,进行拖动操作,速度很快,感觉会跟着鼠标移动,但如果进行了缩放操作,无论是放大还是缩小,然后再进行拖动操作,则会有明显的刷屏现象,图片的移动速度很慢,百思不得其解,特来问问大侠们~~以下是放大和缩小的脚本picObj为图片的公共变量:
function big(){
picObj.width = picObj.width * 1.2;
picObj.height = picObj.height * 1.2;
}function small(){
picObj.width = picObj.width * 0.8;
picObj.height = picObj.height * 0.8;
}以下是拖动的脚本winObj是div的公共变量,
function MouseDown(){
winObj=document.getElementById("pic_detail_div");
winObj.setCapture();
winObj.l=event.x-winObj.style.pixelLeft;
winObj.t=event.y-winObj.style.pixelTop;
}
function MouseMove(){
if(winObj!=null && winObj.l != null)
{
winObj.style.left = event.x-winObj.l;
winObj.style.top = event.y-winObj.t;
}
}
function MouseUp()
{
if(winObj!=null)
{
winObj.releaseCapture();
winObj=null;
}
}
以下是div和图片
<div id="pic_detail_div" style="position:absolute;" onMouseMove="MouseMove()" onMouseUp="MouseUp()">
<img id="pic_detail_img" onMouseDown="MouseDown()" border='0'/></div
当图片不进行缩放时,进行拖动操作,速度很快,感觉会跟着鼠标移动,但如果进行了缩放操作,无论是放大还是缩小,然后再进行拖动操作,则会有明显的刷屏现象,图片的移动速度很慢,百思不得其解,特来问问大侠们~~以下是放大和缩小的脚本picObj为图片的公共变量:
function big(){
picObj.width = picObj.width * 1.2;
picObj.height = picObj.height * 1.2;
}function small(){
picObj.width = picObj.width * 0.8;
picObj.height = picObj.height * 0.8;
}以下是拖动的脚本winObj是div的公共变量,
function MouseDown(){
winObj=document.getElementById("pic_detail_div");
winObj.setCapture();
winObj.l=event.x-winObj.style.pixelLeft;
winObj.t=event.y-winObj.style.pixelTop;
}
function MouseMove(){
if(winObj!=null && winObj.l != null)
{
winObj.style.left = event.x-winObj.l;
winObj.style.top = event.y-winObj.t;
}
}
function MouseUp()
{
if(winObj!=null)
{
winObj.releaseCapture();
winObj=null;
}
}
以下是div和图片
<div id="pic_detail_div" style="position:absolute;" onMouseMove="MouseMove()" onMouseUp="MouseUp()">
<img id="pic_detail_img" onMouseDown="MouseDown()" border='0'/></div
主要问题是:打开页不做任何操作的话,拖动速度很快,而进行缩放后,拖动速度就很慢了。
我还试出来,如果在进行缩放后,如果再还原成原来的大小,则拖动速度又很快了。所以我感觉和外层的div的style设置有关系,但不知道是哪的问题~~