vue实现随机生成分享海报(内容动态)

news/2025/2/12 4:53:33/

大家好,我是雄雄。

在这里插入图片描述

前言

昨天写了篇文章:自己整理的vue实现生成分享海报(含二维码),看着网上的没实现

主要是介绍了如何使用vue实现,动态分享内容为海报,且附带二维码,扫描二维码能直接进去文章的页面。但是有个小缺点,就是海报的背景,只有一种;

相信大家在看CSDN这种分享海报的时候,是可以随机切换精美背景的,今天,我们就来看看,随机海报背景如何实现。

最终效果

在这里插入图片描述
因为图片中含有二维码,可能后期会显示不出来,大家也可以自己去体验一下,体验步骤:

  1. 进入体验地址
  2. 拉到文章下面,点击【分享按钮】
    在这里插入图片描述
  3. 每次点击分享按钮,都会出现不一样的海报,点击完之后关掉,继续点击。

实现思路

现在我们来介绍一下实现思路。

  1. 首先我们选10张精美海报图片放在一个地方先存起来,我这边放在了七牛云里面了,大家可以自行放置,放在本地也可以,到时候注意路径不要写错就可以。(命名尽量有规律,我是这样命名的:fx-bg1.png,fx-bg2.png,fx-bg3.png……
  2. 生成海报的时候,我是将选好的图片当做背景图来实现的,所以我们背景图就得写成动态的,不能写死。
  3. 使用随机数的策略,每次点击【分享】按钮的时候,都随机取一个数,然后拼接到图片地址中,置换在背景图的值即可。

实现代码

  1. 将海报的背景图修改成动态的,html代码修改如下:
 <!--分享海报的弹出层--><el-dialogwidth="20%"height="200px"center:visible.sync="dialogFengXiang"><!-- 海报html元素 --><div id="posterHtml" v-show="isShowBg" :style="fxbg"><div class="fx_content "><span style="color: #000000;font-size: 16px">{{ posterTitle }}</span><p style="font-size: 12px;">关注微信公众号【雄雄的小课堂】;<br />博客网址:https://www.穆雄雄.com</p></div><!-- 二维码 --><div id="qrcodeImg" ref="qrcodeImg"></div></div></el-dialog>

注意这个地方: :style="fxbg"style前面是个冒号,这样才能是动态的。

  1. data中声明背景图的变量:
//背景图fxbg: ""
  1. 写一个生成随机数的方法,动态随机生成图片地址:
	//随机生成背景图getRandomBg() {let path = process.env.VUE_APP_IMG_API;let max = 10;let random = Math.floor(Math.random() * max) + 1;let img_url = path + "fx-bg" + random + ".png";this.fxbg = { backgroundImage: "url(" + img_url + ")" };},

path是图片地址,我是配置的,这个地方大家也可以直接写死。

  1. 在分享按钮的点击事件中调用即可。
	 //分享的功能fenxiang() {//生成随机背景图this.getRandomBg();//生成海报this.createPoster();//生成二维码this.createQrcode();this.dialogFengXiang = true;},

然后就可以实现啦,大家想要体验的话,可以前往:这里去体验。


http://www.ppmy.cn/news/6583.html

相关文章

【算法与数据结构】排序详解(C语言)

目录 前言 插入排序 希尔排序 选择排序 堆排序 冒泡排序 快速排序 hoare版本 ​编辑 挖坑法 前后指针版本 优化 非递归实现 归并排序 非递归实现 前言 &#x1f384;在生活中我们必不可少的就是对一组数据进行排序&#xff0c;所谓排序&#xff0c;就是使一串…

Redis分布式锁的实现方式

目录一、分布式锁是什么1、获取锁2、释放锁二、代码实例上面代码存在锁误删问题&#xff1a;三、基于SETNX实现的分布式锁存在下面几个问题1、不可重入2、不可重试3、超时释放4、主从一致性四、Redisson实现分布式锁1、pom2、配置类3、测试类五、探索tryLock源码1、tryLock源码…

GateWay网关

GateWay 1. 什么是网关 网关是微服务最边缘的服务&#xff0c;直接暴露给用户&#xff0c;用来做用户和微服务的桥梁 没有网关&#xff1a;客户端直接访问我们的微服务&#xff0c;会需要在客户端配置很多的ip&#xff1a;port&#xff0c;如果user-service并发比较大&#x…

Springboot+Netty实现基于天翼物联网平台CTWing(AIOT)终端TCP协议(透传模式)-设备终端(南向设备)

电信的天翼物联网平台CTWing(AIOT)原先是我们俗称的aep&#xff0c;主要用于接入nb-iot设备&#xff0c;当然也可以接入其他的设备&#xff0c;在熟悉AIOT平台后&#xff0c;做后端的我有时候急需终端样品(智能门禁&#xff0c;支付识别终端&#xff0c;CPE终端&#xff0c;考勤…

Nginx的反向代理及ssl配置

Nginx的反向代理及ssl配置 一、Nginx的安装1.下载nginx2.解压源码包3.安装开发环境4.安装nginx相关包5.安装openssl6.编译安装nginx7.检查nginx8.启动nginx二、反向代理配置1.配置nginx.cof2.重启nginx3.测试反向代理三、生成ssl证书1.创建证书目录2.生成私钥3.生成证书4.查看证…

【Transformer 练习】图分类任务(单步+整合code)

声明:仅学习使用~ 建议使用 Jupyter Notebook。当然PyCharm也可。 目录 一、各部分code以及输出1.1 数据集概述1.2 Mini-batching1.3 设计网络结构,训练。二、完整code一、各部分code以及输出 首先是数据集的下载方式:数据集下载所在链接(感兴趣的 看看就好,不需要主动下…

初识Docker:(3)Docker架构

初识Docker&#xff1a;&#xff08;3&#xff09;Docker架构镜像和容器Docker和DockerHubDocker架构总结镜像和容器 镜像&#xff08;Image&#xff09;&#xff1a;Docker将应用程序及其所需的以来、函数库、环境、配置等文件打包在一起&#xff0c;成为镜像。 容器&#x…

js中的JSON的简单用法

目录 1.JSON说明 2.JSON.stringify 3.JSON.parse 4.示例 1.JSON说明 当数据在浏览器与服务器之间进行交换时&#xff0c;这些数据只能是文本&#xff0c;JSON 属于文本并且我们能够把任何 JavaScript 对象转换为 JSON&#xff0c;然后将 JSON 发送到服务器。我们也能把从服…