[javascript]canvas 热点区域图,框选区域并在区域显示热点

本文介绍了如何使用HTML5的Canvas元素创建热区选择功能,包括选择区域的颜色配置、阴影效果和文字显示。同时展示了如何在选择的热点区域上显示详细信息,如事件名称和数据。通过监听鼠标事件,实现框选和移动时的实时更新,并通过颜色区分不同热度的区域。此外,还提供了工具函数以辅助坐标计算和图形绘制。
摘要由CSDN通过智能技术生成

需求:

设置人员需要在图片上框选区域,并且后台针对区域读出数据后显示热点。

做法:

直接上代码:

/*****
 * 作者:jww_dragon@163.com
 * 依赖: jquery
 * 
 ********************/

var goog = function(tag) {
	this._hotpoint = [];
	this._square = {};
	if (typeof tag === "string") {
		this.canvas = document.getElementById(tag);
	} else {
		this.canvas = tag;
	}
	this.context = this.canvas.getContext('2d');
	this.colorStyle = {};
	this.colorStyle.selectColor = "rgba(255,0,0,0.8)";
	this.colorStyle.selectedColor = "rgba(255,0,0,0.3)";
	this.colorStyle.showColorBG = "rgba(0,0,0,0.2)";
	this.colorStyle.shadowColor = "#000000";
	this.colorStyle.fontStyle = "16px Arial Black";
	this.colorStyle.fontColor = "yellow";
	this.context.shadowOffsetX = 5;
	this.context.shadowOffsetY = 5;
	this.context.shadowBlur = 10;
}

/**
 *换一个id监听(一般用不到)
 **/
goog.prototype.listen = function(documentId) {
	this.canvas = document.getElementById(documentId);
	this.canvas = document.getElementById(documentId);
	this.context = this.canvas.getContext('2d')
}

/**
 *颜色配置
 * selectColor,selectedColor 框选颜色,默认红色, showColorBG 展示的背景蒙层色
 * shadowColor 影阴颜色,fontStyle 字体,fontColor 字体颜色
 **/
goog.prototype.setColor = function(type, color) {
	if (typeof color != "undefined" && type != "undefined") {
		this.colorStyle[type] = color;
	}
}

/**
 * 以下是选择部分
 ***/
goog.prototype.init_mask = function() {
	var position_top = this.canvas.offsetTop;
	var position_left = this.canvas.offsetLeft;
	this.temp_canvas = document.createElement("canvas");
	this.temp_canvas.setAttribute('width', this.canvas.width);
	this.temp_canvas.setAttribute('id', "mask-gogo123");
	this.temp_canvas.setAttribute('height', this.canvas.height);
	this.temp_canvas.setAttribute('style', 'position: absolute;left: '
			+ position_left + 'px;top: ' + position_top + 'px;');
	this.canvas.parentNode.appendChild(this.temp_canvas);
	//return temp_canvas;
}
goog.prototype.drowInitSquare = function(_list) {
	this.context.shadowColor = this.colorStyle.shadowColor;
	this.context.font = this.colorStyle.fontStyle;
	//this.con

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值