ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Fabricjs中canvas的事件绑定

2022-04-07 17:35:19  阅读:282  来源: 互联网

标签:canvas 绑定 eventListeners eventName Fabricjs handler event before


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

标签:canvas,绑定,eventListeners,eventName,Fabricjs,handler,event,before
来源: https://www.cnblogs.com/em2464/p/16113340.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有