`

js 拖拽,按等比例放大,缩小,任意修改图片大小,保存到word中

 
阅读更多
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=gb2312;" />
    <title>拖拽,按等比例放大,缩小,任意修改图片大小</title>
    <meta name="Keywords" content="图片拖拽,图片扥等比缩放" />
    <meta name="Description" content="在页面上实现图片拖拽并可以随意调整图片大小。 但如果按住Ctrl键之后,当再调整图片大小的时候需要按照比例进行调整。" />
  </head>
  <body>
  	<style type="text/css">
			.chr{cursor:e-resize;}
			.cvr{cursor:s-resize;}
			.cner{cursor:ne-resize;}
			.cnwr{cursor:nw-resize;}
			.cdft{cursor:default;}
			.cmove{cursor:move;}
    </style>
    <input type="button" onclick="javascript:makeWord();" value="导出页面到Word"> 
		<img src="f:\\xnh.jpg" alt="PS梦幻效果" style="width:300px;position:absolute;left:100;top:100px;" id="imgsrc" class="cdft" />
		<script type="text/javascript">
			var img=document.getElementById('imgsrc');
			var span=10;
			var isDrag=null;
			var isIE=!!document.all;
			var ox,oy,ex,ey,ow,oh,chrPosX=false,chrPosY=false;
			var percent=img.offsetHeight/img.offsetWidth;
			function mouseMove(e){
			  e=e||event;
			  var x=e.offsetX||e.layerX,y=e.offsetY||e.layerY,imgW=img.offsetWidth,imgH=img.offsetHeight;
			  if((x<=span&&y<=span)||(x>=imgW-span&&y>=imgH-span))img.className='cnwr';
			  else if((x<=span&&y>=imgH-span)||(y<=span&&x>=imgW-span))img.className='cner';
			  else if(x<=span||x>=imgW-span)img.className='chr';
			  else if(y<=span||y>=imgH-span)img.className='cvr';
			  else img.className='cdft';
			  
			}
			function mouseDown(e){
			  e=e||event;
			  ex=e.clientX;//保存当前鼠标X轴的坐标
			  ey=e.clientY;//保存当前鼠标y轴的坐标
			  ox=parseInt(img.style.left);
			  oy=parseFloat(img.style.top);
			  if(img.className=='cdft'){
			    isDrag=true;
			    img.className='cmove';
			  }
			  else{
			    isDrag=false;
			    oh=img.offsetHeight;//获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
			    ow=img.offsetWidth;
			    var x=e.offsetX||e.layerX,y=e.offsetY||e.layerY;//相对容器的水平坐标,相对容器的垂直坐标
			    chrPosX=x<=span;
			    chrPosY=y<=span;
			    if(e.ctrlKey){//事件属性可返回一个布尔值,指示当事件发生时,Ctrl 键是否被按下并保持住
			       ow=oh/percent;//根据比例计算出宽度
			       img.style.width=ow;//更新图片宽度
			    }
			  }
			  if(isIE)img.setCapture();  
			  document.onmousemove=mouseDownAndMove;
			  img.onmousemove=null;
			  return false;
			}
			function mouseDownAndMove(e){
			  e=e||event;
			  if(isDrag===true){
			    img.style.left=ox+e.clientX-ex+'px';
			    img.style.top=oy+e.clientY-ey+'px';
			  }
			  else if(isDrag===false){
			    var x=e.clientX-ex,y=e.clientY-ey;
			    switch(img.className){
			      case 'chr':
			        x=chrPosX?-x:x;
			        y=e.ctrlKey?percent*x+oh:oh;
			        img.style.width=ow+x+'px';
			        img.style.height=y+'px';
			        if(chrPosX)img.style.left=ox-x+'px';
			        break;
			      case 'cvr':
			        y=chrPosY?-y:y;
			        x=e.ctrlKey?y/percent+ow:ow;
			        img.style.width=x+'px';
			        img.style.height=oh+y+'px';
			        if(chrPosY)img.style.top=oy-y+'px';
			        break;
			      case 'cnwr':
			      case 'cner':
			        x=chrPosX?-x:x;
			        if(e.ctrlKey){//按宽等比
			          y=e.ctrlKey?percent*x+oh:oh;
			          img.style.width=ow+x+'px';
			          img.style.height=y+'px';
			          if(chrPosX)img.style.left=ox-x+'px';
			        }
			        else{          
			          y=chrPosY?-y:y;
			          img.style.width=ow+x+'px';
			          img.style.height=oh+y+'px';
			          if(chrPosX)img.style.left=ox-x+'px';
			          if(chrPosY)img.style.top=oy-y+'px';
			        }
			        break;
			    }
			  }
			}
			img.onmousemove=mouseMove;
			img.onmousedown=mouseDown;
			document.onmouseup=function(){
			  if(typeof isDrag=="boolean"){
			    if(isIE)img.releaseCapture();//函数的作用就是将后续的mouse事件都发送给这个对象
			  }
			  isDrag=null;
			  img.className='cdft';
			  img.onmousemove=mouseMove;
			  document.onmousemove=null;
			}
			
			function makeWord() 
			{ 
				var word = new ActiveXObject("Word.Application"); 
				// var doc = word .documents.open("c:\test.doc"); //此处为打开已有的模版 
				var doc = word.Documents.Add("",0,1);//不打开模版直接加入内容 
				//var Range=doc.Range(); 
				//var sel = document.body.createTextRange();
				//sel.moveToElementText(img);
				//sel.select(); 
				//sel.execCommand("Copy"); 
				//Range.Paste(); 
				word.Application.Visible = true; 
				var pricture = word.Application.Selection.InlineShapes.AddPicture(img.src); 
				pricture.width=img.style.width.replace('px','');
				pricture.height=img.style.height.replace('px','');
				doc.saveAs("f:\\ba.doc"); //存放到指定的位置注意路径一定要是“\\”不然会报错 
			} 			
		</script> 
</body>
</html>

 

分享到:
评论

相关推荐

    JS+Html图片放大缩小旋转拖动效果

    在JavaScript(JS)和HTML的结合使用中,可以创建丰富的用户体验,例如图片的放大、缩小、旋转和拖动查看功能。这些动态效果是现代网页设计中常见且实用的技术,能够增强用户与网页内容的交互性。下面将详细介绍如何...

    javascript图片预览(滚动放大缩小和拖动查看)

    这个压缩包中的资源提供了一个实现滚动放大缩小和拖动查看图片的例子。下面将详细解释这个实现过程及其涉及的关键知识点。 首先,`test.html`是主HTML文件,它包含了整个预览功能的基本结构。在HTML中,你需要创建...

    vue2 在图片上打点 自定义图标、大小、颜色,可拖动放大缩小

    在Vue2项目中实现“在图片上打点并自定义图标、大小、颜色,可拖动放大缩小”这一功能,涉及到多个技术点,包括Vue组件开发、图像处理、CSS样式控制、事件监听以及可能的第三方库的集成。 首先,你需要创建一个Vue...

    js放大缩小拖拽图片(兼容IE、火狐)

    ### js放大缩小拖拽图片(兼容IE、火狐) #### 概述 本文将详细介绍一个JavaScript脚本,该脚本可以实现图片的放大、缩小以及拖拽功能,并且能够兼容Internet Explorer (IE) 和 Firefox 浏览器。通过这个脚本,...

    js完美实现同时拖拽、旋转、放大缩小图片的手势操作

    使用hammer.js 可以手势控制同时进行旋转 拖拽 放大缩小功能, 解决官网移动旋转复位效果, 重点解决官网旋转rotate demo旋转乱跳bug 官网:http://hammerjs.github.io/ (官网的demo真是坑 又是复位又是旋转抖动的....

    基于JQuery的图片放大缩小,拖动

    在本文中,我们将深入探讨如何使用JavaScript库JQuery实现图片的放大缩小和拖动功能。JQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和动画效果,使得前端开发更加高效。在这个项目中,"magnify-...

    js仿百度地图放大缩小拖拽查看效果

    地图的放大和缩小功能则涉及到比例尺的调整。通常我们会有一个缩放因子,当用户点击放大按钮时,比例尺乘以这个因子;点击缩小按钮时,比例尺除以这个因子。然后,根据新的比例尺重新加载地图切片,并更新所有可视...

    基于vue图片拖拽放大缩小查看npm包

    2. **图片缩放(Zoomable)**:提供双指缩放手势或者通过滚轮、键盘快捷键等方式调整图片大小。这通常涉及到CSS3的transform属性,特别是scale()函数的应用。 3. **边界检测(Boundaries Detection)**:当图片在...

    WPF 鼠标拖动图片放大缩小

    在WPF(Windows Presentation Foundation)开发中,实现鼠标拖动图片并进行放大缩小的效果是一项常见的交互功能。这个功能可以提供用户更加直观的操作体验,尤其是在查看或编辑图像的应用中。以下将详细阐述如何实现...

    简单易用的vue图片裁剪插件,支持移动图像,裁剪图片,放大缩小图片,上下左右移动,固定比例,固定尺寸,远程图片裁剪

    - 考虑到图片处理可能涉及大量计算,插件可能已经进行了优化,如使用懒加载、Web Worker等技术提高性能。 总的来说,"vue-img-cutter"插件为Vue开发者提供了一个高效、灵活的图片裁剪解决方案,使得在Web应用中...

    js实现图片在div内滚轮放大缩小拖动,有滚动条,双击回原状,无插件,赠送网上搜罗的其他的一些图片放大缩小js资源

    js实现图片在div内滚轮放大缩小拖动,有滚动条,双击回原状,无插件,赠送网上搜罗的其他的一些图片放大缩小文件,在每个压缩包是一个,打开压缩包里的网页文件就可以看效果。本人的在“自己的.html”里,记事本打开...

    wpf 图片拖拽放大缩小裁剪

    在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)来实现图片的拖拽、放大缩小以及裁剪功能。WPF是.NET框架的一部分,它提供了丰富的用户界面(UI)开发工具,支持2D和3D图形、动画、媒体...

    WPF实现图片放大,缩小,拖动示例

    在WPF中处理图像是一项常见的任务,而图片的放大、缩小和拖动功能则是提高用户体验的重要组成部分。本示例将详细介绍如何在WPF中实现这些功能。 首先,我们需要了解WPF中的Image控件。Image控件是WPF提供的用于显示...

    QML--放大缩小图片

    在这个例子中,`Flickable`允许用户在图片上滚动,而`contentWidth`和`contentHeight`根据图片的缩放比例设置,使得可以查看到图片的全部内容。 在实际应用中,可能还需要考虑其他因素,如保持图片的原始比例、设置...

    DIV可移动 可实现任意拖动放大缩小

    标题中的“DIV可移动 可实现任意拖动放大缩小”是指一种使用JavaScript技术来实现的交互功能,允许用户在网页上自由地拖动、缩放HTML中的div元素。这一功能通常用于创建用户界面元素,如窗口、面板或者任何需要动态...

    易语言图片放大缩小例程

    4. **放大/缩小功能**:实现图片的放大和缩小,这通常涉及到图像的重新采样算法,如最近邻插值法、双线性插值法等。易语言中可能通过改变图片的宽度和高度值来实现缩放,然后重新绘制到窗口上。 5. **移动图片**:...

    MFC 实现 图片的拖动 放大缩小和区域显示

    1、图片在指定区域显示、采用刷图方式、可以随指针拖动、放大 缩小、 2、文件路径是通过参数传递的 3、程序中SHOW按钮显示图片 BT1 BT2 没有很好的代码效果 测试使用 4、Imageshow.h和CPP 可以再其他工程中直接使用...

    js完美实现同时拖拽、旋转、放大缩小图片的手势操作 ver2 添加图片截取功能

    Tomcat部署后移动端访问测试(个人上传最终版本?) 使用hammer.js+cropper.js 实现手势同时操作,即旋转时也可以拖拽放大 添加截取图片功能,可设置截图宽高比例,可设置截取的图片宽高值 添加复位功能

    图片放大、缩小、拖拽、旋转、全屏

    这个名为"图片放大、缩小、拖拽、旋转、全屏"的项目专注于提供一套完整的解决方案,使用户能够对图片进行一系列交互操作,包括但不限于缩放、移动、旋转以及全屏显示。这在网页设计、图像展示应用或任何需要用户互动...

    图片拖动,放大,缩小Javascript代码

    1. **图片拖动**:在JavaScript中,图片的拖动功能主要通过监听`mousedown`(鼠标按下)、`mousemove`(鼠标移动)和`mouseup`(鼠标释放)这三个事件来实现。当用户按下鼠标左键时,记录下当前鼠标位置和图片的位置...

Global site tag (gtag.js) - Google Analytics