本文实例讲述了jQuery自定义图片缩放拖拽插件imageQ实现方法。分享给大家供大家参考,具体如下:
综合网上一些代码 自己写的一个图片缩放拖拽的小插件
/** * * <a href="http://lib.csdn.net/base/22" class='replace_word' title="jQuery知识库" target='_blank' style='color:#df3434; font-weight:bold;'>jQuery</a> imageQ plugin * @name jquery-imageQ.js * @author Q * @date 2011-01-19 * maxRatio 最大放大比例 * minRatio 最小缩小比例 * changeRadio 每次变化幅度 * picUrl:图片地址, * picWidth:图片宽度, * picHeight:图片高度, * reset:是否重设图片 * */ (function($){ var status = false; $.fn.imageQ = function(options){ var defaults = { maxRatio:4, minRatio:4, changeRadio:0.2, picUrl:'', picWidth:306, picHeight:372, reset:false } var options=jQuery.extend(defaults,options); return this.each(function(){ status = true; $(this).attr('src',''); $(this).attr('src',options.picUrl); var naturalwidth = options.picWidth; var naturalheight = options.picHeight; var minwidth = Math.round(naturalwidth/options.minRatio); var minheight = Math.round(naturalheight/options.minRatio); var maxwidth = Math.round(naturalwidth*options.maxRatio); var maxheight = Math.round(naturalheight*options.maxRatio); if(options.reset) { $("#wrapDiv").css("width",naturalwidth+"px"); $("#wrapDiv").css("height",naturalheight+"px"); $("#wrapDiv").css("top",'0px'); $("#wrapDiv").css("left",'0px'); } else { $(this).css("width","100%"); $(this).css("height","100%"); $(this).wrap("<div id='wrapDiv' style='-moz-user-select: none;width:"+naturalwidth+"px;height:"+naturalheight+"px;cursor:move;position:relative;top:0px;left:0px;visibility: visible;' ondragstart='return false;' onselectstart='return false;'></div>"); $("#wrapDiv").before('<div style="visibility: visible; height: 26px; width: 78px; display: block; position: absolute; line-height: 1px; cursor: pointer; left: 0px; top: 0px;z-index:1;"><div id="plusTool"></div><div id="minusTool"></div><div id="moveTool"></div></div>'); //$("#wrapDiv").append('<div style="display: block; position: relative; left: 0px; top: 0px; width: 100%; height: 100%; -moz-user-select: none;" id="uploaduserpng"></div>'); $("#plusTool").attr('title','放大'); $("#minusTool").attr('title','缩小'); $("#moveTool").attr('title','拖动'); $("#plusTool").bind("click",function(){ _changeOperate('plus'); }); $("#minusTool").bind("click",function(){ _changeOperate('minus'); }); $("#moveTool").bind("click",function(){ _changeOperate('move'); }); function plusOperate() { $("#wrapDiv").unbind(); $("#wrapDiv").unbind(); $("#wrapDiv").bind("click",function(){ var h = $("#wrapDiv").height(); var w = $("#wrapDiv").width(); if(Math.round(h*(1+options.changeRadio)) >= maxheight) { var newH = maxheight; } else { var newH = Math.round(h*(1+options.changeRadio)); } if(Math.round(w*(1+options.changeRadio)) >= maxwidth) { var newW = maxwidth; } else { var newW = Math.round(w*(1+options.changeRadio)); } $("#wrapDiv").css("width",newW+"px"); $("#wrapDiv").css("height",newH+"px"); }); } function minusOperate() { $("#wrapDiv").unbind(); $("#wrapDiv").unbind(); $("#wrapDiv").bind("click",function(){ var h = $("#wrapDiv").height(); var w = $("#wrapDiv").width(); if(Math.round(h*(1-options.changeRadio)) <= minheight) { var newH = minheight; } else { var newH = Math.round(h*(1-options.changeRadio)); } if(Math.round(w*(1-options.changeRadio)) <= minwidth) { var newW = minwidth; } else { var newW = Math.round(w*(1-options.changeRadio)); } $("#wrapDiv").css("width",newW+"px"); $("#wrapDiv").css("height",newH+"px"); }); } function moveOperate() { $("#wrapDiv").unbind(); var _move = false; var _x,_y; $("#wrapDiv").bind("mousedown",function(e){ _setCursor('grabbing'); _move = true; if(!document.all) { _x = e.pageX - parseInt($("#wrapDiv").css("left")); _y = e.pageY - parseInt($("#wrapDiv").css("top")); } else { var pagex = e.clientX+(document.documentElement.scrollLeft"#wrapDiv").css("left")); _y = pagey - parseInt($("#wrapDiv").css("top")); } }); $("#wrapDiv").bind("mouseup",function(e){ _setCursor('grab'); _move = false; }); $("#wrapDiv").bind("mousemove",function(e){ if(_move) { if(!document.all) { var pagex = e.pageX; var pagey = e.pageY; } else { var pagex = e.clientX+(document.documentElement.scrollLeft"#wrapDiv").css("top",y); $("#wrapDiv").css("left",x); } }); } function _setCursor(type){ $("#wrapDiv").css("cursor","url('images/cursors/"+type+".cur'),default"); } function _changeOperate(operate) { if(operate == 'plus') { _setCursor('zoom-in'); plusOperate(); } if(operate == 'minus') { _setCursor('zoom-out'); minusOperate(); } if(operate == 'move') { _setCursor('grab'); moveOperate(); } } } }); }; $.fn.imageQ.getStatus = function() { return status; }; })(jQuery);
完整实例代码点击此处本站下载。
PS:在此小编为大家推荐几款javascript格式化美化工具,相信在以后的开发中可以派上用场:
C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
在线JavaScript代码美化、格式化工具:
http://tools.jb51.net/code/js
JavaScript代码美化/压缩/格式化/加密工具:
http://tools.jb51.net/code/jscompress
在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json
json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery常用插件及用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery中Ajax用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 【原神】V5.1攻略 | 纳西妲一图流攻略
- 群星.2003-重遇80·感动今天的都市人2CD【SONY】【WAV+CUE】
- 希文.2024-沉溺【StreetVoice】【FLAC分轨】
- 韩红.2005-精丫麒麟童】【WAV+CUE】
- 2D像素风日式美学动作游戏《雨魂》将登陆Xbox Series
- 《龙腾世纪4》评分造假?仅将评测代码给好评媒体!
- 《怪猎荒野》推出蜘蛛恐惧症设定 蜘蛛秒变史莱姆
- 《张韶涵单8CD+无损单曲合集》[WAV/FLAC][6.5G]
- 自然声带《大自然 雨声 白噪音》[320K/MP3][135.32MB]
- 自然声带《大自然 雨声 白噪音》[FLAC/分轨][416.27MB]
- 2024年度计划曝光!《暗黑破坏神:不朽》X《魔兽世界》11月开启联动
- 逆流而上!成都Wolves后发制人韧性十足!——《第五人格》2024秋季赛第四周赛报
- 复归之刻,七烛庆典,狼人杀七周年掌门表演赛活动来袭!
- 炉石传说野兽流最终阵容推荐 酒馆战棋野兽流最终阵容图文一览
- 炉石传说野猪人流最终阵容推荐 酒馆战棋野猪人流最终阵容图文一览