引入我写的基样式

<link href="http://120.26.59.104/base.css" rel="stylesheet" type="text/css" />

css部分

<style>.imgWap{ width:500px; height:600px; border:1px solid #ddd; position:relative;}.imgWap .img{ position:absolute; top:10px; left:10px;}.imgWap .img img{ width:100%; height:100%;}.imgWap .img .zhuan,.imgWap .img .suo,.imgWap .img .shan{ position:absolute; width:58px; height:58px;}.imgWap .img .zhuan{ top:-29px; left:-29px; background:url(http://120.26.59.104/bankcard/images/zhuan.png);cursor:se-resize}.imgWap .img .suo{ bottom:-29px; right:-29px;background:url(http://120.26.59.104/bankcard/images/suo.png); cursor:se-resize}.imgWap .img .shan{ top:-29px; right:-29px;background:url(http://120.26.59.104/bankcard/images/shan.png); cursor:pointer}</style>

html部分

<div class="imgWap"><div class="img" style="width:200px; height:200px;"><div class="zhuan"></div><div class="suo"></div><div class="shan"></div><img src="http://g.hiphotos.baidu.com/image/h%3D300/sign=543efd1b2b738bd4db21b431918a876c/f7246b600c3387446572adba540fd9f9d62aa045.jpg" draggable="false" /></div>
</div>

引入用到的在线js插件

<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://www.ablanxue.com/uploadfile/201405/14002000656579086/ablanxue/js/jQueryRotate.2.2.js"></script>

js部分(拖拽,旋转,删除,缩放)

//调用方法
drag($(".imgWap"),$(".imgWap .img"));function drag($outTar,$imgWap){var _tarWidth,_tarHeight;var _outWidth = $outTar.width();var _outHeight = $outTar.height();//拖拽$(document).mousemove(function(e) {if (!!this.move) {var posix = !document.move_target ? {'x': 0, 'y': 0} : document.move_target.posix,callback = document.call_down || function() {var _top;var _left;_tarWidth = $(this.move_target).width(),_tarHeight = $(this.move_target).height();var _maxWidth = _outWidth - _tarWidth;var _maxHeight = _outHeight - _tarHeight;_top = e.pageY - posix.y;_left = e.pageX - posix.x;if((e.pageY - posix.y)<0){_top = 0}else if((e.pageY - posix.y)>_maxHeight){_top = _maxHeight};if((e.pageX - posix.x)<0){_left = 0}else if((e.pageX - posix.x)>_maxWidth){_left = _maxWidth};$(this.move_target).css({'top': _top,'left': _left});};callback.call(this, e, posix);}}).mouseup(function(e) {if (!!this.move) {var callback = document.call_up || function(){};callback.call(this, e);$.extend(this, {'move': false,'move_target': null,'call_down': false,'call_up': false});}});var $box = $imgWap.mousedown(function(e) {$this = $(this);var position = $(this).position();this.posix = {'x': e.pageX - position.left, 'y': e.pageY - position.top};$.extend(document, {'move': true, 'move_target': this});})//旋转$imgWap.on('mousedown', '.zhuan', function(e) {var _pageX;//鼠标x距离var _pageY;//鼠标y距离var _offX;//顶点x距离,固定的var _offY;//顶点x距离,固定的var _oX;//中心点坐标,固定的var _oY;//中心点坐标,固定的_offX = $imgWap.offset().left;_offY = $imgWap.offset().top;$.extend(document, {'move': true, 'call_down': function(e) {_pageX = e.pageX;_pageY = e.pageY;_oX = $imgWap.width()/2+_offX;_oY = $imgWap.height()/2+_offY;var _jiaodu;var _plusJiaodu;var a,b,c;a = Math.abs(_oY - _pageY);b = Math.abs(_oX - _pageX);//第一象限_plusJiaodu = Math.atan(($imgWap.height()/2)/($imgWap.width()/2))*180/Math.PI;_jiaodu = Math.atan(a/b)*180/Math.PI;if(_pageX<_oX&&_pageY<_oY){console.log("第一象限")_jiaodu = _jiaodu -_plusJiaodu}//第二象限if(_pageX>_oX&&_pageY<_oY){console.log("第二象限:")_jiaodu = 180 - _jiaodu - _plusJiaodu}//第三象限if(_pageX>_oX&&_pageY>_oY){console.log("第三象限")_jiaodu = 180 + _jiaodu -_plusJiaodu}//第四象限if(_pageX<_oX&&_pageY>_oY){console.log("第四象限:"+_jiaodu)_jiaodu = 360 - _jiaodu -_plusJiaodu}console.log(_jiaodu)$imgWap.rotate(_jiaodu)}});return false;});//缩放$imgWap.on('mousedown', '.suo', function(e) {var posix = {'w': $imgWap.width(), 'h': $imgWap.height(), 'x': e.pageX, 'y': e.pageY};$.extend(document, {'move': true, 'call_down': function(e) {var width = Math.max(50, e.pageX - posix.x + posix.w)if(width>718){width=718}$imgWap.css({'width': width,'height': width});}});return false;});//删除$imgWap.on('mousedown', '.shan', function(e) {$imgWap.remove();});
};

转载于:https://www.cnblogs.com/wangmiao2606/p/4680895.html

图片旋转,拖拽,缩放,删除一体相关推荐

  1. 安卓开发仿微信图片拖拽_Android 仿微信朋友圈发表图片拖拽和删除功能

    朋友圈实现原理 我们使用 Android Device Monitor 来分析朋友圈发布图片的界面实现原理.如果需要分析其他应用的界面实现也是采用这种方法哦. 打开 Android Device Mo ...

  2. Android 仿微信朋友圈发表图片拖拽和删除功能

    朋友圈实现原理 我们使用 Android Device Monitor 来分析朋友圈发布图片的界面实现原理.如果需要分析其他应用的界面实现也是采用这种方法哦. 打开 Android Device Mo ...

  3. 安卓开发仿微信图片拖拽_仿微信朋友圈发表图片拖拽和删除功能

    原标题:仿微信朋友圈发表图片拖拽和删除功能 中国联通在香港公布了上市公司2017年中期业绩.2017年上半年,公司主要业绩指标持续向好,收入稳步回升,服务收入达到人民币1,241.1亿元,同比增长3. ...

  4. H5头像完整制作,可拖拽缩放,可添加装饰图标(装饰图标支持缩放、旋转、拖拽)

    H5头像制作类的程序本以为到处都可以搜索到,可是真写这个项目的时候才发现太困难了,因为根本没有现成的功能模块可以拼凑,着实费了不少力气,好在最终圆满交工. 还是先看效果 源码获取渠道 小程序内联系客服 ...

  5. hammer.js移动端拖拽缩放旋转元素

    第一步 下载hammer.js并引入 下载地址可以是:http://hammerjs.github.io/ 第二步 复制下面这些代码,放在你的js里面 function drag(drag){var ...

  6. Hammer.js - 旋转 拖拽 移动 缩放

    感觉移动端原生支持的 touch.tap.swipe 几个事件好像还不够用,某些时候还会用到诸如缩放.长按等其他功能. 学习了一个手势库 Hammer.js,它是一个轻量级的触屏设备手势库,能识别出常 ...

  7. 拖拽删除元素、拖拽排序、拖拽预览图片和拖拽移动元素

    介绍 HTML5 提供了专门的拖拽与拖放的 API,目前各浏览器都已支持,包括 IE.HTML 拖放(Drag and Drop)接口使应用程序能够在浏览器中使用拖放功能.例如,用户可使用鼠标选择可拖 ...

  8. 关于PyQt5在Label标签插入图片并且实现图片的拖拽和缩放

    作为菜鸟为了实现这两个功能,肯定是要借鉴一下大佬的文章的,下面的链接就是我思路的源头: https://blog.csdn.net/qq_36780295/article/details/108844 ...

  9. 原生js实现canvas画布中绘制、移动、拖拽、删除矩形(如简易截图工具)

    功能描述 待图片上传并加载完成后,重新生成画布: 鼠标在画布区域内绘制,移动,拖拽,删除矩形(如截图工具一般): isboundary() 判断是否需要判断边界问题,默认false. 效果截图 实现代 ...

  10. android 选择相册拍照图片 仿gridview九宫格 recycleview九宫格图片(可拖拽)

    九宫格图片(可拖拽) 自己项目用到的一个功能 实现九宫格显示图片 支持拍照和图库,可以拖拽排序.基本可以直接在项目使用 上图: [下载地址(CSDN竟然不能选择下载0资源积分)] 下载地址(githu ...

最新文章

  1. glibc降级后怎么恢复 linux_Linux(CentOS)GLIBC出错补救方式
  2. 最新剑桥《AI全景报告》出炉:中国发表机器学习学术研究超过美国
  3. java 月份起止时间_java已知时间的本周,本月,本年的起始时间
  4. python入门有基础-Python入门必须知道的11个知识点
  5. android对应的java版本_Android Studio gradle插件版本和gradle版本对应关系
  6. VMware手动启动USB Arbitration Service
  7. 从零开始入门 K8s | 可观测性:监控与日志
  8. lru页面置换算法_C|内存管理|从LRU王国到NRU王国
  9. JZOJ__Day 2:【NOIP普及模拟】分数
  10. MySql分表、分库、分片和分区知识(转载)
  11. C++primer第15章节详解面向对象程序设计
  12. mysql 取年月日 语句_MySQL学习从这里出发!
  13. 【分享-EasyRecovery】删除的文件找不回?不存在的!
  14. entity framework扩展实战,小项目重构,不折腾
  15. python最优分箱计算iv值_基于sklearn决策树的最优分箱与IV值计算-Python实现
  16. w10计算机名重新启动此计算机后,win10电脑关机后自动重启怎么回事?原因与解决办法...
  17. 3d max 材质编辑器操作实例——自定义球
  18. Java2实用教程第五版+第七章习题答案
  19. 勒让德Legendre变换
  20. 暗黑如何修改服务器爆率,暗黑破坏神百倍爆率补丁

热门文章

  1. Visual Studio 2017 设置失败、安装失败的解决方法
  2. 【追一科技】NLG技术:文本生成技术多样化应用的探索之路
  3. 2021年NLP重要国际会议时间
  4. 【工大SCIR笔记】多模态信息抽取简述
  5. 【BERT中文改进版】预训练ALBERT模型:参数更少,效果更好,拿下13项NLP任务
  6. AAAI 2019 使用循环条件注意力结构探索回答立场检测任务
  7. 人情味,让你的内容脱颖而出
  8. 程序员修炼道路上的“葵花宝典”——博文视点大讲堂42期快乐结束
  9. 《葵花宝典:WPF自学手册》三大网点书评集萃
  10. 《我也能做CTO之程序员职业规划》之六:灵商