Javascript 如何更新移动对象的引导(工具提示)?
我有一个移动的Javascript 如何更新移动对象的引导(工具提示)?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个移动的对象。我想显示/更新此工具提示信息,比如每2s一次。它工作正常,但即使对象已移动,位置也不会改变,工具提示保持初始位置并保持静止(抱歉,我没有提供工作示例) 如何更新其位置以跟随(而不是鼠标)?event.pageX和event.pageY 下面的描述是针对event.pageX的 描述:相对于文档左边缘的鼠标位置 下面是我在一个应用程序中使用的代码 您可以在鼠标悬停事件中显示下面的div date.selectAll("rect") .data(fun
对象。我想显示/更新此工具提示信息
,比如每2s一次。它工作正常,但即使对象已移动,位置也不会改变,工具提示保持初始位置并保持静止(抱歉,我没有提供工作示例)
如何更新其位置以跟随
(而不是鼠标)?event.pageX和event.pageY
下面的描述是针对event.pageX的
描述:相对于文档左边缘的鼠标位置
下面是我在一个应用程序中使用的代码
您可以在鼠标悬停事件中显示下面的div
date.selectAll("rect")
.data(function(d) {
return d.mattel_data;
})
.enter().append("rect")
.attr("width", x.rangeBand())
.attr("y", function(d) {
return y(d.y1);
})
.attr("height", function(d) {
return y(d.y0) - y(d.y1);
})
.style("fill", function(d) {
return color(d.name);
})
.on("mouseover", function(d) {
div.transition()
.duration(100)
.style("opacity", .9);
var hoverVal = (d.y1 - d.y0);
var formatter = new Intl.NumberFormat('en-US',{
style : 'currency',
currency : 'USD',
minimumFractionDigits : 2,
});
var pop = formatter.format(hoverVal);
// console.log(pop);
div.html("Value:" + pop + "<br/>" + d.name)
.style("left", (d3.event.pageX - 140) + "px")
.style("top", (d3.event.pageY - 80) + "px")
.style('position', 'absolute')
.style('font-size', '15px')
.style('background', function() {
return color(d.name);
})
.style('color', function() {
return getContrastYIQ(color(d.name));
})
})
.on("mouseout", function(d) {
div.transition()
.duration(200)
.style("opacity", 0);
});
date.选择全部(“rect”)
.数据(功能(d){
返回d.mattel_数据;
})
.enter().append(“rect”)
.attr(“宽度”,x.rangeBand())
.attr(“y”,函数(d){
返回y(d.y1);
})
.attr(“高度”,功能(d){
返回y(d.y0)-y(d.y1);
})
.样式(“填充”,功能(d){
返回颜色(d.name);
})
.on(“鼠标悬停”,功能(d){
过渡部()
.持续时间(100)
.样式(“不透明度”,.9);
var hoverVal=(d.y1-d.y0);
var formatter=new Intl.NumberFormat('en-US'{
风格:“货币”,
货币:美元,
最小分数位数:2,
});
var pop=formatter.format(hoverVal);
//控制台日志(pop);
div.html(“值:“+pop+”
“+d.name”)
.style(“左”(d3.event.pageX-140)+“px”)
.style(“顶部”(d3.event.pageY-80)+“px”)
.style('位置','绝对')
.style('font-size','15px')
.style('background',function(){
返回颜色(d.name);
})
.style('color',function()){
返回getControlyIQ(颜色(d.name));
})
})
.开启(“鼠标出”,功能(d){
过渡部()
.持续时间(200)
.样式(“不透明度”,0);
});
看看这是否对你有帮助。
此外,如果您在此处发布代码,将有助于更清楚地理解问题event.pageX和event.pageY
下面的描述是针对event.pageX的
描述:相对于文档左边缘的鼠标位置
下面是我在一个应用程序中使用的代码
您可以在鼠标悬停事件中显示下面的div
date.selectAll("rect")
.data(function(d) {
return d.mattel_data;
})
.enter().append("rect")
.attr("width", x.rangeBand())
.attr("y", function(d) {
return y(d.y1);
})
.attr("height", function(d) {
return y(d.y0) - y(d.y1);
})
.style("fill", function(d) {
return color(d.name);
})
.on("mouseover", function(d) {
div.transition()
.duration(100)
.style("opacity", .9);
var hoverVal = (d.y1 - d.y0);
var formatter = new Intl.NumberFormat('en-US',{
style : 'currency',
currency : 'USD',
minimumFractionDigits : 2,
});
var pop = formatter.format(hoverVal);
// console.log(pop);
div.html("Value:" + pop + "<br/>" + d.name)
.style("left", (d3.event.pageX - 140) + "px")
.style("top", (d3.event.pageY - 80) + "px")
.style('position', 'absolute')
.style('font-size', '15px')
.style('background', function() {
return color(d.name);
})
.style('color', function() {
return getContrastYIQ(color(d.name));
})
})
.on("mouseout", function(d) {
div.transition()
.duration(200)
.style("opacity", 0);
});
date.选择全部(“rect”)
.数据(功能(d){
返回d.mattel_数据;
})
.enter().append(“rect”)
.attr(“宽度”,x.rangeBand())
.attr(“y”,函数(d){
返回y(d.y1);
})
.attr(“高度”,功能(d){
返回y(d.y0)-y(d.y1);
})
.样式(“填充”,功能(d){
返回颜色(d.name);
})
.on(“鼠标悬停”,功能(d){
过渡部()
.持续时间(100)
.样式(“不透明度”,.9);
var hoverVal=(d.y1-d.y0);
var formatter=new Intl.NumberFormat('en-US'{
风格:“货币”,
货币:美元,
最小分数位数:2,
});
var pop=formatter.format(hoverVal);
//控制台日志(pop);
div.html(“值:“+pop+”
“+d.name”)
.style(“左”(d3.event.pageX-140)+“px”)
.style(“顶部”(d3.event.pageY-80)+“px”)
.style('位置','绝对')
.style('font-size','15px')
.style('background',function(){
返回颜色(d.name);
})
.style('color',function()){
返回getControlyIQ(颜色(d.name));
})
})
.开启(“鼠标出”,功能(d){
过渡部()
.持续时间(200)
.样式(“不透明度”,0);
});
看看这是否对你有帮助。
另外,如果您在这里发布代码,这将有助于更清楚地理解您的问题您能提供一个JSFIDLE吗?我知道,在其他工具提示库中,您可以为它设置选项,使其显示您单击的位置或相对于容器的位置。您可以提供JSFIDLE吗?我知道,在其他工具提示库中,可以设置选项,使其显示在单击的位置或相对于容器的位置