繁体   English   中英

在d3.js中,如何根据屏幕位置调整工具提示(上下)?

[英]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.pageXd3.event.pageY用于获取当前location.Basically正在更新提示风格leftd3.event.pageXtopd3.event.pageY

到目前为止,每个国家的tooltip都在下面。但是我需要根据窗口位置显示工具提示。

例如:

如果我mousemove美国等排名靠前的国家/ United states需要该国家/地区下方显示tooltip 。如果我mousemoveAntarctica需要该国家/地区上方显示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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM