源代码如下,该缩放方法支持,中心缩放,锁定比例,最大值,最小值,防止溢出父容器。
      /**************************************************
       * Action Bin Zoom
       */
      var _bin = function(that, p/* event, target, keepCenter, keepRatio, keepWidth, keepHeight, maxWidth, maxHeight, minWidth, minHeight, window */) {
        try {
          var w = p.window || window;
          var t = that.$(p.target, w);
          var _a = that.getDocumentByScroll(w).x;
          var _b = that.getDocumentByScroll(w).y;
          var _c = that.getDocumentBySize(w).width;
          var _d = that.getDocumentBySize(w).height;
          var _e = t.parentNode == w.document.body ? _a : t.parentNode.scrollLeft;
          var _f = t.parentNode == w.document.body ? _b : t.parentNode.scrollTop;
          var _g = t.parentNode == w.document.body ? _c : parseInt(that.getElementByStyle(t.parentNode, w).width);
          var _h = t.parentNode == w.document.body ? _d : parseInt(that.getElementByStyle(t.parentNode, w).height);
          var _i = that.getElementBySite(t, w).left;
          var _j = that.getElementBySite(t, w).top;
          var _k = t.offsetLeft;
          var _l = t.offsetTop;
          var _m = t.offsetWidth;
          var _n = t.offsetHeight;
          var _o = p.event.clientX;
          var _p = p.event.clientY;
          var _q = _o <= (_i - _a + _m / 2) ? 1 : 0;
          var _r = _p <= (_j - _b + _n / 2) ? 1 : 0;
          var f = function(event) {
            var e = event || w.event;
            var _s = e.clientX;
            var _t = e.clientY;
            var _u = p.keepRatio && _m > _n ? (_q == _r ? _o + _t - _p : _o - _t + _p) : _s;
            var _v = p.keepRatio && _m <= _n ? (_q == _r ? _p + _s - _o : _p - _s + _o) : _t;
            var _w = _k - (_q ? _o - _u : p.keepCenter ? _u - _o : 0);
            var _x = _l - (_r ? _p - _v : p.keepCenter ? _v - _p : 0);
            var _y = _m + (_q ? _o - _u : _u - _o) * (p.keepCenter ? 2 : 1);
            var _z = _n + (_r ? _p - _v : _v - _p) * (p.keepCenter ? 2 : 1);
            if(p.keepRatio && (_w < _e || _x < _f || _e + _g < _w + _y || _f + _h < _x + _z || _y < p.minWidth || _z < p.minHeight)) {
              return;
            }
            if(!p.keepWidth && p.minWidth <= _y && _y <= p.maxWidth && _e <= _w && _w + _y <= _e + _g) {
              t.style.left = _w + "px";
              t.style.width = _y + "px";
            }
            if(!p.keepHeight && p.minHeight <= _z && _z <= p.maxHeight && _f <= _x && _x + _z <= _f + _h) {
              t.style.top = _x + "px";
              t.style.height = _z + "px";
            }
            that.cancelBubble(e);
            that.cancelDefault(e);
          };
          p.maxWidth = p.maxWidth || Infinity ;
          p.maxHeight = p.maxHeight || Infinity;
          p.minWidth = p.minWidth || 50;
          p.minHeight = p.minHeight || 50;
          that.attachEvent(w.document, {mousemove : f});
          that.attachEvent(t, {mouseup : function() {that.detachEvent(w.document, {mousemove : f})}});
          that.cancelBubble(p.event);
          that.cancelDefault(p.event);
        } catch(error) {        }
      };
      iWant.bin.action["zoom"] = _bin;
      iWant.bin.action["缩放"] = _bin;
      /**************************************************/
这是演示地址:http://www.izhaoyang.com/test3/啊对,演示用的照片是我,求一媳妇有木有!

解决方案 »

  1.   

    Internet Explorer 8/6
    Mozilla Firefox
    Safari
    Opera
    Chrome我全测试,怎么可能没有效果
      

  2.   

    稍微弄点可读性把
    不然3个星期后 你自己也改不了自己的代码var _p 和 var photo
    在编译器看来 应该没多大区别吧
    在人眼看来 区别就大了注释也详细点压缩的话 交给专门的压缩工具吧
      

  3.   

    我刚装了个360,效果挺好的Internet Explorer 8/6
    Mozilla Firefox
    Safari
    Opera
    Chrome我全测试过,不可能在有什么浏览器没有效果,麻烦说没效果的先去看演示地址,如果是来捣乱的请自重!
      

  4.   

    这是演示地址:http://www.izhaoyang.com/test3/
      

  5.   


    chrome表示无效果
    IE6表示同无效果
    LZ换机试试
      

  6.   

    不错。不过我一条语句就能做出和楼主一模一样的功能了。location = "http://www.izhaoyang.com/test3/";PS:鼠标按下不放,拖动到页面外边放开,鼠标移动回页面再看看。楼主加油。
      

  7.   

    楼主是一位有为的价值7000元得javascript工程师,既然这是你的本职工作,那么这是理所应当的,我们不是专职的js工程师,能力不如你也无可厚非。yes or right?
      

  8.   

    并不是代码越少的东西一定是最好的,虽然楼主厉害,但做人要低调啊。。
    你可以看看这里面的js
    http://www.renrousousuo.com/
      

  9.   

    向来对精短代码表示佩服。
    LZ keep going
    给你推荐个国外疯子的站点,也是代码很短,效果很牛,可能你也看过了
    什么3d效果的都是浮云
      

  10.   

    http://www.dhteumeuleu.com/
    这个站点的效果有很多估计已经是js的极限了,各种看不懂的公式,不知道国内有无人做专门研究。
      

  11.   

    /// <summary>
    /// 获得指定范围的随机数
    /// </summary>
    难道用vs开发的?怎么还有这种注释……
      

  12.   

    这位大侠本身是一个delphi高手,也说不定这是他自己设计的编辑工具。我觉得你应该去请教一下他,他有宝贵的经验,或许能给你点帮助,我记得他曾经有一个回复,关于一个程序员在技术实现上应该注意点什么,当初也没看太明白,现在想找又找不到了。不过完全跟楼主发的这两个帖子里的说法不相同
      

  13.   

    防止溢出父容器 是什么啊   听起来很牛B哦   就是不让小div移除大div?
      

  14.   


    你要不是我爷爷就别号称我爷爷,我爷爷1937年参军抗战也是你这等x比的了的?我很敬佩我爷爷,也就你这样的x人能干出这样的x事,我说话是不好听,但是我先问候你母亲了?也就你能干出来,小心折寿。
      

  15.   


    不是你丫的那么冲,会成这,别TMD装逼了,现在说这哩MD 老子就当你爷!!!
      

  16.   


    此yeye非彼爷爷,yeye ≠ 爷爷,yeye只不过是个烧饼而已
      

  17.   


    yeye ≠ 爷爷,yeye只不过是个烧饼而已,而且还是个文盲
      

  18.   

    我也是从其它贴子过来的,是过来看看LZ有多NB的,可我没看到有多NB,但看到了一个傲气的SB,令我想起武侠小说里常出现的人物,懂一点武功就到处炫耀找人比试的狂徒。学学水哥牛人这份淡定与沉稳吧!