`

js脚本加样式实现 图片剪切

阅读更多

闲来无事 百度加自己理解 写了一个剪切图片的小例子

效果:



 

关键代码如下:

一:样式

 

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

 

 

 

 

  • 大小: 271 KB
1
0
分享到:
评论

相关推荐

    用JavaScript实现图片剪切效果

    - `index.js`是项目的主要脚本,其中包含了图片加载、剪切逻辑和事件监听代码。它使用`FileReader` API读取用户选择的图片,然后将其绘制到`canvas`上。同时,利用jQuery UI的拖拽和缩放功能,用户可以调整裁剪框的...

    h5图片圆形剪切插件

    通过JavaScript,插件能够获取用户上传的图片,然后通过计算和绘制来实现圆形剪切的效果。可能涉及到的技术点包括HTML5的Canvas元素,它是JavaScript进行图形绘制的基础;以及可能用到的SVG(Scalable Vector ...

    jquery+php图片上传并剪切

    在本文中,我们将深入探讨如何使用jQuery、PHP和Ajax实现图片上传及剪切功能。这个技术组合常用于创建用户友好的、动态的Web应用程序,让用户能够方便地上传和编辑图片。 首先,`jQuery`是一个流行的JavaScript库,...

    上传图片并剪切

    以下将详细介绍如何实现"上传图片并剪切"的功能,以及可能涉及到的相关技术。 首先,我们需要一个`&lt;input type="file"&gt;`元素来让用户选择本地的图片文件。这是一个HTML表单元素,允许用户从他们的设备上选择一个或...

    用Canvas+Javascript FileAPI 实现一个图片剪切、滤镜处理、上传下载工具.pdf

    标题中的“用Canvas+Javascript FileAPI 实现一个图片剪切、滤镜处理、上传下载工具”指的是使用HTML5的Canvas元素和File API来创建一个功能丰富的图像编辑应用程序。Canvas是HTML5提供的一种画布,允许开发者通过...

    struts2加jquery加Jcrop实现头像剪切上传项目版(添加jar包部署就可以运行)

    4. **CSS和JavaScript**:包括JQuery库和JCrop插件,以及自定义的样式和交互脚本。 5. **图片处理服务**:在后端,可能有一个服务或者方法来接收裁剪信息,根据这些信息裁剪图片,并保存为头像。 在部署项目时,...

    上传图片 可剪切 可以预览

    在压缩包文件“5c188cabcf1b6”中,可能包含以下内容:HTML文件(如index.html)用于页面结构,JavaScript文件(如script.js)包含了实现这些功能的代码,CSS文件(如style.css)用于样式控制,以及可能的示例图片或...

    js脚本,页面文字选择效果

    在网页开发中,JavaScript(简称JS)是一种必不可少的脚本语言,它被广泛用于实现页面交互和动态功能。本示例关注的是“js脚本,页面文字选择效果”,这是一个关于如何让用户在网页上选择和标记文本的技术。在网页中...

    PHP+cropper+bootstrap实现头像剪切效果

    2. **图片预览**:当用户选择图片后,使用JavaScript读取文件,利用cropper.js显示在页面上,并设置初始裁剪框。 3. **交互操作**:用户可以自由地拖动、缩放、旋转裁剪框,所有操作的结果实时反馈在预览图上。 4....

    前端图片剪切上传支持移动端和PC端

    本文将详细介绍如何实现一个跨平台(H5和PC)的前端图片剪切上传功能,并提供一个名为"EditImage"的示例代码库作为参考。 首先,我们要理解前端图片剪切的核心技术是基于HTML5的Canvas元素。Canvas提供了画布功能,...

    jQuery全屏图片剪切轮播特效.zip

    CSS3引入了许多新的特性和功能,如动画(animation)和转换(transition),这些在全屏图片剪切轮播中起到关键作用,实现了图片的无缝滑动和动态裁剪效果。 在实现这个特效时,开发者可能会使用到以下技术点: 1. ...

    常用的javascript脚本

    若要使弹出窗口总是保持在最前面,通常会使用JavaScript创建新的窗口,并设置`window.open`的参数,但具体的实现方法可能因实际场景而异,这里没有给出具体代码。 这些JavaScript技巧常用于增强网页的交互性和安全...

    常用js脚本收集javascript

    这些脚本主要用于网页设计中的功能增强,涉及禁用右键菜单、阻止选择、图片图标设置、输入控制、框架控制等多个方面。下面将对各个知识点进行详细说明。 ### 知识点1:禁用浏览器上下文菜单(右键菜单) ```...

    JS实现流行的图片上传剪裁功能

    2. JavaScript文件:可能包括第三方剪裁库和自定义的JS代码,用于处理图片和发送请求。 3. PHP文件:接收和处理图片的后端脚本。 4. CSS文件:样式表,用于美化界面。 5. 可能还有其他配置文件或示例图片。 在实际...

    小程序截图插件包:图片裁剪插件,支持自定义尺寸,定点等比例缩放,拖动,图片翻转,剪切圆形、圆角图片,定制样式,功能多性能体验注释

    9. **package.json**:这是一个JavaScript项目的标准配置文件,其中包含了项目依赖、版本信息、脚本命令等。在安装和使用此插件时,开发者需要查看并管理此文件,以确保所有依赖项都已正确安装。 10. **readme.md和...

    三张图片剪切倾斜CSS3特效.zip

    【标题】"三张图片剪切倾斜CSS3特效"是一个网页设计中的特效应用,主要利用了CSS3的新特性来实现图像的动态倾斜效果。在现代网页设计中,这种特效能够为网站增添视觉吸引力,使页面元素更加立体和生动。CSS3是层叠...

Global site tag (gtag.js) - Google Analytics