javascript - 如何在图像的特定点显示注释?

标签 javascript jquery html image

明白我的意思:

请查看以下站点:http://bikeboard.at/Board/Fesche-Waesche-Bikewear-2015-th211009 (并搜索术语“Smith Overtake”)。

现在在文本上方您可以看到一个图像,上面有几个标记(圆圈)。当您将鼠标悬停在其中一个上时,会显示一条注释,其中包含有关图像该部分的其他信息。

我主要对输出感兴趣,而不是标记的输入/编辑。

我找到了一个名为 imgNotes 的 jQuery 插件做类似的事情。但这似乎有点矫枉过正,因为它具有编辑器功能。

注释应包含图像、文本和指向另一页的链接。

您还知道哪些其他可能的解决方案?

最佳答案

如果您自己解决了这个问题,那太好了 - 如果您能分享一些代码那就太棒了!

Here's a jQuery-only, CSS-free implementation .它可以使用一些改进并接受一些配置选项,但你得到了一般的想法:)。

$.fn.addNotes = function(notes){
var $img = $(this);
var pos = $img.position();
var w = $img.outerWidth();
var h = $img.outerHeight();
var offsetX = pos.left;
var offsetY = pos.top;
var $imgparent = $img.parent();
$imgparent.on('mouseenter','.point', function(){
    $(this).next('.note').show();
}).on('mouseout', '.point', function(){
   $(this).next('.note').hide(); 
});
$.each(notes, function(idx,note){
    var $point = $('<div/>').addClass('point').css({
        position:'absolute',
        left: (Number(offsetX)+note.pos.x)+'px',
        top: (Number(offsetY)+note.pos.y)+'px',
        width: '10px',
        height: '10px',
        borderRadius: '10px',
        background:'#f00'
    });
    var $note = $('<div/>').addClass('note').html(note.note).css({
        position:'absolute',
        left: 15+(Number(offsetX)+note.pos.x)+'px',
        top: (Number(offsetY)+note.pos.y)+'px',
        background:'#fff',
        padding:'5px'
    }).hide();
   $img.after($point); 
   $point.after($note);
});
};

示例用法:

var notes = [
{ pos: { x: 100, y: 100 }, note: 'Hello world!' },
{ pos: { x: 200, y: 100 }, note: 'Hello Harry!' },
{ pos: { x: 100, y: 200 }, note: 'Hello Ron!' },
{ pos: { x: 300, y: 300 }, note: 'Hello Hermione!' }
];

$('img').addNotes(notes);

关于javascript - 如何在图像的特定点显示注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33099499/

相关文章:

javascript - 将 javascript 文件恢复为 html 中的按钮

javascript - 这里只有三元运算符起作用

jquery - 调整窗口大小时 div 的高度不正确

PHP header 错误 为什么这不起作用?

php - mysql 无法识别文本和数字组合

javascript - 过滤数据 - 如何在 JavaScript 中过滤不需要的数据

javascript - jQuery 在不刷新的情况下检测屏幕尺寸变化

javascript - 使用 jquery 选择复选框后表单按钮不起作用

javascript - 如何通过 Javascript 减去字段

javascript - <pre> 标签在 IE 中设置 innerHTML 时丢失换行符