`

JQuery插件让图片旋转任意角度

 
阅读更多

引入下方的jquery.rotate.js文件,然后通过$("选择器").rotate(角度);可以旋转任意角度,

例如$("#rotate-image").rotate(45);把这句放在$(document).ready(function(){ });

就是将id为rotate-image的图片旋转45度。

不过,貌似在Chrome中总是不显示。

唉,找了两个小时,才发现Chrome太坑爹了,没法获取图片的长宽。

解决办法是,把$("#rotate-image").rotate(45);放在

$(window).load(function(){ });中,因为在Chrome中图片在执行$(document).ready(function(){ });中的语句时并没有加载完图片,坑爹啊。

另外可以更方便的通过调用$("选择器").rotateRight()$("选择器").rotateLeft()来分别向右旋转90度和向左旋转90度。


jquery.rotate.js:

 

jQuery.fn.rotate = function(angle,whence) {
	var p = this.get(0);

	// we store the angle inside the image tag for persistence
	if (!whence) {
		p.angle = ((p.angle==undefined?0:p.angle) + angle) % 360;
	} else {
		p.angle = angle;
	}

	if (p.angle >= 0) {
		var rotation = Math.PI * p.angle / 180;
	} else {
		var rotation = Math.PI * (360+p.angle) / 180;
	}
	var costheta = Math.round(Math.cos(rotation) * 1000) / 1000;
	var sintheta = Math.round(Math.sin(rotation) * 1000) / 1000;
	//alert(costheta+","+sintheta);
 
	if (document.all && !window.opera) {
		var canvas = document.createElement('img');

		canvas.src = p.src;
		canvas.height = p.height;
		canvas.width = p.width;

		canvas.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')";
	} else {
		var canvas = document.createElement('canvas');
		if (!p.oImage) {
			canvas.oImage = new Image();
			canvas.oImage.src = p.src;
		} else {
			canvas.oImage = p.oImage;
		}

		canvas.style.width = canvas.width = Math.abs(costheta*canvas.oImage.width) + Math.abs(sintheta*canvas.oImage.height);
		canvas.style.height = canvas.height = Math.abs(costheta*canvas.oImage.height) + Math.abs(sintheta*canvas.oImage.width);

		var context = canvas.getContext('2d');
		context.save();
		if (rotation <= Math.PI/2) {
			context.translate(sintheta*canvas.oImage.height,0);
		} else if (rotation <= Math.PI) {
			context.translate(canvas.width,-costheta*canvas.oImage.height);
		} else if (rotation <= 1.5*Math.PI) {
			context.translate(-costheta*canvas.oImage.width,canvas.height);
		} else {
			context.translate(0,-sintheta*canvas.oImage.width);
		}
		context.rotate(rotation);
		context.drawImage(canvas.oImage, 0, 0, canvas.oImage.width, canvas.oImage.height);
		context.restore();
	}
	canvas.id = p.id;
	canvas.angle = p.angle;
	p.parentNode.replaceChild(canvas, p);
}

jQuery.fn.rotateRight = function(angle) {
	this.rotate(angle==undefined?90:angle);
}

jQuery.fn.rotateLeft = function(angle) {
	this.rotate(angle==undefined?-90:-angle);
}

原文地址:http://blog.csdn.net/cangkukuaimanle/article/details/7414985

分享到:
评论

相关推荐

    让图片旋转任意角度及JQuery插件使用介绍

    在本文中,我们将深入探讨如何使用jQuery插件实现图片的任意角度旋转,以及解决在特定浏览器(如Chrome)中可能出现的问题。首先,我们要引入名为`jquery.rotate.js`的插件文件,这个插件提供了旋转图片的功能。 ...

    跨浏览器控制图片旋转jquery插件

    jQueryRotate.js是一款跨浏览器控制图片旋转jquery插件。jQueryRotate.js旋转图片插件可以使用CSS3动画来对图片进行任意角度的旋转。对于不支持CSS3动画的浏览器,插件会自动使用canvas或VML(IE6)技术进行回退。

    基于jQuery实现的图片360度水平方向上任意旋转插件源码.zip

    在图片旋转插件中,`animate()`可能被用来平滑地改变图片的旋转角度,提供更流畅的用户体验。 4. **计算旋转角度**:根据鼠标的移动,需要计算出相应的旋转角度。这通常涉及到一些数学运算,例如,根据鼠标位置与...

    jquery图片裁剪插件

    除了基本功能外,开发者还可以根据需求对插件进行扩展,如添加图片旋转、预设裁剪比例、添加滤镜效果等。同时,考虑到性能优化,可以结合Canvas技术进行图片处理,减少内存占用和提高用户体验。 总之,“jQuery图片...

    可缩放jQuery图片裁剪插件.zip

    这款插件提供了丰富的功能,使得用户在网页上可以自由地裁剪、旋转和调整图片尺寸,从而满足各种图像处理需求。在网页设计和开发中,这种插件常常用于用户上传头像、产品图片编辑或者个性化定制服务等场景。 首先,...

    jquery iviewer jquery图片查看工具(放大、缩小、旋转、可二次开发)

    2. **旋转功能**:用户可以自由旋转图片,满足不同视角的需求,无论是90度的整数倍旋转还是任意角度的调整,iViewer都能轻松应对。 3. **拖拽操作**:通过鼠标拖动,用户可以在查看区域自由移动图片,查看图片的不同...

    jQuery图片剪切插件

    4. **旋转与缩放**:支持图片的旋转和缩放操作,方便用户调整图片角度和大小以适应裁剪框。 5. **坐标获取**:插件能够获取用户选定的裁剪区域的坐标和尺寸,便于后端处理或直接在前端进行图片处理。 6. **事件处理*...

    jQuery简单且功能强大的图片剪裁插件

    - **旋转功能**:提供图片旋转功能,允许用户根据需要进行90度或任意角度的旋转。 - **触屏设备支持**:考虑到移动设备的普及,cropper插件优化了对触摸屏的支持,使得在手机或平板上也能顺畅操作。 - **Canvas支持*...

    图片上传带裁剪功能Jquery插件

    此外,“图片裁剪用到了imgareaselect插件”,imgareaselect是一个jQuery插件,专门用于图像的选择区域功能,用户可以通过拖动鼠标选择图像上的任意区域,这在前端提供了直观的裁剪界面。 值得注意的是,“前端是伪...

    js图片查看器。鼠标拖动图片任意方向旋转,鼠标滚动滚轮缩放,任意角度翻转。

    1. **图片旋转**:通过监听鼠标的移动事件,可以实现图片的任意方向旋转。用户只需按住鼠标拖动,图片就能跟随鼠标的移动轨迹旋转。这通常涉及到图像的矩阵变换,通过改变图片的旋转角度来实现。 2. **图片缩放**:...

    jquery 360度旋转插件UIMIX.fullview

    - **360度无死角旋转**:UIMIX.fullview插件可以实现图片的无缝衔接,让物体看起来可以从任意角度旋转,提供全方位的视觉体验。 - **触控支持**:支持鼠标拖动和触摸滑动,用户可以通过点击和拖动来查看物体的不同...

    13 款最热门的 jQuery 图像 360 度旋转插件推荐

    11. DopelessRotate插件:DopelessRotate是专为图像的360度旋转展示设计的jQuery插件。它包括缩放功能,支持触摸设备,并允许在同一个页面上使用多个插件。 12. 360DegreeImageSlide:该插件使用JavaScript、CSS和...

    图片任意角旋转缩放

    这两者可以结合使用,实现任意角度的旋转和任意比例的缩放。 然而,不同的浏览器可能对CSS3的`transform`属性有不同的实现方式,这就引出了“兼容各浏览器”的问题。为了确保代码在所有主流浏览器(如Chrome、Fire...

    jquery 图片预览插件 viewer.js

    支持旋转(类似微博的图片旋转) 支持水平/垂直翻转 支持图片移动 支持键盘 支持全屏幻灯片模式(可做屏保) 支持缩略图 支持标题显示 支持多种自定义事件 Viewer.js 提供了纯 JS 版本和 jQuery 版本,您可以任意...

    图片的任意扭转

    通过结合这些技术,我们可以创建出一个用户友好且功能强大的图片扭转应用,让用户能够轻松地对图片集合进行任意角度的旋转,提升交互体验和视觉效果。在实践中,不断学习和优化这些技术,对于提升个人在IT行业的专业...

    旋转插件jQueryRotate.2.2

    这个插件通过简单易懂的API,让开发者能够轻松地实现图片的任意角度旋转,无论是90度、180度的标准翻转,还是自定义角度的自由旋转,都能轻松应对。在网页设计中,这样的功能可以用于创建3D效果、旋转展示产品细节...

    jquery.anoslide插件--响应式图片轮换播放效果

    5、基于jquery库实现的插件 6、多种配置选项实现多种不同效果 7、图像延迟加载 8、支持自动旋转     使用说明以及原作者网页地址:...

    六款图片旋转放大等功能demo(收集网上资源)

    - jQueryrotate:这个插件允许我们对图片进行任意角度的旋转,通过设置旋转角度和动画效果,可以实现3D视觉效果,提升用户的浏览体验。 - CSS3 transform: rotate():利用CSS3的transform属性,可以直接在CSS中...

Global site tag (gtag.js) - Google Analytics