<!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图片向左或向右翻转的更多相关文章

  1. vue+hammer.js完美实现长按、左滑,右滑等触控事件

    移动端使用手指直接操作的方式大受用户欢迎,这其中就包括了单点.多点.长按.双击等方式. 这么多触控事件,如果开发者自己实现,会浪费大量的时间和精力,快来看看 hammer.js 让我们轻松了多少吧. ...

  2. 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活

    图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) by zhangxinxu from http://www.zhangxinxu.com 本 ...

  3. 关于js的兼容问题(小办法)!

    今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=docu ...

  4. 原生js和jquery实现图片轮播特效

    本文给大家分享的是使用原生JS和JQ两种方法分别实现相同的图片轮播特效,十分的实用,也非常方便大家对比学习原生js和jQuery,有需要的小伙伴可以参考下. 1)首先是页面的结构部分对于我这种左右切换 ...

  5. 原生js和jquery实现图片轮播特效(转)

    本文给大家分享的是使用原生JS和JQ两种方法分别实现相同的图片轮播特效,十分的实用,也非常方便大家对比学习原生js和jQuery,有需要的小伙伴可以参考下. 1)首先是页面的结构部分对于我这种左右切换 ...

  6. 前端js保存页面为图片下载到本地

    前端js保存页面为图片下载到本地 手机端点击下载按钮将页面保存成图片到本地 前端js保存页面为图片下载到本地的坑 html2canvas 识别 svg 解决方案 方案 html2canvas.js:可 ...

  7. js鼠标滚轮滚动图片切换效果

    效果体验网址:http://keleyi.com/keleyi/phtml/image/12.htm HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C// ...

  8. js控制 固定框架内图片 按比例显示 以及 占满框架 居中显示

    js控制 固定框架内图片 等比例显示 以及 占满框架 纵横居中显示 通过设置 js函数 fitDiv里面var fit的值就好 function fitDiv (obj) { var target_w ...

  9. 设为首页 和 收藏本站js代码 兼容IE,chrome,ff

    设为首页 和 收藏本站js代码 兼容IE,chrome,ff //设为首页 function SetHome(obj,url){ try{ obj.style.behavior='url(#defau ...

随机推荐

  1. pip install -r requirements.txt

    生成文件 pip freeze > requirements.txt pip install --help Usage: pip install [options] <requiremen ...

  2. Linux常用文件操作命令

    一.进入文件夹  格式:cd [目录名称]  常用选项: cd /  进入当前目录 cd .. 返回上一级目录.  cd ../.. 将当前目录向上移动两级.  cd - 返回最近访问目录. 二.显示 ...

  3. 爬虫基础之urllib库

    urllib库的基本使用 urlopen() # 导入urllib库 import urllib # 往指定url发送请求,返回一个响应对象 response = urllib.request.url ...

  4. Linux与Windows的几点区别

    echo $PATH 回显Linux环境变量PATH的值,Linux下的环境变量必须大写echo %path% 回显Windows环境变量path的值 export PATH=/usr/local/t ...

  5. 移除元素-leetcode-27

    class Solution {public:    int removeElement(vector<int>& nums, int val) {        if(nums. ...

  6. 插入排序-C#实现

    插入排序包括:直接插入排序和希尔排序. 具体代码如下: 直接插入排序: /// <summary> /// 直接插入排序 /// 适用于少量元素的排序 /// 稳定性:稳定 /// 时间复 ...

  7. Linux----------httpd的简介和安装及使用

    目录 一.httpd的简介 二.常用httpd版本特性 (1)httpd-2.2 (2)httpd-2.4 三.httpd的工作模型 四.httpd的程序环境即配置文件和重要目录 1.配置文件和重要目 ...

  8. Mybatis逆向工程的配置

    源码github下载地址:https://github.com/wcyong/mybatisGeneratorCustom.git 参考文章:https://www.cnblogs.com/whgk/ ...

  9. SSM学习笔记

    Spring MVC[入门]就这一篇! https://www.jianshu.com/p/91a2d0a1e45a SpringMVC非注解方式和注解方式不能同时使用.注解方式只需要配一句话就行了d ...

  10. maven依赖冲突

    https://blog.csdn.net/noaman_wgs/article/details/81137893