不得不承认jquery是一个很好很强大的js库
前段时间的项目时碰到一个问题,所有服务器上的图片都是反的
如果说要把源图片都再改回正常的也不太可能了,几百万张图片不只是一个工作量的问题
就算是用程序跑也要好久的。
想到了滤镜,不过火狐是不支持的。
又想到jquery的兼容性,何不用它来试试呢,网上搜了下,找到了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.cos(rotation);
var sintheta = Math.sin(rotation);
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);
}
最新源码可去googlecode
下载
用法
$('#pic').rotate(180);
兼容火狐和IE,有另外方法实现也请大家给予回复
分享到:
相关推荐
**标题详解:**“支持Flash插件的Firefox火狐浏览器” 在互联网的早期,Adobe Flash是一种广泛用于创建动态内容和多媒体交互的技术。然而,随着HTML5等更现代、更安全的替代品出现,Adobe公司宣布在2020年底停止对...
标题中的“让FireFox支持OCX插件的安装包”指的是通过特定的手段使得Mozilla Firefox浏览器能够识别并运行OCX(Object Control Extension)插件。OCX插件是微软Windows平台下的一种ActiveX技术,主要用于扩展应用...
标题中的“Firefox支持OCX插件”意味着Mozilla Firefox这款开源网络浏览器可以运行OCX(ActiveX Control)组件,这是微软Windows平台下的一种交互式对象技术。通常,OCX插件用于增强网页的功能,如播放媒体、执行...
fireFOX 支持java功能版本,可替代IE浏览器,浏览JAVA网站。
要实现Firefox对ActiveX控件的支持,必须解决四个问题,包括如何创建和初始 化控件对象,如何在Firefox浏览器中显示和现场激活控件,如何使JavaScript能访问控 件的属性和方法以及如何捕获控件事件并将其转发给...
火狐浏览器(Mozilla Firefox)是一款由Mozilla基金会和志愿者共同开发的开源网络浏览器,以其高度定制性、安全性和性能而受到用户欢迎。以下是一份描述: 火狐浏览器是一款跨平台的开源网络浏览器,由Mozilla基金...
火狐Firefox是一款深受全球用户喜爱的开源网络浏览器,它的24版本在当时被视为一个重要的里程碑。这个版本的Firefox以其稳定性、安全性和性能优化为特点,是开发者和测试人员的理想选择。下面将详细介绍Firefox 24...
《Firefox火狐浏览器52.1.1esr-mac版本的深度解析与安装指南》 Firefox火狐浏览器,作为一款开源、免费的网络浏览器,以其强大的安全性、隐私保护及高度自定义性深受用户喜爱。52.1.1esr(Extended Support Release...
2. **跨平台支持**:尽管这里提到的是win64版本,但Firefox实际上也支持Windows、macOS、Linux等多种操作系统,确保了多平台的兼容性。 3. **隐私保护**:Firefox在隐私保护方面表现出色,提供多种隐私浏览模式,如...
Firefox 火狐浏览器是一款由Mozilla基金会开发的开源网络浏览器,以其高度定制化、安全性以及对Web标准的良好支持而广受用户喜爱。在本文中,我们将详细探讨Firefox 24.0这一特定版本,以及如何在LoadRunner 11上...
《Firefox火狐浏览器49.0.2-win32版本:深入解析与使用指南》 Firefox,又称为火狐浏览器,是由Mozilla基金会开发的一款开源、跨平台的网页浏览器。这款浏览器以其高度定制化、安全性和隐私保护功能而受到全球用户...
Firefox火狐浏览器是一款深受用户喜爱的开源网络浏览器,由Mozilla基金会开发并维护。这款浏览器以其强大的安全性、可定制性以及对Web标准的支持而闻名。在本文中,我们将深入探讨Firefox 52.0-mac版本的特性、安装...
《Firefox火狐浏览器52.9.0esr-win32版本详解》 Firefox火狐浏览器,由Mozilla基金会开发,是一款开源、免费的网络浏览器,以其强大的安全性、隐私保护和高度可定制性著称。52.9.0esr(Extended Support Release)...
标题中的“火狐Firefox支持OCX”指的是Mozilla Firefox浏览器能够加载和运行ActiveX控件(OCX),这是在Windows操作系统中常见的一种组件技术。ActiveX控件是微软开发的一种插件形式,允许网页或者应用程序嵌入各种...
《Firefox火狐浏览器52.0.2-win64版本安装详解》 Firefox火狐浏览器,作为一款全球知名的开源网络浏览器,以其强大的功能、高度的定制性和安全性深受用户喜爱。52.0.2-win64是Firefox针对Windows 64位系统的一个...
《Firefox火狐浏览器45.0.2-win32版本详解》 Firefox,这款由Mozilla基金会开发的开源网络浏览器,自2004年首次亮相以来,就以其强大的功能、高度的可定制性和对用户隐私的重视赢得了全球用户的喜爱。在本文中,...
Mozilla Firefox,中文俗称“火狐”(正式缩写为Fx或fx,非正式缩写为MF),是一个自由及开放源代码的网页浏览器,使用Gecko排版引擎,支持多种操作系统,如Windows、Mac OS X及GNU/Linux等。该浏览器提供了两种版本...
《Firefox火狐浏览器51.0b2-win32版本:深入解析与使用指南》 Firefox,这款由Mozilla基金会开发的开源网络浏览器,以其强大的安全性能、高度的可定制性和出色的隐私保护机制,在全球范围内拥有大量的忠实用户。...
《Firefox火狐浏览器45.0.2-win64版本:深入解析与使用指南》 Firefox,又称为火狐浏览器,是由Mozilla基金会开发的一款开源、免费的网络浏览器,以其强大的安全性和用户隐私保护功能,以及丰富的插件生态系统,...
标题中的“Firefox火狐浏览器官方52.0b2-win32版本exe安装包”指的是Mozilla Firefox的52.0b2预览版,专为Windows 32位操作系统设计的安装程序。Firefox是一款开源、免费的网络浏览器,以其安全、隐私保护和可定制性...