Fabricjs中canvas的事件绑定

var canvas = new fabric.Canvas('c')

canvas.on({key:value,.....})  //key为eventname

canvas.on('eventname',fun)

canvas事件绑定源码↓

  /**
   * Observes specified event
   * @memberOf fabric.Observable
   * @alias on
   * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler})
   * @param {Function} handler Function that receives a notification when an event of the specified type occurs
   * @return {Self} thisArg
   * @chainable
   */
  function on(eventName, handler) {
    if (!this.__eventListeners) {
      this.__eventListeners = {};
    }
    // one object with key/value pairs was passed
    if (arguments.length === 1) {
      for (var prop in eventName) {
        this.on(prop, eventName[prop]);
      }
    } else {
      if (!this.__eventListeners[eventName]) {
        this.__eventListeners[eventName] = [];
      }
      this.__eventListeners[eventName].push(handler);
    }
    return this;
  }

on的参数有两种格式:

1canvas.on(eventname,fn); //绑定单个事件

2canvas.on({eventname1:fn1,eventname2:fn2}); //绑定多个事件

以下列出所有的event

  • object
    • :modified
    • :rotating
    • :scaling
    • :moving
    • :skewing
  • before
    • :transform
    • :selection:cleared
  • selection
    • :cleared
    • :updated
    • :created
  • path
    • :created
  • mouse
    • :down
    • :move
    • :up
    • :down:before
    • :move:before
    • :up:before
    • :over
    • :out
    • dbclick
  • event
    • :dragover
    • :dragenter
    • :dragleave
  • drop
    • :before
  • event
    • :drop
  • after
    • :render
  • before
    • :render
posted @ 2022-04-07 17:25  聂小恶  阅读(621)  评论(0编辑  收藏  举报