js实现图片的缩放、移动、旋转、拖拽

JS代码

<script type="text/javascript">
    function load() {
        init();
    }
        // 缩放图片
        function imgToSize(oBool) {
            var pic = document.getElementById("pic");
            pic.style.zoom = parseInt(pic.style.zoom) + (oBool ? 2 : -2) + '%';
            text.defaultValue=pic.style.zoom;
        }
        //还原尺寸
        function restore() {
            var pic = document.getElementById("pic");            
            pic.style.zoom = '100%';
            pic.style.left = "0px";
            pic.style.top = "0px";
            text.defaultValue=pic.style.zoom;
        }
        // 旋转图片
        var current = 0;
        function imgRoll(direction) {
            var pic = document.getElementById("pic");
            if (direction == "left") {
                current = (current - 90) % 360;
            }
            else if (direction == "right") {
                current = (current + 90) % 360;
            }
            pic.style.transform = 'rotate(' + current + 'deg)';
        }
        //图片拖拽
        drag = 0;
        move = 0;
        function mousedown() {
            if (drag) {
                X1 = window.event.x - parseInt(pic.style.left);
                Y1 = window.event.y - parseInt(pic.style.top);
                move = 1;
            }
        }
        function onmouseover() {
            drag = 1;
        }
        function mouseStop() {
            window.event.returnValue = false;
        }
        function mousemove() {
            if (move) {
                pic.style.left = (window.event.x - X1) + "px";
                pic.style.top = (window.event.y - Y1) + "px";
            }
        }
        function mouseup() {
            move = 0;
        }
        function init() {
            var pic = document.getElementById("pic");
            pic.style.zoom="100%";
            pic.style.left="0px";
            pic.style.top="0px";
            pic.style.position="relative";
            pic.style.cursor="move";
            document.all.pic.onmouseover = onmouseover;
            document.all.pic.onmousemove = mousemove;
            document.all.pic.onmousedown = mousedown;
            document.all.pic.onmouseup = mouseup;
            document.all.pic.ondragstart = mouseStop;
        }
    </script>

html代码:

<body onload="load()">
    <div style="text-align:center;">
        <img id="pic" src="landscape-4615578_960_720.webp.jpg" />
    </div>
<br/>
<div class="btn">
    <button class="btnleft" onclick="imgRoll('left');">左转</button>
    <button class="btnright" onclick="imgRoll('right');">右转</button>
    <button class="btnup" onclick="imgToSize(1);">放大</button>
    <button class="btndown" onclick="imgToSize(0);">缩小</button>
    <button class="btnreturn" onclick="restore();">还原</button>
​
</div>
</body>

效果图:

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现图片缩放移动旋转,可以利用HTML5中的canvas元素和JavaScript来实现。具体的步骤如下: 1. 在HTML中创建canvas元素,并设置它的宽度和高度,以及一个放置图片的容器元素。 ```html <canvas id="myCanvas" width="500" height="500"></canvas> <div id="image-container"></div> ``` 2. 在JavaScript中,获取canvas元素和容器元素,并创建一个Image对象来加载图片。 ```javascript var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); var img = new Image(); img.onload = function() { // 图片加载完成后执行以下代码 }; img.src = "path/to/image.jpg"; ``` 3. 在Image对象加载完成后,将它绘制到canvas上,并将canvas中的图像转换为一个可缩放、可旋转、可拖动的对象。 ```javascript var container = document.getElementById("image-container"); var imageObject = { x: canvas.width / 2, // 图片中心点的x坐标 y: canvas.height / 2, // 图片中心点的y坐标 width: img.width, // 图片的宽度 height: img.height, // 图片的高度 angle: 0, // 图片旋转角度,单位为弧度 scale: 1 // 图片缩放比例 }; // 将图片绘制到canvas上 ctx.drawImage(img, 0, 0); // 将canvas中的图像转换为一个可缩放、可旋转、可拖动的对象 var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); container.style.width = canvas.width + "px"; container.style.height = canvas.height + "px"; container.style.backgroundImage = "url(" + canvas.toDataURL() + ")"; container.style.backgroundSize = "100% 100%"; ``` 4. 实现图片缩放移动旋转功能。对于缩放旋转,可以利用CSS3的transform属性来实现;对于移动,可以通过修改图片对象的x和y属性来实现。 ```javascript // 缩放图片 function zoomImage(scale) { imageObject.scale *= scale; container.style.transform = "rotate(" + imageObject.angle + "rad) scale(" + imageObject.scale + ")"; } // 旋转图片 function rotateImage(angle) { imageObject.angle += angle; container.style.transform = "rotate(" + imageObject.angle + "rad) scale(" + imageObject.scale + ")"; } // 移动图片 function moveImage(dx, dy) { imageObject.x += dx; imageObject.y += dy; container.style.left = imageObject.x - imageObject.width / 2 + "px"; container.style.top = imageObject.y - imageObject.height / 2 + "px"; } ``` 以上代码仅为示例,具体实现方式可能会因具体需求而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值