更改散景图上的光标

时间:2019-10-22 10:21:36

标签: bokeh

我已经使用Bokeh制作了地图,就像this page上的第一个示例一样,除了用户可以通过向上/向下滚动来放大/缩小,还可以点击我添加到地图上的圆圈以进行选择他们。

当光标在地图上时,它是default箭头。如果单击并拖动地图,由于某种原因,光标会变为text光标。其他任何操作都不会改变。

我希望能够更改cursor appearance,以便:

  1. 在地图上时,它是grab光标
  2. 拖动地图时,它是grabbing光标
  3. 越过一个圆圈,它就是pointer光标

我可以通过以下方法实现(1):

.bk { cursor: grab; }

但是我不确定如何实现另外两个。

2 个答案:

答案 0 :(得分:1)

以下是我的另一篇文章的建议:(适用于Bokeh v1.3.0):

var theDiv = document.querySelectorAll('div')[0];
function showDiv() {
  theDiv.setAttribute('class', 'fadeIn');
  setTimeout(function(){ theDiv.style.opacity = '1'; }, 2000);
}
function hideDiv() {
  theDiv.removeAttribute('class');  
  theDiv.setAttribute('class', 'fadeOut');
  setTimeout(function(){ theDiv.style.opacity = '0' }, 2000);
}

enter image description here

答案 1 :(得分:0)

您可以潜在地使用PanStartPanEnd事件在拖动操作上设置/重置光标。我认为悬停将很难实现。当前,悬停工具上有一个callback属性,当在某个点上进行检查时,可以使用该属性来触发JS代码。但是它仅在进行检查时触发,没有用于“取消检查”的相应事件或钩子,因此我不确定当用户不再悬停在圆圈上时如何可靠地清除光标状态。