已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 使用jQueryRotate.js实现 示例代码: 复制代码 代码如下: #div1 width: 800px; height: 600px; background-color: #ff0; position: absolute; .imgRotate width: 100px; height: 80px; position: absolute; top: 50%; left: 50%; margin: -40px 0 0 -50px; var num = 0; $(#input2).click(function() num +; $(#img1).rotate(90*num); ); 测试结果:chrome下效果正常,旋转后img对象仍为img对象;ie8下效果正常,但旋转后img对象变为下面对象,由于对象变化,若旋转后仍按原来方法获取img对象,则会报js错误。欲获取image对象,可根据class获取。如果图像旋转后,不进行其它操作,则可用此方法。若进行其它操作,如放大、缩小图像,则此方法实现较复杂。 复制代码 代码如下: 2 使用Microsoft提供的Matrix对象 示例代码: 复制代码 代码如下: #div1 width: 800px; height: 600px; background-color: #ff0; position: absolute; .imgRotate width: 100px; height: 100px; position: absolute; top: 50%; left: 50%; margin: -50px 0 0 -50px; #imgRotate width: 100px; height: 100px; position: absolute; top: 50%; left: 50%; margin: -50px 0 0 -50px; function rotate(id,angle,whence) var p = document.getElementById(id); / 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); function rotateRight(id,angle) rotate(id,angle=undefined?90:angle); function rotateLeft(id,angle) rotate(id,angle=undefined?-90:-angle); $(#input1).click(function() $(img.imgRotate).attr(id,imgRotate); rotateLeft(imgRotate,90); $(#imgRotate).attr(top,50%); $(#imgRotate).attr(left,50%); $(#imgRotate).attr(margin,-50px 0 0 -50px); ); 测试结果:chrome下效果正常,但旋转后img对象变为canvas对象;ie8下效果正常,旋转后img对象仍为img对象。Matrix()参数较多,使用时需较多计算。 3 使用Microsoft提供的BasicImage对象 示例代码: 复制代码 代码如下: var num = 0; $(#input2).click(function() num = (num + 1) % 4; document.getElementById(image).style.filter = progid:DXImageTransform.Microsoft.BasicImage(rotation=+num+); ); 测试结果:chrome下不能旋转;ie8下效果正常,旋转后img对象仍为img对象。BasicImage()仅一个参数。 查看这三种方法的代码会发现,本质上是一种解决方案:chrome下使用canvas对象实现,ie8下使用VML或者Matrix()或B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司欠薪分期协议书
- 冻库施工安全协议书
- ktv签安全协议书
- 养老院入住合同范本
- 兼职保证协议书模板
- 公司拆迁施工协议书
- 校园企业孵化协议书
- 校外辅导机构协议书
- 核酸场地布置协议书
- 供电公司赔偿协议书
- 金刚砂地坪施工质量验收标准
- 论文写作讲座(英语科技论文撰写与投稿)课件
- 企业创新风险管理与技术创新
- DB50-T 867.48-2023安全生产技术规范 第48部分:医疗机构
- 临床实践中的医学伦理问题
- 医疗质量每月检查记录表
- 高一家长会课件10(共47张PPT)
- 银行异地工作调动申请书
- 2023-2024学年四川省甘孜州小学语文二年级期末评估考试题
- GB/T 32322.1-2015滚动轴承直线运动滚动支承成型导轨副第1部分:1、2、3系列外形尺寸和公差
- GB/T 19017-2020质量管理技术状态管理指南
评论
0/150
提交评论