omi/packages/omi-canvas
dntzhang b76ebbb522 update readme 2018-11-19 09:33:03 +08:00
..
assets update readme 2018-11-19 09:28:38 +08:00
dist omi-canvas - perfect example and code implementation 2018-11-17 16:05:21 +08:00
examples/simple omi-canvas - supports group 2018-11-19 09:23:24 +08:00
src omi-canvas - supports group 2018-11-19 09:23:24 +08:00
README.md update readme 2018-11-19 09:33:03 +08:00
package.json omi-canvas v0.0.0 2018-11-17 15:26:53 +08:00
webpack.config.js omi-canvas v0.0.0 2018-11-17 15:26:53 +08:00

README.md

omi-canvas

Perfect fusion of web components, jsx and canvas.

The current version is v0.0.0. v1.0.0 is coming soon.

→ Online DEMO

import { render, define, WeElement } from 'omi'
import 'omi-canvas'
import omiUrl from './omi.jpg'

define('my-app', class extends WeElement {
  static observe = true

  data = {
    scale: 0.5
  }

  css() {
    return `
        div{
          text-align: center;
        }`
  }

  onClick = (evt) => {
    this.data.scale = 0.5 + Math.random() * 0.1
  }

  render() {
    return (
      <div>
        <h1>Omi</h1>
        <omi-canvas width={400} height={400} css='border: 1px solid #ccc;'>
          <text
            text='Hello omi-canvas'
            font='30px Segoe UI'
            color='#ff7700'
            baseline='top'
            x={80}
            y={100}
          />
          <bitmap
            onClick={this.onClick}
            src={omiUrl}
            cursor='pointer'
            scale={this.data.scale}
            x={130}
            y={140}
          />
          <group alpha={0.5} y={270}>
            <text
              text='I am in a group.'
              font='30px Segoe UI'
              color='#ff7700'
              baseline='top'
              x={80}
            />
          </group>
        </omi-canvas>
      </div>
    )
  }
})

render(<my-app />, 'body')

The effect shown below:

Tag Supported

Name Describe
text Used to display text
bitmap Used to display image
group Used to group elements. Group can nested group.

Property

Transform

name Describe
x Horizontal offset
y Vertical offset
scaleX Horizontal scaling
scaleY Vertical scaling
scale Horizontal and Vertical scaling
rotation rotation
skewX skewX
skewY skewY
originX Rotation base point X
originY Rotation base point Y

Alpha

Name Describe
alpha The transparency of the element

Notice that the father and son have set up alpha to do multiplicative stacking.

compositeOperation

Name Describe
compositeOperation The superposition pattern drawn from the source image to the target image

Notice that if you don't have a definition of compositeOperation to look up, find the nearest compositeOperation's parent container as its own compositeOperation.

Cursor

Name Describe
cursor The shape of the mouse

Fixed

Name Describe
fixed Whether to fixed or not, the default is false, and set to true will not overlay the transform of ancestors.

Shadow

Name Describe
shadow shadow

Usage:

<text
  text='omi'
  shadow = {
    color: '#42B035',
    offsetX: -5,
    offsetY: 5,
    blur: 10
    } 
/>

Events Supported

Supported List
onClick
onTouchStart
onTouchMove
onTouchEnd
onTouchCancel
onMouseMove
onMouseDown
onMouseUp
onMouseOver
onMouseOut
onDblClick
onContextMenu
onDrag

License

MIT © dntzhang