zoukankan      html  css  js  c++  java
  • 自己动手,实现jQuery中的ImageCopper.

      最近经常看到园子里的同学提到jQuery(其实很早时就有同事把它用到项目中了),不小心又看到一篇文章里说到jQuery,随手点了里面的一个链接,进到了jQuery的UI的站,在里面随便看了几个demo,没吸引到我,这时,发现了一个叫Image Copper的东东,因为很早前见到一个同事做项目的时候用过差不多的东西,那时候对我来说比较神奇,一直也没研究过,所以点了进去,竟然发现Demo不能用,我想,应该是Opera的问题吧,我换Firefox一看,晕了,还是不行,难道jQuery没做兼容么?只能在IE用?我又打开了IE,结果IE里也预览不了,唉,看来是我人品有问题了,3个浏览器都看不到他的Demo效果.
      看这东西实现起来应该也不算难吧,自己写来玩玩?那就试试吧.说做就做,开始写,结果发现越写越不简单,写到后面,代码越来越多,看来这东西实现起来是有些麻烦,还是硬着头皮写完了,大家就自己看看效果吧,代码里有简单的注释,暂时没有经过严格的测试,问题肯定是有的,像我这样整天晕乎乎的人,没问题那就不正常了.
    下面是3个简单的Demo.

    调用时,除了第一个参数必须外,其它的两个可传可不传,直接new就好了,其它的什么css的都不要了,就为了调用简单些,所以代码写得麻烦了些.
    调用参数说明:
    new ImageCopper(el, option, callback);
    el : element,要附加ImageCopper的img元素,必须.
    option : {},接收一些设置参数,可为空,共有如下参数:
    {Width : 拖动层的初始宽度,
    Height : 拖动层的初始高度,
    Left : 拖动层的初始Left,
    Top : 拖动层的初始Top,
    Locked : 是否锁定尺寸,
    LockRate : 是否保持宽高比,
    Rate : 高宽比}
    callback : function,在尺寸和位置改变后,用于接收数据的方法,可为空,传递的数据x,y,w,h分别为Left,Top,Width,Height.
    当然,在new ImageCopper()后再指定OnComplete也是可以的,只是有时候想把代码写在一行时就直接传个callback就可以了.
    这个东东在IE中的效果可能会好些,因为IE中有个setCapture方法,其它浏览器中只要鼠标移出了当前拖动的Dom元素后拖动就会停止.

    OK.就这么多了,再次感谢李战老师,虽然那悟透Javascript我啥都没悟到(因为我太笨了),但也还是找李老师学了点皮毛,哈哈.

    附:Demo及源码下载
  • 相关阅读:
    168. Excel Sheet Column Title
    171. Excel Sheet Column Number
    264. Ugly Number II java solutions
    152. Maximum Product Subarray java solutions
    309. Best Time to Buy and Sell Stock with Cooldown java solutions
    120. Triangle java solutions
    300. Longest Increasing Subsequence java solutions
    63. Unique Paths II java solutions
    221. Maximal Square java solutions
    279. Perfect Squares java solutions
  • 原文地址:https://www.cnblogs.com/robot/p/1244762.html
Copyright © 2011-2022 走看看