繁体   English   中英

显示全尺寸图片 <img> 徘徊?

[英]Display full sized image on <img> hover?

我在MVC 4剃刀显示模板中有一个<img> ,并且当用户将鼠标悬停在图像上时,我想显示一个包含完整尺寸图像的工具提示。

HTML:

<img height="50" width="50" src="@Model.ImageString" />

@Model.ImageString包含图像数据字符串,如下所示:

"data:image/*;base64," + Convert.ToBase64String(file.Data)

如果您无法猜测, file.Data是一个byte[]

悬停<img>时如何显示完整尺寸的工具提示?

这是一个非常简单的示例: http : //jsfiddle.net/bGn96/

这与Shan Robertson的建议是一致的。

var $tooltip = $('#fullsize');

$('img').on('mouseenter', function() {
    var img = this,
        $img = $(img),
        offset = $img.offset();

    $tooltip
    .css({
        'top': offset.top,
        'left': offset.left
    })
    .append($img.clone())
    .removeClass('hidden');
});

$tooltip.on('mouseleave', function() {
    $tooltip.empty().addClass('hidden');
});

可在此处找到提供所需功能的库: http : //cssglobe.com/lab/tooltip/02/

var Controls = {
init: function () {
    var imgLink = document.getElementById('thumb');

    imgLink.addEventListener('mouseover', Controls.mouseOverListener, false );
    imgLink.addEventListener('mouseout', Controls.mouseOutListener, false );

},

mouseOverListener: function ( event ) {
    Controls.displayTooltip ( this );
},

mouseOutListener: function ( event ) {
    Controls.hideTooltip ( this );
},

displayTooltip: function ( imgLink ) {
    var tooltip = document.createElement ( "div" );
    var fullImg = document.createElement ( "img" );

    fullImg.src = imgLink.src;
    tooltip.appendChild ( fullImg );
    tooltip.className = "imgTooltip";

    tooltip.style.top =  "60px";

    imgLink._tooltip = tooltip;
    Controls._tooltip = tooltip;
    imgLink.parentNode.appendChild ( tooltip );

    imgLink.addEventListener ( "mousemove", Controls.followMouse, false);
},

hideTooltip : function ( imgLink ) {
    imgLink.parentNode.removeChild ( imgLink._tooltip );
    imgLink._tooltip = null;
    Controls._tooltip = null;
},

mouseX: function ( event ) {
    if ( !event ) event = window.event;
    if ( event.pageX ) return event.pageX;
    else if ( event.clientX ) 
        return event.clientX + (document.documentElement.scrollLeft ?
                                document.documentElement.scrollLeft :                 
                                document.body.scrollLeft); 
    else return 0;
},

mouseY: function ( event ) {
    if (!event) event = window.event; 
    if (event.pageY) return event.pageY; 
    else if (event.clientY) 
        return event.clientY + (document.documentElement.scrollTop ?     
                                document.documentElement.scrollTop : 
                                document.body.scrollTop); 
    else return 0;
},

followMouse: function ( event ) {
    var tooltip = Controls._tooltip.style;
    var offX = 15, offY = 15;

    tooltip.left = (parseInt(Controls.mouseX(event))+offX) + 'px';
    tooltip.top = (parseInt(Controls.mouseY(event))+offY) + 'px';
}       
};

Controls.init();

编辑:

小提琴: http : //jsfiddle.net/enzoferber/SyJsF/2/

现在,工具提示将跟随鼠标。

mouseX()和mouseY()将返回当前的[x,y]鼠标坐标。 在创建工具提示后,将通过附加的“ mousemove”事件来创建跟随侦听器。

哦,是的,我改变了形象。 现在每个人都可以快乐...

假设您使用Javascript执行此操作:

  • 在dom中准备好工具提示容器
  • 悬停时,抓取文件href并在工具提示容器中创建一个新的图像标签。

只需确保不在标记中指定图像尺寸,否则,请显示完整尺寸,而不是50x50。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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