看看我的意思:
请查看以下网站:http://bikeboard.at/Board/Fesche-Waesche-Bikewear-2015-th211009(并搜索“史密斯超越”一词)。
现在在文本上方,您可以看到一个图像上有几个标记(圆圈)。当您将鼠标悬停在其中一个上时,会显示一条注释,其中包含有关该部分图像的其他信息。
我主要感兴趣的是输出,而不是输入/编辑标记。
我找到了一个名为imgNotes的jQuery插件,它做了类似的事情。但由于它的编辑功能,它似乎是一种矫枉过正。
备注应包含图像,文字和指向其他页面的链接。
您知道其他哪些可能的解决方案?
答案 0 :(得分:2)
如果你自己解决了这个问题,那很好 - 如果你能分享一些代码,它会很棒!
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);
答案 1 :(得分:1)
正如hm_ngr在评论中指出:我们使用简单的CSS解决了这个问题,完全没有JavaScript。
:hover
点和注释的输入是一个自定义实现,它通过我们数据库中的百分比存储左/上坐标(海报1:n poster_points)。
我希望这有助于某人。