鼠标滚轮实现图片的缩放-------Day79

今天是7月的最后一天了,不得不说,我定下的七月份剩余几天的计划是完不成了,一则工作确实紧了些,再则没能处理好生活、工作和学习的节奏,这才是人生最大的课题吧,不过也还好,至少自己还在坚持着,其实真的越来越感觉到自己的不足,可昂扬的斗志却是越来越低沉的迹象,内心里总有个声音在蛊惑自己:别整那些刻意的东西,做给谁看啊,而且刻意的记录的时间完全可以拿来学更多的东西,可最终我还在这个蛊惑前坚持着:确实可以腾出更多的时间来,也没人会在意在做什么,可是,同样,我不需要走那么快,而且只要知道自己在意就好了,我需要的就是这样一步一步走下去,这条路,才刚刚开始。

“滚轮滑动操作图片缩放”这个功能是我在网上无意中发现的,实际在想的过程中没有想到它的实用点在哪,不过还觉得蛮酷的就学习了下,这里也来记录下:

功能介绍:

将鼠标放在图片上,滚轮向上滑动,则图片不断变大,滚轮向下滑动,则图片不断减小

功能拆解分析:

1、第一个要关注的,就是获取滚轮事件的监听,能够获取到滚轮是在上滑还是下滑;

2、随着事件发生的不同,图片不断增加或者减少;

实例分析:

<img id="img" src="run.gif" alt="跑" />

这样我们先在html中放置一个图片,并对它进行样式上的设置

<style type="text/css">
* { margin:0; padding:0; }
body { width:100%; height:100%; overflow:auto; }
#img { display:block; width:20%; margin:20px auto; cursor:-webkit-zoom-in; cursor:-moz-zoom-in; border:4px solid #ccc; border-radius:4px; }
</style>

给图片加边框,是为了更好的观察增大减小的幅度,再有个比较经典的地方就是cursor,这个应该有很多种样式,合理的这个应用会加分很多啊,然后我们来实现功能

window.onload = function(){
		var img = document.getElementById("img");
		if(img.addEventListener){
			//ie9,chrome,safari,opera
			img.addEventListener("mousewheel",change,true);
			//firefox
			img.addEventListener("DOMMouseScroll",change,false);
		}
		else{
			//ie 6/7/8
			img.attachEvent("onmousewheel",change);
		}

首先就是加监听,前面在记录中曾经提到过,一方面是兼容性中的addEventListener和attachEvent不同的方法,另一方面是传递的参数,这个是比较容易出现问题的地方

1、首先在第一个参数中addEventListener中是单纯的事件名称,像mousewheel,而attachEvent中的第一个参数则是事件,像onmousewheel;

2、addEventListener中存在三个参数,第三个是个boolean值,而且必须写,false表示支持浏览器事件的冒泡功能(由里向外),true则表示浏览器事件的捕获功能(由外向里)【这个地方还没有理解透,啥不同呢,回头再分析吧】

3、兼容性,当时的楼主很全面的兼容了五大浏览器,让我这后来人占了好大便宜,赚到了

监听实现了之后,我们就要根据不同的事件作出不同的回应,这个就该写在我们的方法change()中了

function change(e){
			var e = window.event||e;
			var oper = Math.max(-1, Math.min(1,(e.wheelDelta || -e.detail)));//wheelDelta和detail
			img.style.width = Math.max(50, Math.min(800,img.width + (30*oper)))+"px";
			return false;
		}

这个方法中,首先学到的是Math.max()和Math.min()两个方法,然后就是逻辑和兼容了

1、Math.max(a,b,c,d)参数可以取多个,取若干值中最大值,当然min就是对应的取最小值嘛;

2、e.wheelDelta||-e.detail,这个又是兼容性的表现了,貌似只有Firefox中使用detail,其他的都是wheelDelta,两者的意义都一样的,都有两个值,但是两个值是不同的detail只能取+/- 3,而wheelDelta则只能取+/- 120,但同样的是整数表示向上,负数表示向下;

3、剩余的逻辑就不说了,已经写的很简单明了了

时间又不早了,赶在月末发了这篇吧,准备迎接崭新的八月...

鼠标滚轮实现图片的缩放-------Day79,布布扣,bubuko.com

时间: 2024-10-07 14:21:39

鼠标滚轮实现图片的缩放-------Day79的相关文章

用jQuery实现 使用鼠标滚轮对外部图片进行缩放

<div mag-thumb="outer"> <img src="img/alley/500x300.jpg" /> </div> <div style="width: 300px; height: 300px;"> <div mag-zoom="outer"> <img src="img/alley/1000x600.jpg" />

鼠标滚轮实现图片缩放

<img id="myimage" src="images/pic.jpg" alt="my image" />    <script type="text/javascript">        //添加鼠标滚轮事件处理代码        var myimage = document.getElementById("myimage");        if (myimage.add

百度地图实时侦听鼠标滚轮获取地图zoom缩放级别

百度地图api提供的获取地图缩放级别的方法比较单一,就一个getZoom()方法,这个方法能够获取一次地图缩放级别,后面随着鼠标滚轮的滚动,地图缩放级别被改变,就无法再获取地图缩放级别了,具体api参考:http://developer.baidu.com/map/reference/index.php?title=Class:%E6%9E%81%E9%80%9F%E7%89%88%E6%A0%B8%E5%BF%83%E7%B1%BB/map 如题,若想实时获取地图的缩放级别,小博主是这样做的,

鼠标滚轮改变图片大小

<!DOCTYPE html"> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>通过鼠标滚动-放大缩小图片</title> <meta name="description&

鼠标滚轮调整图片大小

=======粘贴以下代码,保存为html文件可直接运行查看效果======= <html> <head> <title>鼠标滚动调整图片大小</title> <script language="javascript"> <!-- var count = 10; function resizeimg(oImage) { count = Counting(count); Resize(oImage,count); retu

js 鼠标滚轮控制图片放大缩小

<img :src="ImgUrl" alt="" width="100%" @mousewheel="zoomimg($event)" id="ScrollImg"> // 缩放图片 zoomimg(event) { var delta = 0; if (!event) event = window.event; if (event.wheelDelta) { delta = event.wh

鼠标滚轮图片放大缩小功能,使用layer弹框后不起作用

今天在项目中遇到的一个问题:点击按钮使用layer弹框弹出一张图片,需要加一个鼠标滚轮放大缩小,图片也跟着放大缩小的功能.于是在网上找了一个demo. DEMO: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="

echarts区域缩放(鼠标滚轮、滚动条、拉选框)

当一个echarts图表上的数据很多时,想要查看部分区域的数据状态,可以通过数据区域缩放来实现,现总结三个方法: 鼠标滚轮缩放: var arr = []; for(var i = 0;i<15;i++){ arr.push(10*(Math.random()-0.5)) } myCharts.setOption({ title:{ text:"鼠标滚轮缩放数据" }, tooltip:{ trigger:'axis' }, xAxis:{ data:[1,2,3,4,5,6,7

支持鼠标滚轮图片自适应的焦点图代码等

支持鼠标滚轮图片自适应的焦点图代码 支持鼠标滚轮图片自适应的焦点图代码,纯JS构建,可用键盘左右键切换图片,倒序回滚,另外鼠标停止响应后可自动播放功能,兼容主流浏览器,懒人图库推荐下载! 使用方法: 1.在head区域引入样式表文件lrtk.css 2.在head区域引入lrtk.js 3.在你的网页中加入<!-- 代码 开始 --><!-- 代码 结束 -->注释区域代码即可 4.修改间隔时间和自动播放倒计时时间,请打开lrtk.js根据注释提示修改 5.去掉首页文字提示后,请注