JS控制图片翻转示例代码(兼容firefox,ie,chrome)


Posted in Javascript onDecember 19, 2013
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>图片旋转效果</title> 
<meta http-equiv="content-type" content="text/html;charset=gb2312"> 
<!--把下面代码加到<head>与</head>之间--> 
<style type="text/css"> 
ul{padding:0 15px;} 
ul li{padding-bottom:15px;border-bottom:1px dashed #EEE;} 
.caption{padding:15px 0 5px;} 
.caption input{margin-right:10px;padding:0 10px;} 
</style> 
<script type="text/javascript"> 
/* 
* www.byzuo.com 
* ok!: MSIE 6, 7, 8, Firefox 3.6, chrome 4, Safari 4, Opera 10 
* o 旋转图片ID; 
* p 选择旋转方向,固定值为'left'或'right'; 
*/ 
function rotate(o,p){ 
    var img = document.getElementById(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 +')'; 
        //HACK FOR MSIE 8 
        switch(n){ 
            case 0: 
                imgimg.parentNode.style.height = img.height; 
                break; 
            case 1: 
                imgimg.parentNode.style.height = img.width; 
                break; 
            case 2: 
                imgimg.parentNode.style.height = img.height; 
                break; 
            case 3: 
                imgimg.parentNode.style.height = img.width; 
                break; 
        } 
    //DOM 
    }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 ccanvasContext = c.getContext('2d'); 
        switch(n) { 
            default : 
            case 0 : 
                c.setAttribute('width', img.width); 
                c.setAttribute('height', img.height); 
                canvasContext.rotate(0 * Math.PI / 180); 
                canvasContext.drawImage(img, 0, 0); 
                break; 
            case 1 : 
                c.setAttribute('width', img.height); 
                c.setAttribute('height', img.width); 
                canvasContext.rotate(90 * Math.PI / 180); 
                canvasContext.drawImage(img, 0, -img.height); 
                break; 
            case 2 : 
                c.setAttribute('width', img.width); 
                c.setAttribute('height', img.height); 
                canvasContext.rotate(180 * Math.PI / 180); 
                canvasContext.drawImage(img, -img.width, -img.height); 
                break; 
            case 3 : 
                c.setAttribute('width', img.height); 
                c.setAttribute('height', img.width); 
                canvasContext.rotate(270 * Math.PI / 180); 
                canvasContext.drawImage(img, -img.width, 0); 
                break; 
        } 
    } 
} 
</script> 
</head> 
<body> 
<!--把下面代码加到<body>与</body>之间--> 
<ul class="clearfix"> 
    <li> 
        <div class="caption"> 
            <input type="button" value="turn left" onclick="rotate('pic_1','left')"> 
            <input type="button" value="turn right" onclick="rotate('pic_1','right')"> 
        </div> 
        <div class="cont"> 
            <img  alt="javascript 图片旋转效果"  id="pic_1" src="1.gif" alt=""> 
        </div> 
    </li> 
</ul> 
</body> 
</html>
Javascript 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
Jan 16 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
Feb 12 Javascript
angular实现商品筛选功能
Feb 01 Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 Javascript
JS实现复制功能
Mar 01 Javascript
Vue2 使用 Echarts 创建图表实例代码
May 18 Javascript
jQuery中复合选择器简单用法示例
Mar 31 jQuery
基于javascript实现碰撞检测
Mar 12 Javascript
JavaScript实现简单日历效果
Sep 11 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
Dec 19 #Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
Dec 19 #Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 #Javascript
javascript中打印当前的时间实现思路及代码
Dec 18 #Javascript
js 限制input只能输入数字、字母和汉字等等
Dec 18 #Javascript
Javascript改变CSS样式(局部和全局)
Dec 18 #Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 #Javascript
You might like
PHP新手上路(十四)
2006/10/09 PHP
php中的一个中文字符串截取函数
2007/02/14 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
原生js实现贪吃蛇游戏
2020/10/26 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
Python 求向量的余弦值操作
2021/03/04 Python
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
雪山饭庄的创业计划书范文
2014/01/18 职场文书
简历上的自我评价
2014/02/03 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
学校安全责任书
2014/04/14 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
高中同学会致辞
2015/08/01 职场文书