★精品文档★
用HTML5实现鼠标滚轮事件放大缩小图片
功能
这篇文章主要介绍了用HTML5实现鼠标滚轮事件放大缩小图片的功能,其中 Safari浏览器用户要注意是否禁用了鼠标滚动控制页面滑动的功能,需要的朋友可以参考下
大部分浏览器都是支持鼠标滚轮事件的所以你可以先订阅鼠标滚轮事件的方法每当事件被触发时你能获取一个名为wheelDelta的属性它代表刚才鼠标滚轮改变的大小其中正值表示滚轮往下滑动负值表示滚轮往上滑动。数值的绝对值越大滑动范围越大。
但不幸的是依然有一款浏览器是不支持鼠标滚轮事件的。 那就是 FireFox。 Mozi l la 已经实现了一个名为”DOMMouseScrol l”的事件的处理它会传递一个名为event且附带了名为detai l属性的事件参数过来然而这个detai l属性不同于wheelDelta 它只能返回正值即只能坚持鼠标滚轮向下滚动的值。
你应该特别注意一下Apple公司在Safari浏览器中也禁用了鼠标滚动控制页面上下滑动但是此功能依然在webkit引擎中正常使用的所以你写的代码是不会触发什么问题的。
添加鼠标滚轮事件处理方法
首先我们在网页中添加一个图片待会就能用鼠标滚轮
1/4
★精品文档★
控制此图片的缩放
XML/HTML Code
< img id=“myimage” src=“myimage.jpg” alt=“myimage” /
现在来添加鼠标滚轮事件处理代码
XML/HTML Codevar myimage=document.getElementById(“myimage”); if (myimage.addEventListener) {
// IE9, Chrome, Safari , Opera
myimage.addEventListener(“mousewheel”,
MouseWheelHandler, false);
//Firefox
myimage.addEventListener(“DOMMouseScrol l”,
MouseWheelHandler, false);
}
// IE6/7/8 else myimage.attachEvent(“onmousewheel”,MouseWheelHandler);
2/4
★精品文档★
为了让不同浏览器都能支持的处理做法
在下面这个案例中我们将对F irefox的detai l值取反然后返回1或者-1的其中一个
XML/HTML Codefunction MouseWheelHandler(e) {
// cross-browser wheel delta
var e =window.event | | e; // old IEsupport
var delta =Math.max(-1 ,Math.min(1 ,(e.wheelDelta| | -e.detai l)));
现在我们直接决定图片的大小范围。以下代码将图片的宽度范围设置在50-800个像素之间
XML/HTML Code
myimage.style.width = Math.max(50,Math.min(800, myimage.width + (30 * delta))) + “px”;
return false;
}
最后一点我们在方法中返回fa lse是为了终止标准的鼠标滚轮事件处理以防它上下滑动网页。
3/4
★精品文档★
4/4
RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...
DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...
bgpto怎么样?bgp.to日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!bgpto主打日本(东京、大阪...