返回

Vue结合JQ实现CP中奖走势图

发布时间:2022-10-08 09:26:36 351
# css# html# jquery# npm

Vue结合JQ实现CP中奖走势图

  1. 在vue项目安装Jq

npm install jquery --save

  1. 在页面进行引用即可

import $ from "jquery

  1. html代码块

  1. 页面使用方法

initCanvas() {
let ids = "";
let idsArr = [];
this.innerList.map((item, index) => {
if (item == 0) {
item = 10;
}
let idName = `T${index + 1}_${item}`;
idsArr.push(idName);
});
ids = idsArr.join(",");
console.log("ids,", ids);
this.CreateLine(ids, 20, "#7331E9", "canvasdiv", "#7331E9");
},
CreateLine(ids, w, c, div, bg) {
var list = ids.split(",");
for (var j = list.length - 1; j > 0; j--) {
var tid = $("#" + list[j]);
var fid = $("#" + list[j - 1]);
var f_width = fid.outerWidth();
var f_height = fid.outerHeight();
var f_offset = fid.offset();
var f_top = f_offset.top;
var f_left = f_offset.left;
var t_offset = tid.offset();
var t_top = t_offset.top;
var t_left = t_offset.left;
var cvs_left = Math.min(f_left, t_left);
var cvs_top = Math.min(f_top, t_top);
tid
.css("background", bg)
.css("color", "#FFF")
.css("borderRadius", "50%");
fid
.css("background", bg)
.css("color", "#FFF")
.css("borderRadius", "50%");
var cvs = document.createElement("canvas");
cvs.width =
Math.abs(f_left - t_left) < w ? w : Math.abs(f_left - t_left);
cvs.height = Math.abs(f_top - t_top);
cvs.style.top = cvs_top + parseInt(f_height / 2) + "px";
cvs.style.left = cvs_left + parseInt(f_width / 2) + "px";
cvs.style.position = "absolute";
var cxt = cvs.getContext("2d");
cxt.save();
cxt.strokeStyle = c;
cxt.lineWidth = 1;
cxt.lineJoin = "round";
cxt.beginPath();
cxt.moveTo(f_left - cvs_left, f_top - cvs_top);
cxt.lineTo(t_left - cvs_left, t_top - cvs_top);
cxt.closePath();
cxt.stroke();
cxt.restore();
$("#" + div).append(cvs);
}
},

  1. 在mounted调用

mounted() {
this.initCanvas();
},

  1. 最终实现效果

   

Vue结合JQ实现CP中奖走势图_jquery

总结:

1、Vue结合Jq以及canvas的使用,完成简单的CP走势图,主要还是得理解canvas划线原理和获取DOM元素的位置等;

2、写的不好,敬请参考,如有疑问,评论区见。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线