闲来无事 百度加自己理解 写了一个剪切图片的小例子
效果:
关键代码如下:
一:样式
body{background:#333} .box{position: absolute;top:100px;left:200px;} #preview{position:absolute ;top:100px; left:600px} .main{position: absolute;width: 200px;height: 200px;border:1px solid #fff;z-index: 2;cursor: move} img{position: absolute;z-index: 1} .img1{opacity: 0.6} #preview{position: absolute;top:100px;left:680px;width:460px;height:360px;} #preview #img3{position: absolute;top:0;left:0;}
二:页面html
<body style="cursor: auto;"> <!--上部分 原始图--> <div id="box" class="box"> <img class="img1" id="sourceImg" src="img/9f510fb30f2442a7a75aaf95d243ad4bd11302ad.jpg" /> </div> <div id="preview"> </div> </body>
三:js脚本
<script type="text/javascript"> <!-- $(function(){ var count =0; var sourceImg = $("#sourceImg"); //添加一个可选区域到图片上 var box = $("#box"); var mainDiv = $('<div class="main" id="main"></div>'); mainDiv.draggable( { containment: 'parent',drag: function(){ try{ console.log("移动-->"+count); count++; } catch (e){} } }); box.append(mainDiv); var preview = $("#preview"); var previewImg = $('<img id="img3" class="" />'); previewImg.attr('src',sourceImg.attr('src')); preview.append(previewImg); //初始化设置位置,及缩略图 setPosition(mainDiv,previewImg); //鼠标相关事件 mainDiv.ready(function(){ var isDown = false; //按键 mainDiv.bind("mousedown", function(){ isDown = true; }); //按键释放 mainDiv.bind("mouseup", function(){ isDown = false; }); mainDiv.bind("mousemove", function(){ //在按键未被释放的移动过程中 重置位置,及缩略图 if(isDown){ setPosition($(this),previewImg); } }); }); function setPosition($mainDiv,$img){ //通过jQuery对象转换成 Dom对象 var mainDiv = $mainDiv.get(0); var img = $img.get(0); //获取偏移量 var top = mainDiv.offsetTop; var right = mainDiv.offsetLeft+mainDiv.offsetWidth; var bottom = mainDiv.offsetTop+mainDiv.offsetHeight; var left = mainDiv.offsetLeft; //重新设定 图片的左上 坐标, 否则显示的缩略图会动(感兴趣的可以把下面两段话注释看效果) img.style.top = -top+"px"; img.style.left = -left+"px"; img.style.clip = "rect("+top+"px,"+right+"px,"+bottom+"px,"+left+"px)"; } }); //--> </script>
四:关键点
- mainDiv.draggable(); jQuery-ui功能, 支持Dom元素拖拽
- img.style.clip = "rect("+top+"px,"+right+"px,"+bottom+"px,"+left+"px)"; 设置 图片的剪切
- cursor: move 样式,元素的鼠标放上去样式,显示可移动
- .img1{opacity: 0.6} 透明度
完整代码见附件:
http://dl.iteye.com/topics/download/ab31c2e1-21e9-352b-9219-60f08876e27e
相关推荐
- `index.js`是项目的主要脚本,其中包含了图片加载、剪切逻辑和事件监听代码。它使用`FileReader` API读取用户选择的图片,然后将其绘制到`canvas`上。同时,利用jQuery UI的拖拽和缩放功能,用户可以调整裁剪框的...
通过JavaScript,插件能够获取用户上传的图片,然后通过计算和绘制来实现圆形剪切的效果。可能涉及到的技术点包括HTML5的Canvas元素,它是JavaScript进行图形绘制的基础;以及可能用到的SVG(Scalable Vector ...
在本文中,我们将深入探讨如何使用jQuery、PHP和Ajax实现图片上传及剪切功能。这个技术组合常用于创建用户友好的、动态的Web应用程序,让用户能够方便地上传和编辑图片。 首先,`jQuery`是一个流行的JavaScript库,...
以下将详细介绍如何实现"上传图片并剪切"的功能,以及可能涉及到的相关技术。 首先,我们需要一个`<input type="file">`元素来让用户选择本地的图片文件。这是一个HTML表单元素,允许用户从他们的设备上选择一个或...
标题中的“用Canvas+Javascript FileAPI 实现一个图片剪切、滤镜处理、上传下载工具”指的是使用HTML5的Canvas元素和File API来创建一个功能丰富的图像编辑应用程序。Canvas是HTML5提供的一种画布,允许开发者通过...
4. **CSS和JavaScript**:包括JQuery库和JCrop插件,以及自定义的样式和交互脚本。 5. **图片处理服务**:在后端,可能有一个服务或者方法来接收裁剪信息,根据这些信息裁剪图片,并保存为头像。 在部署项目时,...
在压缩包文件“5c188cabcf1b6”中,可能包含以下内容:HTML文件(如index.html)用于页面结构,JavaScript文件(如script.js)包含了实现这些功能的代码,CSS文件(如style.css)用于样式控制,以及可能的示例图片或...
在网页开发中,JavaScript(简称JS)是一种必不可少的脚本语言,它被广泛用于实现页面交互和动态功能。本示例关注的是“js脚本,页面文字选择效果”,这是一个关于如何让用户在网页上选择和标记文本的技术。在网页中...
2. **图片预览**:当用户选择图片后,使用JavaScript读取文件,利用cropper.js显示在页面上,并设置初始裁剪框。 3. **交互操作**:用户可以自由地拖动、缩放、旋转裁剪框,所有操作的结果实时反馈在预览图上。 4....
本文将详细介绍如何实现一个跨平台(H5和PC)的前端图片剪切上传功能,并提供一个名为"EditImage"的示例代码库作为参考。 首先,我们要理解前端图片剪切的核心技术是基于HTML5的Canvas元素。Canvas提供了画布功能,...
CSS3引入了许多新的特性和功能,如动画(animation)和转换(transition),这些在全屏图片剪切轮播中起到关键作用,实现了图片的无缝滑动和动态裁剪效果。 在实现这个特效时,开发者可能会使用到以下技术点: 1. ...
若要使弹出窗口总是保持在最前面,通常会使用JavaScript创建新的窗口,并设置`window.open`的参数,但具体的实现方法可能因实际场景而异,这里没有给出具体代码。 这些JavaScript技巧常用于增强网页的交互性和安全...
这些脚本主要用于网页设计中的功能增强,涉及禁用右键菜单、阻止选择、图片图标设置、输入控制、框架控制等多个方面。下面将对各个知识点进行详细说明。 ### 知识点1:禁用浏览器上下文菜单(右键菜单) ```...
2. JavaScript文件:可能包括第三方剪裁库和自定义的JS代码,用于处理图片和发送请求。 3. PHP文件:接收和处理图片的后端脚本。 4. CSS文件:样式表,用于美化界面。 5. 可能还有其他配置文件或示例图片。 在实际...
9. **package.json**:这是一个JavaScript项目的标准配置文件,其中包含了项目依赖、版本信息、脚本命令等。在安装和使用此插件时,开发者需要查看并管理此文件,以确保所有依赖项都已正确安装。 10. **readme.md和...
【标题】"三张图片剪切倾斜CSS3特效"是一个网页设计中的特效应用,主要利用了CSS3的新特性来实现图像的动态倾斜效果。在现代网页设计中,这种特效能够为网站增添视觉吸引力,使页面元素更加立体和生动。CSS3是层叠...