JS 实现兼容IE图片向左或向右翻转
<!DOCTYPE HTML>
<head>
<title>JS实现图片向左向右翻转</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<script type="text/javascript">
function rotate(o, p) {
var img = document.geiElmentById(o);
if(!img || !p) return false;
var n = img.getAttribute('step');
if(n === null) n = 0;
if(p === 'right') {
(n === 3) ? n = 0 : n++;
} else if(p === 'left') {
(n === 0) ? n = 3 : n--;
} img.setAttribute('step', n);
// MSIE
if(document.all) {
img.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + n +')';
switch(n) {
case 0:
img.parentNode.style.height = img.height;
break;
case 1:
img.parentNode.style.height = img.width;
break;
case 2:
img.parentNode.style.height = img.height;
break;
case 3:
img.parentNode.style.height = img.width;
break;
}
} else {
var c = document.getElementById('canvas' + o);
if(c === null) {
img.style.visibility = 'hidden';
img.style.position = 'absolute';
c = document.createElement('canvas');
c.setAttribute("id", 'canvas' + o);
img.parentNode.appendChild(c);
} var canvasContent = c.getContext('2d');
switch(n) {
default:
case 0:
c.setAttribute('width', img.width);
c.setAttribute('height', img.height);
canvasContent.rotate(0 * Math.PI / 180);
canvasContent.drawImage(img, 0, 0);
break;
case 1:
c.setAttribute('width', img.width);
c.setAttribute('height', img.height);
canvasContent.rotate(90 * Math.PI / 180);
canvasContent.drawImage(img, 0, -img.height);
break;
case 2:
c.setAttribute('width', img.width);
c.setAttribute('height', img.height);
canvasContent.rotate(180 * Math.PI / 180);
canvasContent.drawImage(img, -img.width, -img.height);
break;
case 3:
c.setAttribute('width', img.width);
c.setAttribute('height', img.height);
canvasContent.rotate(270 * Math.PI / 180);
canvasContent.drawImage(img, -img.width, 0);
break;
}
}
}
</script>
</head>
<body>
<div class="container">
<input type="button" value="turn left" onclick="rotate('pic', 'left')" />
<input type="button" value="turn right" onclick="rotate('pic', 'right')" />
<div class="cont" onclick="rotate('pic', 'right')">
<img id="pic" src="1.jpg" alt="" />
</div>
</div>
</body>
</html>
JS 实现兼容IE图片向左或向右翻转的更多相关文章
- vue+hammer.js完美实现长按、左滑,右滑等触控事件
移动端使用手指直接操作的方式大受用户欢迎,这其中就包括了单点.多点.长按.双击等方式. 这么多触控事件,如果开发者自己实现,会浪费大量的时间和精力,快来看看 hammer.js 让我们轻松了多少吧. ...
- 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活
图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) by zhangxinxu from http://www.zhangxinxu.com 本 ...
- 关于js的兼容问题(小办法)!
今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=docu ...
- 原生js和jquery实现图片轮播特效
本文给大家分享的是使用原生JS和JQ两种方法分别实现相同的图片轮播特效,十分的实用,也非常方便大家对比学习原生js和jQuery,有需要的小伙伴可以参考下. 1)首先是页面的结构部分对于我这种左右切换 ...
- 原生js和jquery实现图片轮播特效(转)
本文给大家分享的是使用原生JS和JQ两种方法分别实现相同的图片轮播特效,十分的实用,也非常方便大家对比学习原生js和jQuery,有需要的小伙伴可以参考下. 1)首先是页面的结构部分对于我这种左右切换 ...
- 前端js保存页面为图片下载到本地
前端js保存页面为图片下载到本地 手机端点击下载按钮将页面保存成图片到本地 前端js保存页面为图片下载到本地的坑 html2canvas 识别 svg 解决方案 方案 html2canvas.js:可 ...
- js鼠标滚轮滚动图片切换效果
效果体验网址:http://keleyi.com/keleyi/phtml/image/12.htm HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C// ...
- js控制 固定框架内图片 按比例显示 以及 占满框架 居中显示
js控制 固定框架内图片 等比例显示 以及 占满框架 纵横居中显示 通过设置 js函数 fitDiv里面var fit的值就好 function fitDiv (obj) { var target_w ...
- 设为首页 和 收藏本站js代码 兼容IE,chrome,ff
设为首页 和 收藏本站js代码 兼容IE,chrome,ff //设为首页 function SetHome(obj,url){ try{ obj.style.behavior='url(#defau ...
随机推荐
- margin外边距属性
外边距属性: 设置元素与元素之间的距离(外边距),4个方向(上右下左). margin:长度值|百分比|auto margin-top margin-right margin-bottom margi ...
- 小程序swiper指板点样式修改
swiper(class名).wx-swiper-dots.wx-swiper-dots-horizontal{ //距离底部高度 margin-bottom: 2rpx; } swiper(c ...
- Virtualization
time sharing——>virtualization. OS需要low-level machinery mechanisms and high-level intelligence. 前者 ...
- 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范
使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 StyleCop 可以帮助强制执行代码格式化规范,ReSharper 可以帮助你更高效地编写代码.把两者结合起来,你便能高效地 ...
- pycharm+pydesigner+pyqt5 如何添加图片资源
pydesigner 上添加资源比较容易: 步骤一用于编辑,步骤二步创建,步骤三创建文件新的qrc: 步骤一:新建一个Prefix,步骤二给prefix添加资源文件.至此,资源文件添加完成 采用 Py ...
- Mac os x 系统的发展史
·Mac OS 9:发布时间:1999年 于1999年发布的Mac OS 9操作系统(图片来自互联网) 在OS X之前,1999年发布的Mac OS 9看起来就是一个普通的桌面操作系统.并且现在已经被 ...
- sqlserver 表操作 SQL篇
数据库知识点 1.数据库操作: 增:insert into 表名 values(值1,值2,值3) 删:delete 列名 from 表名 where 条件 改:update 表名 set =值 wh ...
- 出现 OSError: symbolic link privilege not held的解决方案
jupyter notebook 出现 OSError: symbolic link privilege not held问题时 以管理员方式重新打开prompt.
- Java小代码
1. public class test1 {public static void main(String[] args) { Person P = new Person("gdsgds&q ...
- Log4j源码分析
一.slf4j和log4j的关系: 也就是说slf4j仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已.必须搭配具体的log实现方案比 ...