zoukankan      html  css  js  c++  java
  • js图片旋转

      <script type="text/javascript" language="javascript">
        function rotate(id, angle, whence) {
          var p = document.getElementById(id);
          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;
            }
            //alert(canvas.width)
            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);
        }
      </script>

    调用方法:

    <div class="content">
      <div class="data">
        <a href="javascript:void(0)" style="font-weight: bold; text-decoration: none; font-size: 16px;"
          onclick="rotateRight('theimage',90);">右转</a> 
    <a href="javascript:void(0)" style="font-weight: bold; font-size: 16px; text-decoration: none;"
    onclick
    ="rotateLeft('theimage',90);">左转</a><br>
    <img src="a.jpg" id="theimage" onload="resizeimg(this,this.width,this.height)" width="100%" alt="800×1422" style="cursor: pointer;" /> </a> <div style="clear: both"> </div> </div> </div>
  • 相关阅读:
    【赵强老师】使用MongoDB的Web控制台
    【赵强老师】Oracle的PGA与数据库连接建立的过程
    【赵强老师】什么是Redis Cluster
    使用混合列压缩(HCC)创建表时,收集此表的统计信息可能会失败,会报ORA-03113,并且警报日志显示以下ORA-07445:
    2. dmdb 达梦数据库安装手册
    1.DM数据库参数说明
    IMPDP Hangs "WARNING:io_getevents timed out 600 sec"
    通过设置 events '1017 trace name context forever, level 3'; 找到帐号登录失败或者那个帐号被锁住
    oracle 12.2 pdb sqlplus 连接正常, sqldeveloper plsql 连接 hang住
    oracle 12c expdp 按用户导出 报ora-39170
  • 原文地址:https://www.cnblogs.com/ustcyc/p/3760116.html
Copyright © 2011-2022 走看看