css - 在图像上移动 div 时显示工具提示

标签 css tooltip jquery imagemap

我拥有的是:

  1. 我显示了一张饼图图片
  2. 我有饼图的图像图
  3. 默认的浏览器工具提示在鼠标移到图像上时显示

我想做的是:

  1. 在饼图切片 touchmove 上,在相对于饼图的圆形路径上移动绿色标记(一个 div)

我想要实现的目标:

  1. 在将 div 圆形移动到饼图时显示默认浏览器工具提示
  2. 在图像周围移动绿色标记 (div) 时显示饼图区域的值

我如何实现这一目标?

Current Pie Chart

一些代码:
fiddle 链接:here

$("img").bind("touchmove",function(event) {
    e=event.originalEvent;
    x1 = e.pageX;
    y1 = e.pageY;
    x = x1 - x0;
    y = y1 - y0;

    r = 180 - ((180/Math.PI) * Math.atan2(y,x));

    $("#marker").css('-webkit-transform','rotate(-'+r+'deg) translate(-160px)');

    // Code to show values of Pie as a tooltip or in a separate div
});

最佳答案

令人惊讶的是,你的问题可以只用 CSS 来解决(注意,我还没有检查这是否适用于触摸设备,但它应该):

area {
    display:block;
    position: absolute;
}

area:after {
    background: red;
    color: white;
    position: absolute;
    display: block;
    white-space: nowrap;
}

area:hover:after {
    content: attr(title);
}

但是,如果您想保留 javascript 以获得灵 active ,您实际上不需要检查拖动状态,因为 touchmove 意味着手指已按下。你不应该需要嵌套的窗口加载事件(它不会在 Chrome 中触发,无论如何)。这稍微简化了代码。

$(document).ready(function(){
    var angle=180;
    var x0, y0;
    var x, y, x1, y1, drag = 0;
    var content=$("#content");
    var img=$("#myimage");
    var imgpos = img.position();
    var marker = $("#marker");
    var info = $("#info");


    $(document).bind('touchmove touchstart',function(e){

        e.originalEvent.preventDefault();
    });

    img.removeAttr("width");
    img.removeAttr("height");

    x0 = imgpos.left + (img.width() / 2);
    y0 = imgpos.top + (img.height() / 2);

content.on("touchmove mousemove", "map", function(event) {
    e=event.originalEvent;
    x1 = e.pageX;
    y1 = e.pageY;
    x = x1 - x0;
    y = y1 - y0;
    r = 180 - ((180/Math.PI) * Math.atan2(y,x));
    marker.css('-webkit-transform','rotate(-'+r+'deg) translate(-160px)');
    info.text(event.target.getAttribute('title'));
});

});

您可以在此处查看两种实现方式:http://jsfiddle.net/Wz7fF/

关于css - 在图像上移动 div 时显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14745771/

相关文章:

jquery-ui - jQueryUI 工具提示小部件在单击时显示工具提示

java - 数据表未显示在 Spring MVC 数据中

javascript - 使用jquery顺序调用多个函数

html - 是否可以使用 CSS 计数器来增加元素的旋转

html - CSS 箭头不透明度过渡

javascript - ExtJs 3.4 : Set tool tip for combo box

javascript - 我可以相信 jQuery find 方法接受以 "> "开头的选择器吗?

javascript - 如何更改 css 背景 onclick

html - nivo slider 变形的图像

javascript - 如何克服 jquery 中的这个问题以获得动画悬停效果?