1.0.1 • Published 2 years ago

a-canvas v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

a-canvas


下载 & 引用

  npm i a-canvas
  
  import ACanvas from 'ACanvas'

  ACanvas.start('xx','xx','xx')

说明

前身是 tag-canvas,很不错的一个转canvas3D圆形工具,但是相关文档几乎已经没有,所以自己重构了一下并补全文档,修改了一些已经弃用的语法和删除一些功能

改动

删除以下功能

  • 播放音频功能 (感觉没什么意义)
  • 图片功能 (这个插件不支持使用图片,有图片需求的小伙伴还是要用tag-canvas)

修改如下

  • start(xx,xx,xx) 第二个参数不再只是获取元素 id,也可以通过 .className 实现
  • updata 函数暂时以 reload 代替
关于 a 标签
  • a 标签内使用 br 将不会换行,因为会有额外 bug 增加,所以去掉了这个功能
  • 设置字体时,新加/修改:textFontStyle、textFontFamily 属性,如果要使用样式覆盖的话,请使用 font 属性

初始化 option 所有参数说明

键值类型默认值说明
shapestring'sphere'共有动画模式:spherevcylinderhcylindervringhring
lockstringnull锁定方向:'x' 或者 'y'
intervalnumber20动画执行间隔时间,以毫秒为单位,值越小越慢,否则反之
activeCursorstring'pointer'元素瞄准后的样式,可参考 cursor 属性
textColourstring'#000000'默认文字颜色,也可通过元素样式覆盖
textFontStylestring''遵循css中的font,同 style、weight 两个属性
textHeightnumber16遵循css中的font,同 size 属性,设置默认文字大小
textFontFamilystring'Helvetica, Arial, sans-serif'遵循css中的font,同 family 属性
initialnumber[]null球体朝向移动,第一个参数为 x,第二个参数为 y,推荐使用 0.1,0.1
hideElementbooleantrue是否隐藏 Element 元素
freezeActivebooleanfalse瞄准元素立即停止
freezeDecelbooleanfalse瞄准元素进行减速
frontSelectbooleantrue画布背面/远处的元素是否可以瞄准点击
zoomnumber1缩放级别
wheelZoombooleantrue是否启用滚轮/手势缩放
zoomMinnumber0.3最小缩放值
zoomMaxnumber3最大缩放值
zoomStepnumber0.05每次鼠标滑动滚轮时的缩放变焦量
dragControlbooleanfalse控制是否可以拖动旋转
reversebooleanfalse瞄准画布后的旋转样式,前提 dragControl:false
dragThresholdnumber0拖动的距离阀值,前提 dragControl:true
depthnumber0.5控制 z 轴距离(0.0-1.0)
maxBrightnessnumber1距离远处的字体最大透明度
minBrightnessnumber0.1距离远处的字体最小透明度
maxSpeednumber0.01控制旋转最大速度
minSpeednumber0控制旋转最小速度
decelnumber0.95拖动后的缓冲减速
radiusXnumber1画布 X 轴扩大倍数
radiusYnumber1画布 Y 轴扩大倍数
radiusZnumber1画布 Z 轴扩大倍数
stretchXnumber1画布延伸 X 轴倍数
stretchYnumber1画布延伸 Y 轴倍数
offsetXnumber0画布偏移 X 轴距离(px)
offsetYnumber0画布偏移 Y 轴距离(px)

演示样式

以下函数均以此块标签模板为例

  <canvas id="canvas"></canvas>
  <div class="a-list" id="a-list">
      <a id="a1">a1标签</a>
      <a id="a2">a2标签</a>
  </div>
start() 初始画布

类型:Function start(string,string,object)

  • argumen1
    • 画布ID
  • argumen2
    • 元素列表ID / Class
  // 第二个参数 .a-list #a-list 都可以
  start('canvas','.a-list',{option...})
tagToFront() 元素置于中心点

类型:Function tagToFront(string,object)

object 参数

  • id: string
    • 当前画布的 id
  • callback: (Canvas,A元素) => void
    • 回调函数里的第一个参数为当前画布,第二个参数为当前事件元素
  • time: number 默认:500 毫秒
    • 执行动画的时间
  tagToFront('canvas',{
      id:"a1",
      time: 500,
      callback: (c, a) => {}
  })
rotateTag() 元素置于自定义位置

类型:Function rotateTag(string,object)

object 参数

  • id: string
    • 当前画布的 id
  • callback: (Canvas,A元素) => void
    • 回调函数里的第一个参数为当前画布,第二个参数为当前事件元素
  • time: number 默认:500 毫秒
    • 执行动画的时间
  • lat: number
    • 元素移动到 X 轴某处
  • lng: number

    • 元素移动到 Y 轴某处
  rotateTag('canvas',{
      id:"a1",
      time: 500,
      lat: 10, 
      lng: 10,
      callback: (c, a) => {}
  })
setDirection() 画布朝向旋转

类型:Function setDirection(string,number[])

  • [x, y]
    • x 轴从 0 到 0.1,Y 轴从 0 到 0.1,所以是向右上方缓慢行驶
  setDirection('canvas',[0.1,0.1])
updata() 更新元素数据 (暂以reload为代替)

类型:Function updata(string)

  updata('canvas')
reload() 更新画布

类型:Function reload(string)

  reload('canvas')
delete() 清除画布

类型:Function delete(string)

  delete('canvas')
1.0.1

2 years ago

1.0.0

2 years ago

1.0.3

2 years ago

1.0.4

2 years ago