欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript实现图片的放大缩小及拖拽功能示例

程序员文章站 2023-12-01 19:32:46
本文实例讲述了javascript实现图片的放大缩小及拖拽功能。分享给大家供大家参考,具体如下: 实现效果如下: 实现代码:

本文实例讲述了javascript实现图片的放大缩小及拖拽功能。分享给大家供大家参考,具体如下:

实现效果如下:

JavaScript实现图片的放大缩小及拖拽功能示例

实现代码:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>title</title>
  <style>
    div{width:400px;height:400px;overflow:hidden;position:relative;border:1px solid #000;}
    div img{position:absolute;height:100%;width:auto;cursor:move;}
  </style>
</head>
<body>
<div id="div" onmousewheel="return bbimg(this)"><img id="img" border="0" src="img/zs.jpg" /></div>
<script language="javascript">
  var params = {
    zoomval:1,
    left: 0,
    top: 0,
    currentx: 0,
    currenty: 0,
    flag: false
  };
  //图片缩放
  function bbimg(o){
    var o=o.getelementsbytagname("img")[0];
    params.zoomval+=event.wheeldelta/1200;
    if (params.zoomval >= 0.2) {
      o.style.transform="scale("+params.zoomval+")";
    } else {
      params.zoomval=0.2;
      o.style.transform="scale("+params.zoomval+")";
      return false;
    }
  }
  //获取相关css属性
  var getcss = function(o,key){
    return o.currentstyle? o.currentstyle[key] : document.defaultview.getcomputedstyle(o,false)[key];
  };
  //拖拽的实现
  var startdrag = function(bar, target, callback){
    if(getcss(target, "left") !== "auto"){
      params.left = getcss(target, "left");
    }
    if(getcss(target, "top") !== "auto"){
      params.top = getcss(target, "top");
    }
    //o是移动对象
    bar.onmousedown = function(event){
      params.flag = true;
      if(!event){
        event = window.event;
        //防止ie文字选中
        bar.onselectstart = function(){
          return false;
        }
      }
      var e = event;
      params.currentx = e.clientx;
      params.currenty = e.clienty;
    };
    document.onmouseup = function(){
      params.flag = false;
      if(getcss(target, "left") !== "auto"){
        params.left = getcss(target, "left");
      }
      if(getcss(target, "top") !== "auto"){
        params.top = getcss(target, "top");
      }
    };
    document.onmousemove = function(event){
      var e = event ? event: window.event;
      if(params.flag){
        var nowx = e.clientx, nowy = e.clienty;
        var disx = nowx - params.currentx, disy = nowy - params.currenty;
        target.style.left = parseint(params.left) + disx+ "px";
        target.style.top = parseint(params.top) + disy+ "px";
        if (typeof callback == "function") {
          callback((parseint(params.left) || 0) + disx, (parseint(params.top) || 0) + disy);
        }
        if (event.preventdefault) {
          event.preventdefault();
        }
        return false;
      }
    }
  };
  startdrag(document.getelementbyid("img"),document.getelementbyid("img"))
</script>
</body>
</html>

更多关于javascript相关内容感兴趣的读者可查看本站专题:《javascript图片操作技巧大全》、《javascript切换特效与技巧总结》、《javascript运动效果与技巧汇总》、《javascript动画特效与技巧汇总》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结

希望本文所述对大家javascript程序设计有所帮助。