function hover(svg, path) {
if ("ontouchstart" in document) svg
.style("-webkit-tap-highlight-color", "transparent")
.on("touchmove", moved2)
.on("touchstart", entered)
.on("touchend", left)
else svg
.on("mousemove", moved)
.on("mouseenter", entered)
.on("mouseleave", left);
const dot = svg.append("g")
.attr("display", "none");
dot.append("circle")
.attr("r", 10)
.attr("fill", "white")
.attr("stroke", "black")
.attr("stroke-width", 3);
dot.append("text")
.attr("font-family", "Montserrat")
.attr("font-size", 18)
.attr("fill", "white")
.attr("text-anchor", "middle")
.attr("y", -15)
.attr("class", "hoverLabel");
function moved(event) {
event.preventDefault();
const pointer = d3.pointer(event, this);
console.log('pointer', pointer);
const xm = x.invert(pointer[0]);
const ym = y.invert(pointer[1]);
console.log('xm', xm);
console.log('ym', ym);
const i = d3.bisectCenter(data.gameweek, xm);
const s = d3.least(data.series, d => Math.abs(d.values[i] - ym));
console.log('ii', i);
console.log('ss', s);
path.attr("stroke", d => d === s ? colors2[0][s.name] : "#1C2124").filter(d => d === s).raise();
dot.attr("transform", `translate(${x(data.gameweek[i])},${y(s.values[i])})`);
dot.select("text").text(s.name);
}
function moved2(event) {
event.preventDefault();
const pointer = d3.pointers(event, this);
console.log('pointer', pointer);
const xm = x.invert(pointer[0][0]);
const ym = y.invert(pointer[0][1]);
console.log('xm', xm);
console.log('ym', ym);
const i = d3.bisectCenter(data.gameweek, xm);
const s = d3.least(data.series, d => Math.abs(d.values[i] - ym));
console.log('ii', i);
console.log('ss', s);
path.attr("stroke", d => d === s ? colors2[0][s.name] : "#1C2124").filter(d => d === s).raise();
dot.attr("transform", `translate(${x(data.gameweek[i])},${y(s.values[i])})`);
dot.select("text").text(s.name).attr("transform", `translate(0,-40)`);
}
function entered() {
path.style("mix-blend-mode", null).attr("stroke", "#ddd");
dot.attr("display", null);
}
function left() {
path.attr("stroke", (d, i) => colors2[0][d.name]);
dot.attr("display", "none");
}
}