[英]In d3.js How to adjust tooltip (up and down) based on the screen position?
我使用d3.js
创建了一个geo map
,因此在每个国家/地区创建了一个tooptip。
基本上是在mousemove
事件时创建工具提示。
.on("mousemove", function(d) {
return tooltip
.style("left",d3.event.pageX+"px")
.style("top",d3.event.pageY+10+"px")
.style("visibility", "visible")
.html(function() {
return '<div style="border:1px solid #ccc;">'
+'<p style="font-weight:bold;">'+ d.properties.name +'</p>'
+'<div>'+d.properties.tooltip+'</div></div>';
})
})
我的提示是工作fine.I使用d3.event.pageX
和d3.event.pageY
用于获取当前location.Basically正在更新提示风格left
与d3.event.pageX
和top
与d3.event.pageY
。
到目前为止,每个国家的tooltip
都在下面。但是我需要根据窗口位置显示工具提示。
如果我mousemove
美国等排名靠前的国家/ United states
需要在该国家/地区下方显示tooltip
。如果我mousemove
该Antarctica
需要在该国家/地区上方显示tooltip
(因为Antarctica
是最bottom country
因此该tooltip
在页面中无法正确显示)
所以我的问题是我需要根据Windows位置更改工具提示位置。请帮助我解决此问题。我在下面更新了我的小提琴链接。请看一下。
小提琴链接-http: //jsfiddle.net/sam0kqvx/36/
尝试计算,如果鼠标到达底部,如果鼠标位置在底部,则根据需要设置顶部值。 下面是代码
.style("top",function(){
if(current_position[1]+70 > 500){
return current_position[1]-50+"px";
}else{
return current_position[1]+100+"px"
}
})
希望你明白了,如果不要求我更多...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.