网络编程
位置:首页>> 网络编程>> JavaScript>> javascript 实现的完全兼容鼠标滚轴缩放图片的代码

javascript 实现的完全兼容鼠标滚轴缩放图片的代码

  发布时间:2024-04-10 16:09:43 

标签:鼠标滚轴,缩放图片

code如下:


/*!
*author:sohighthesky
*blog:http://www.cnblogs.com/sohighthesky
*date:2010-2-4
*/
var zooming=function(e){
e=window.event ||e;
var o=this,data=e.wheelDelta || e.detail*40,zoom,size;
if(!+'\v1'){
zoom = parseInt(o.style.zoom) || 100;
zoom += data / 12;
if(zoom > zooming.min)
o.style.zoom = zoom + '%';
}else {
size=o.getAttribute("_zoomsize").split(",");
zoom=parseInt(o.getAttribute("_zoom")) ||100;
zoom+=data/12;
if(zoom>zooming.min){
o.setAttribute("_zoom",zoom);
o.style.width=size[0]*zoom/100+"px";
o.style.height=size[1]*zoom/100+"px";
}
}
};
zooming.add=function(obj,min){//第一个参数指定可以缩放的图片,min指定最小缩放的大小 ,default to 50
zooming.min=min || 50;
obj.onmousewheel=zooming;
if(/a/[-1]=='a')//if Firefox
obj.addEventListener("DOMMouseScroll",zooming,false);
if(-[1,]){//if not IE
obj.setAttribute("_zoomsize",obj.offsetWidth+","+obj.offsetHeight);
}
};

window.onload=function(){//放在onload中,否则非ie中会无法计算图片大小出错
zooming.add(document.getElementById("testimg1"));
}


演示代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>鼠标滚动缩放图片</title> <meta name="author" content="sohighthesky"/> <meta name="Keywords" content="鼠标滚动缩放图片,兼容IE,FF,Chrome,Safari,Opera"> <style type="text/css"> /* pre style*/ body,th,td {font-size:12px;font-family:Verdana,Tahoma,Arial,'\5b8b\4f53','\5FAE\8F6F\96C5\9ED1',sans-serif;} body,th,td,ol,ul,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,fieldset,legend,input,button,textarea,p {margin:0;padding:0;} li { list-style-type:none;} a {color:#3366CC; text-decoration:none;}     a:hover     {color:#FF6600;text-decoration:underline;}     /************************************************************/     #div1 {width:300px;margin:100px 35%;line-height:22px;} </style> </head> <body> <div id="div1"> <img src="/upload/2010-2/20100204144849603.jpg" id="testimg1" alt="sohighthesky"/> <div>默认最小缩放为原图片的50%</div> <div>脚本之家</div> </div> </body> <script type="text/javascript"> (function(){ /*! *Author:sohighthesky *blog:http://www.cnblogs.com/sohighthesky *date:2010-2-4 */ var zooming=function(e){ e=window.event ||e; var o=this,data=e.wheelDelta || e.detail*40,zoom,size; if(!+'\v1'){//IE zoom = parseInt(o.style.zoom) || 100; zoom += data / 12; if(zoom > zooming.min) o.style.zoom = zoom + '%'; }else { size=o.getAttribute("_zoomsize").split(","); zoom=parseInt(o.getAttribute("_zoom")) ||100; zoom+=data/12; if(zoom>zooming.min){ o.setAttribute("_zoom",zoom); o.style.width=size[0]*zoom/100+"px"; o.style.height=size[1]*zoom/100+"px"; } } }; zooming.add=function(obj,min){//第一个参数指定可以缩放的图片,min指定最小缩放的大小 ,default to 50 zooming.min=min || 50; obj.onmousewheel=zooming; if(/a/[-1]=='a')//if Firefox obj.addEventListener("DOMMouseScroll",zooming,false); if(-[1,]){//if not IE obj.setAttribute("_zoomsize",obj.offsetWidth+","+obj.offsetHeight); } }; window.onload=function(){//放在onload中,否则非ie中会无法计算图片大小出错 zooming.add(document.getElementById("testimg1")); } })() </script> </html>

ps:因为这个页面有滚动条,所以如果直接放在页面中时,会滚动页面而不是图片,不知道有什么解决办法

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com