JS实现鼠标滚轮缩小放大拖动图片代码

6 篇文章 0 订阅
5 篇文章 0 订阅

Jquery,JS实现鼠标滚轮缩小放大拖动图片代码

直接上代码:可以直接使用:

<!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" lang="utf-8">
<head>
<title> 代码实例:拖动对象 Drag Object (兼容:IE、Firefox、Opera ... )</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style>
.dragAble {position:relative;cursor:move;}
  .img-con {
    	position:relative;
        width: 713px;
        height: 455px;
        overflow: hidden;
        border: 1px solid red;
		
    }
</style>
<script language="javascript">
//放大缩小
 window.onload = function() {
        var oImg = document.getElementsByTagName("img")[0];

        function fnWheel(obj, fncc) {
            obj.onmousewheel = fn;
            if (obj.addEventListener) {
                obj.addEventListener('DOMMouseScroll', fn, false);
            }

            function fn(ev) {
                var oEvent = ev || window.event;
                var down = true;

                if (oEvent.detail) {
                    down = oEvent.detail > 0
                } else {
                    down = oEvent.wheelDelta < 0
                }

                if (fncc) {
                    fncc.call(this, down, oEvent);
                }

                if (oEvent.preventDefault) {
                    oEvent.preventDefault();
                }

                return false;
            }


        };
        fnWheel(oImg, function(down, oEvent) {

            var oldWidth = this.offsetWidth;
            var oldHeight = this.offsetHeight;
            var oldLeft = this.offsetLeft;
            var oldTop = this.offsetTop;

            var scaleX = (oEvent.clientX - oldLeft) / oldWidth; //比例
            var scaleY = (oEvent.clientY - oldTop) / oldHeight;

            if (down) {
                this.style.width = this.offsetWidth * 0.9 + "px";
                this.style.height = this.offsetHeight * 0.9 + "px";
            } else {
                this.style.width = this.offsetWidth * 1.1 + "px";
                this.style.height = this.offsetHeight * 1.1 + "px";
            }

            var newWidth = this.offsetWidth;
            var newHeight = this.offsetHeight;

            this.style.left = oldLeft - scaleX * (newWidth - oldWidth) + "px";
            this.style.top = oldTop - scaleY * (newHeight - oldHeight) + "px";
        });
    }
<!--
//拖拽
var ie=document.all;
var nn6=document.getElementByIdx&&!document.all;
var isdrag=false;
var y,x;
var oDragObj;
function moveMouse(e) {
 if (isdrag) {
 oDragObj.style.top  =  (nn6 ? nTY + e.clientY - y : nTY + event.clientY - y)+"px";
 oDragObj.style.left  =  (nn6 ? nTX + e.clientX - x : nTX + event.clientX - x)+"px";
 return false;
 }
}
function initDrag(e) {
 var oDragHandle = nn6 ? e.target : event.srcElement;
 var topElement = "HTML";
 while (oDragHandle.tagName != topElement && oDragHandle.className != "dragAble") {
 oDragHandle = nn6 ? oDragHandle.parentNode : oDragHandle.parentElement;
 }
 if (oDragHandle.className=="dragAble") {
 isdrag = true;
 oDragObj = oDragHandle;
 nTY = parseInt(oDragObj.style.top+0);
 y = nn6 ? e.clientY : event.clientY;
 nTX = parseInt(oDragObj.style.left+0);
 x = nn6 ? e.clientX : event.clientX;
 document.onmousemove=moveMouse;
 return false;
 }
}
document.onmousedown=initDrag;
document.onmouseup=new Function("isdrag=false");
//-->
</script>
</head>
<body>
 <p class="img-con"><img src="test.png" class="dragAble" /></p>
</body>
</html>

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论
以下是一个简单的JavaScript实现图片鼠标位置的放大缩小及拖拽功能的示例: HTML代码: ```html <div id="image-container"> <img id="image" src="example.jpg" /> </div> ``` CSS代码: ```css #image-container { width: 500px; height: 500px; overflow: hidden; position: relative; } #image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; cursor: move; } ``` JavaScript代码: ```javascript var container = document.getElementById("image-container"); var image = document.getElementById("image"); // 初始缩放比例为1 var scale = 1; // 鼠标按下时的位置 var mouseX = 0; var mouseY = 0; // 鼠标是否按下 var isMouseDown = false; // 鼠标按下时记录鼠标位置 container.addEventListener("mousedown", function(event) { isMouseDown = true; mouseX = event.clientX; mouseY = event.clientY; }); // 鼠标松开时重置鼠标状态 container.addEventListener("mouseup", function(event) { isMouseDown = false; }); // 鼠标移动时缩放或拖拽图片 container.addEventListener("mousemove", function(event) { if (isMouseDown) { // 鼠标按下时拖拽图片 var deltaX = event.clientX - mouseX; var deltaY = event.clientY - mouseY; image.style.left = parseInt(image.style.left) + deltaX + "px"; image.style.top = parseInt(image.style.top) + deltaY + "px"; mouseX = event.clientX; mouseY = event.clientY; } else { // 鼠标未按下时缩放图片 var deltaScale = 0; if (event.deltaY < 0) { deltaScale = 0.1; } else if (event.deltaY > 0) { deltaScale = -0.1; } scale += deltaScale; // 最小缩放比例为0.1 scale = Math.max(scale, 0.1); image.style.transform = "scale(" + scale + ")"; } }); ``` 这段代码实现了以下功能: 1. 鼠标按下并拖拽图片时,图片跟随鼠标移动。 2. 鼠标未按下时,通过滚轮上下滑动实现图片放大缩小,最小缩放比例为0.1。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java大表哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值