《jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)_.docx》由会员分享,可在线阅读,更多相关《jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)_.docx(6页珍藏版)》请在三一文库上搜索。
1、jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)_ 本文实例讲解并描述了jQuery实现滚动鼠标放大缩小图片的方法。分享给大家供大家参考,具体如下: 在项目制作过程中,遇到了这么一个需求,就开发了一个,记录一下。 首先,需要定义html元素和css样式: div style=position:relative; asp:Image ID=myImg runat=server Width=670px / span style=position:relative;display:none; background:wheat;border:1px solid gray;padding
2、:3px;overflow:hidden; id=NotificationMsg滚动鼠标中键,可以放大或者缩小图片/span /div 在这个样式中,我设置了图片的样式为670px,目的就是避开图片过大的时候,显示到了页面外部的现象。 然后我用法了一个jquery mousewheel 的插件来解决鼠标中键的滚动问题,下面是具体的jquery操作代码: script type=text/javascript $(document).ready(function() var count = 0; $(#ctl00_ContentPlaceHolder1_myImg).hover(function
3、(e) var left = e.originalEvent.x | e.originalEvent.layerX | 0; /get the left position var top = e.originalEvent.y | e.originalEvent.layerY | 0; /get the top position $(#NotificationMsg).css( position: absolute, left: left, top: top ); $(#NotificationMsg).css(display, block); , function() /alert(mous
4、erout); $(#NotificationMsg).css(display, none); ).mousewheel(function(event, delta, deltaX, deltaY) count+; var height = $(this).attr(height); /get initial height var width = $(this).attr(width); / get initial width var stepex = height / width; /get the percentange of height / width var minHeight =
5、150; / min height var tempStep = 50; / evey step for scroll down or up $(this).removeAttr(style); if (delta = 1) /up $(this).attr(height, height + count * tempStep); $(this).attr(width, width + count * tempStep / stepex); else if (delta = -1) /down if (height minHeight) $(this).attr(height, height -
6、 count * tempStep); else $(this).attr(height, tempStep); if (width minHeight / stepex) $(this).attr(width, width - count * tempStep / stepex); else $(this).attr(width, tempStep / stepex); event.preventDefault(); count = 0; ); ); /script 在这段代码中,利用了originalEvent函数来猎取鼠标所处的位置,在IE9和firefox下面测试是可以用法的: var
7、 left = e.originalEvent.x | e.originalEvent.layerX | 0; /get the left position var top = e.originalEvent.y | e.originalEvent.layerY | 0; /get the top position 然后在代码中,我进行了如下的操作来确定图片的初始高度和宽度以及图片显示的宽高比(目的是实现等比例缩放): var height = $(this).attr(height); /get initial height var width = $(this).attr(width);
8、/ get initial width var stepex = height / width; /get the percentange of height / width var minHeight = 150; / min height var tempStep = 50; / every step for scrolling down or up $(this).removeAttr(style); 其中,tempStep主要是为了实现滚动的时候,能够进行缩小和放大的比率值。做了这之后,我移除了image的width样式,主要是为了实现放大或者缩小。 if (delta = 1) /u
9、p $(this).attr(height, height + count * tempStep); $(this).attr(width, width + count * tempStep / stepex); else if (delta = -1) /down if (height minHeight) $(this).attr(height, height - count * tempStep); else $(this).attr(height, tempStep); if (width minHeight / stepex) $(this).attr(width, width - count * tempStep / stepex); else $(this).attr(width, tempStep / stepex); event.preventDefault(); count = 0; 上面这段就比较简洁了,主要是进行上下滚动推断,然后等比例放大或者缩小图片。event.preventDefault()可以保证在滚动图片的过程中,页面不会随之滚动。 盼望本文所述对大家jQuery程序设计有所关心。 .