`
huobengluantiao8
  • 浏览: 1029228 次
文章分类
社区版块
存档分类
最新评论

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);
}


分享到:
评论

相关推荐

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

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

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

    可以旋转任意角度, 例如$(“#rotate-image”).rotate(45);把这句放在$(document).ready(function(){ });中 就是将id为rotate-image的图片旋转45度。 不过,貌似在Chrome中总是不显示。 唉,找了两个小时,才发现...

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

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

    jquery 图片预览插件 viewer.js

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

    一款360度鼠标拖拽旋转插件 jquery 三维旋转特效.rar

    一款来自jquery支持的三维旋转插件,支持图片的360度旋转,用鼠标拖动这个立方体图形,图形就会在任意角度方向上旋转,而且光影效果也会适时变化,整体效果十分逼真。

    jQuery跨浏览器控制图标旋转代码.zip

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

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

    使用方法这里就不再赘述,毕竟网页中配备好多效果,且每个效果均有js解释说明 特点: 1、响应式——可调节效果至任意宽度大小 2、支持图文混合内容显示 3、无需css 4、轻量级(&lt;8kb的插件) ...

    jQuery跨浏览器控制图标旋转动画特效

    一款可以使用CSS3动画来对图片进行任意角度的旋转。对于不支持CSS3动画的浏览器,插件会自动使用canvas或VML IE6 技术进行回退的jQuery跨浏览器控制图标旋转动画特效代码。

    jQuery跨浏览器控制图标旋转代码

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

    Web交互式图片展示插件(Interactive Photo Desk) v1.0.rar

    Interactive Photo ...Interactive Photo Desk插件用到了两个重要的Jquery插件:2D Transform(用于旋转动画)和 Shadow Animation(用于盒子阴影动画) 旋转动画在IE中是不支持的,所以我们在IE中是看不到图片旋转的。

    jQuery跨浏览器控制图标旋转特效代码

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

    产品循坏旋转展示的jQuery插件含示例

    内容索引:脚本资源,jQuery,图片旋转 一款基于jQuery的小插件,可以让一个图片列表围绕成圆形,并由鼠标控制循坏旋转展示,当鼠标放到任意一个图片上后,图片会显示出相关信息,效果如截图所示,用在商品展示上效果...

    viewer图片查看插件

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

    PHP JS头像截取工具

    1:网站会员头像截取,shearphoto能自由设置按比例截图或不按比例截图,也可以对图片旋转,在线拍照,你可以截取不同比例的,不同大小,各种旋转的图片。后台 前台均有设置接口,非常简单 2:商城商品图片切割,例如...

    shearphoto1.1+PHP头像截取,头像上传,切图工具,升级版!

    1:网站会员头像截取,shearphoto能自由设置按比例截图或不按比例截图,也可以对图片旋转,在线拍照,你可以截取不同比例的,不同大小,各种旋转的图片。后台 前台均有设置接口,非常简单 2:商城商品图片切割,例如...

    JAVA上百实例源码以及开源项目源代码

    简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,...

    JAVA上百实例源码以及开源项目

    util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...

Global site tag (gtag.js) - Google Analytics