完全兼容的 鼠标滚轴缩放图片

以前看到的都是用IE的zoom,所以非IE就不支持,昨天看到这个js中鼠标滚轮事件详解 ,于是完全兼容(IE6-8,FF,Chrome,Opera,Safari)的鼠标滚轴缩放图片效果今天就诞生了

 

默认最小缩放为原图片的50%

新窗口查看效果 

 

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'){//IE
        zoom = parseInt(o.style.zoom) || 100
        zoom 
+= data / 12;
        
if(zoom > zooming.min) 
            o.style.zoom 
= zoom + '%';
        e.returnValue
=false;
    }
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"
        }
        e.preventDefault();//阻止默认行为
        e.stopPropagation();//for Firefox3.6
    }
};
zooming.add
=function(obj,min){//第一个参数指定可以缩放的图片,min指定最小缩放的大小 ,default to 50
    zooming.min=min || 50;
    obj.onmousewheel
=zooming;
    
if(/Firefox/.test(navigator.userAgent))//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"));
}
复制代码

 

 

 

posted @   sohighthesky  阅读(4926)  评论(23编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示