1. 程式人生 > 其它 >Fabricjs中canvas的事件繫結

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