heatmap.js api docs All In One
heatmap.js api docs All In One
https://www.patrick-wied.at/static/heatmapjs/docs.html
config
var nuConfig = {
radius: 10,
maxOpacity: .5,
minOpacity: 0,
blur: .75
};
heatmapInstance.configure(nuConfig);
add
// a single datapoint
var dataPoint = {
x: 5, // x coordinate of the datapoint, a number
y: 5, // y coordinate of the datapoint, a number
value: 100 // the value at datapoint(x, y)
};
heatmapInstance.addData(dataPoint);
// multiple datapoints (for data initialization use setData!!) ✅
var dataPoints = [dataPoint, dataPoint, dataPoint, dataPoint];
heatmapInstance.addData(dataPoints);
set
var data = {
max: 100,
min: 0,
data: [
dataPoint, dataPoint, dataPoint, dataPoint
]
};
heatmapInstance.setData(data);
heatmapInstance.setDataMax(200);
// setting the maximum value triggers a complete rerendering of the heatmap
heatmapInstance.setDataMax(100);
heatmapInstance.setDataMin(10);
// setting the minimum value triggers a complete rerendering of the heatmap
heatmapInstance.setDataMin(0);
value
heatmapInstance.addData({ x: 10, y: 10, value: 100});
// get the value at x=10, y=10
heatmapInstance.getValueAt({ x: 10, y: 10 }); // returns 100
var currentData = heatmapInstance.getData();
// now let's create a new instance and set the data
var heatmap2 = h337.create(config);
heatmap2.setData(currentData); // now both heatmap instances have the same content
heatmapInstance.getDataURL(); // data:image/png;base64...
// ready for saving locally or on the server
repaint
heatmapInstance.repaint()
demo
window.h337 ok ✅
const importScript = () => {
if(!window.h337) {
const script = document.createElement('script');
script.src = '/libs/heatmap.min.js';
const body = document.querySelector('body');
body.appendChild(script);
}
};
const parentPage = document.getElementById('parentPage');
const heatMapObj = h337.create({
container: parentPage,
radius: 30,
maxOpacity: .5,
minOpacity: 0,
blur: .75
});
landing pages / 落地页
<div class="phone-box" >
<section
v-show="showHeatMap"
id="parentPage"
class="heatmap-box"
:style="`height: ${dynamicHeight}px;`">
<img
id="childPage"
name="childPage"
:src="previewCoverUrl"
style="width: 100%; height: auto;"
alt="落地页封面"
srcset=""
/>
</section>
</div>
importScript () {
if(!window.h337) {
const script = document.createElement('script');
script.src = '/libs/heatmap.min.js';
const body = document.querySelector('body');
body.appendChild(script);
script.onload = () => {
this.iframeScroll();
};
} else {
this.iframeScroll();
}
},
iframeScroll (init = true) {
const img = document.getElementById('childPage');
if(this.isDragonflyLandingPage && this.showHeatMap && init) {
setTimeout(() => {
this.dynamicHeight = img.scrollHeight;
setTimeout(() => {
this.createHeatMap();
}, 0);
}, 0);
}
},
createHeatMap () {
const parentPage = document.getElementById('parentPage');
this.heatMapObj = h337.create({
container: parentPage,
radius: 30,
maxOpacity: .5,
minOpacity: 0,
blur: .75
});
// TODO: 缩放 坐标转换
// 坐标 375px => 300px
this.heatMapObj.addData({
x: this.autoConvert(100),
y: this.autoConvert(100),
value: 100,
});
this.heatMapObj.addData({
x: this.autoConvert(100),
y: this.autoConvert(1000),
value: 100,
});
},
autoConvert (value) {
const result = (value * 300) / 375;
return result;
},
changeShow (value) {
if(value) {
this.iframeScroll(false);
}
},
refs
https://www.cnblogs.com/xgqfrms/p/15650383.html
©xgqfrms 2012-2020
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/15654254.html
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2020-12-07 TypeScript keyof & typeof All In One
2020-12-07 泛型是什么设计模式
2020-12-07 TypeScript Generics All In one
2020-12-07 设计模式六大原则 All In one
2020-12-07 TypeScript Config All In One
2020-12-07 GitHub Actions UTC 时间转换 All In One
2020-12-07 Apple Watch Series 6 字母图案 (图解教程) All In One