码迷,mamicode.com
首页 > Web开发 > 详细

html5 图片360旋转

时间:2017-09-08 23:55:22      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:ota   nod   doctype   ges   context   get   var   lan   onload   

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图片360度旋转</title>
    <style>
        input {
            font-size:18px;
            padding:5px 20px 5px 20px;
            font-weight:bold;
            color:white;
            background-color:#c5464a;
            cursor:pointer;
            border:none;
            outline:none;
            border-radius:7px 7px 7px 7px;
        }

    </style>
    <script  type="text/javascript"  src="test.js"></script>
</head>
<body>
<input type="button" value="←">
<input type="button" value="→">
<div id="mydiv">
    <img src="img3.jpg" id="img">
</div>
</body>
</html>

  test.js

window.onload = function() {
    var inputval = document.getElementsByTagName(‘input‘);
    var imgval = document.getElementById(‘img‘);
    var yimg = new Image();
    var iNow = 0;
    yimg.onload = function() {
        draw(imgval);
    }

    yimg.src = imgval.src;

    function draw(obj) {
        var c = document.createElement(‘canvas‘);
        var cxt = c.getContext(‘2d‘);

        c.width = obj.width;
        c.height = obj.height;

        obj.parentNode.replaceChild(c, obj);

        cxt.drawImage(obj, 0, 0);

        inputval[1].onclick = function() {
            if (iNow == 3) {
                iNow = 0;
            } else {
                iNow++;
            }
            toChange();
        };


        inputval[0].onclick = function() {
            if (iNow == 0) {
                iNow = 3;
            } else {
                iNow--;
            }
            toChange();
        };

        function toChange() {
            switch (iNow) {
                case 0:
                    c.width = obj.width;
                    c.height = obj.height;
                    cxt.rotate(0 * Math.PI / 180);
                    cxt.drawImage(obj, 0, 0);
                    break;
                case 1:
                    c.width = obj.height;
                    c.height = obj.width;
                    cxt.rotate(90 * Math.PI / 180);
                    cxt.drawImage(obj, 0, -obj.height);
                    break;
                case 2:
                    c.width = obj.width;
                    c.height = obj.height;
                    cxt.rotate(180 * Math.PI / 180);
                    cxt.drawImage(obj, -obj.width, -obj.height);
                    break;
                case 3:
                    c.width = obj.height;
                    c.height = obj.width;
                    cxt.rotate(270 * Math.PI / 180);
                    cxt.drawImage(obj, -obj.width, 0);
                    break;
                case 4:
                    c.width = obj.width;
                    c.height = obj.height;
                    cxt.rotate(360 * Math.PI / 180);
                    cxt.drawImage(obj, obj.width, obj.height);
                    break;
            }
        }
    }
}

  图片:

技术分享

 

效果:

技术分享

 

 2017-09-08 23:03:47 

html5 图片360旋转

标签:ota   nod   doctype   ges   context   get   var   lan   onload   

原文地址:http://www.cnblogs.com/guangzhou11/p/7496758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!