vue 组件开发 ---- rui-vue-poster 海报制作

绘制海报

预览效果【最好在移动设备预览】

体验二维码

在这里插入图片描述

介绍

海报插件,用于分享和保存海报,便于快捷开发!

引入

  1. 下载插件包
    海报插件

  2. 引入

  <script src="./js/rui-vue-poster.js"></script>

代码演示

HTML 代码演示
  <div class="rui-create-poster" @click="showPopup()">点击生成海报去分享</div>
  <div class="rui-layer-mark" v-show="popupshow" @click="popupshow=false">
    <div class="rui-layer-content" @click.stop="stop()">
      <div class="rui-poster-content">
        <rui-vue-poster :posterinfos="posterInfos" :scale="500" @success="success"></rui-vue-poster>
      </div>
      <div class="rui-poster-text">长按图片3秒可直接分享好友,与好友共享此刻心情或保存至手机</div>
    </div>
  </div>
JS 代码演示
  var app = new Vue({
    el: '#app',
    data:{
      popupshow: false,
      posterInfos: {},
      index: 0,
      posters: [
        {
          imgurl: './images/imgfengjing1.jpg',
          text: '一个背包,几本书,所有喜欢的歌,一张单程车票,一颗潇洒的心。'
        },
        {
          imgurl: './images/imgfengjing2.jpg',
          text: '下一站,家。'
        },
        {
          imgurl: './images/imgfengjing3.jpg',
          text: '在路上,永远年轻,永远热泪盈眶。'
        },
      ]
    },
    methods: {
      showPopup(){
        this.popupshow = true; 
        this.canvasDataInit();
      },
      changeImg(){
        if(this.index < this.posters.length - 1){
          this.index += 1;
        } else {
          this.index = 0;
        }
      },
      stop(){
        this.posterInfos = {};
        return false;
      },
      success(canvas) {
        this.canvas = canvas;
      },
      // 海报数据
      canvasDataInit() {
        let shareInfos = {
          width: 400,
          height: 485,
          backgroundColor: '#fff',
          views: [{
              type: 'image',
              url: this.posters[this.index].imgurl,
              css: {
                top: 0,
                left: 0,
                width: 400,
                height: 400
              },
              list: [
                {
                  type: 'text',
                  text: this.posters[this.index].text,
                  css: {
                    color: '#ffffff',
                    lineHeight: 32,
                    maxLines: 2,
                    textAlign: 'left',
                    width: 360,
                    fontSize: 20,
                    top: 345,
                    left: 20
                  }
                }
              ]
            },
            {
              type: 'image',
              url: './images/qrcode.jpg',
              css: {
                top: 413,
                left: 20,
                width: 60,
                height: 60
              }
            },
            {
              type: 'text',
              text: `长按识别二维码,在[WX-RUI]体验更多效果`,
              css: {
                color: '#222222',
                lineHeight: 32,
                maxLines: 1,
                textAlign: 'left',
                width: 280,
                fontSize: 13,
                top: 435,
                left: 100
              }
            },
            {
              type: 'text',
              text: `再体验,在[WX-RUI]`,
              css: {
                color: '#222222',
                lineHeight: 32,
                maxLines: 1,
                textAlign: 'left',
                width: 280,
                fontSize: 16,
                top: 460,
                left: 100
              }
            }
          ]
        };
        this.posterInfos = shareInfos;
      }
    }
  })

API

props
参数说明类型默认值
posterinfos海报绘制数据Object{}
scale海报设计的为宽度Number750
posterinfos
参数说明类型默认值
width绘制海报的设计宽度Number400
height绘制海报的设计高度Number500
backgroundColor海报的背景色String#ffffff
views绘制海报的图片和文字Array[]
posterinfos.views
参数说明类型默认值
type绘制海报的类型 image/textString‘’
css绘制海报的类型的样式Object{}
url绘制海报是图片类型时String‘’
text绘制海报是文本类型时String‘’
list当前类型绘制后需要绘制等同viewsArray[]
css
  1. image
参数说明类型默认值
top当前图片的起始top值Number0
left当前图片的起始left值Number0
width当前图片的宽度Number0
height当前图片的高度Number0
  1. text
参数说明类型默认值
top当前文本的起始top值Number0
left当前文本的起始left值Number0
width当前文本的显示宽度Number200
fontSize当前文本的字的大小Number20
lineHeight当前文本的行间距Number30
maxLines当前文本的最大行数Number3
color当前文本的颜色String#333333
textAlign当前文本的对齐方式Stringstart
textBaseline在绘制文本时的当前文本基线Stringalphabetic
textAlign
描述
start默认。文本在指定的位置开始。
end文本在指定的位置结束。
center文本的中心被放置在指定的位置。
left文本左对齐。
right文本右对齐。
textBaseline
描述
alphabetic默认。文本基线是普通的字母基线。
top文本基线是 em 方框的顶端。
hanging文本基线是悬挂基线。
middle文本基线是 em 方框的正中。
ideographic文本基线是表意基线。
bottom文本基线是 em 方框的底端。
Events
事件说明回调参数
success海报绘制完成后的回调canvas
fail海报绘制失败的回调canvas
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rattenking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值