我正在尝试使用jquery工具提示插件来展开一些图像缩略图,并在有人将鼠标悬停在缩略图上时显示完整大小的图像。然而,这是非常跳跃的,即使鼠标保持静止,工具提示也会在固定在一个地方之前跳跃2-3次。
为什么?有办法解决吗?
Html代码:
<ul class="gallery" id="gallery">
<li>
<img src="<?=site_url('images/Balloon Fest..jpg');?>" class="galleryImg" />
</li>
</ul>
使用Javascript:
$(".galleryImg").tooltip({
delay: 0,
showURL: false,
bodyHandler: function() {
return $("<img/>").attr("src", this.src)
.attr('width', 300).attr('height', 300);
}
});
答案 0 :(得分:3)
我在jquery论坛上找到了一个解决方案。 只需删除显示和隐藏效果,如下所示:
jQuery('#myelement').tooltip({
show: false,
hide: false
});
答案 1 :(得分:1)
我使用了相同的jQuery插件,但是在同一页面上给了我一些大量元素的问题。经过测试后,我选择了这个:
您可以看到正常工作 demo here!
和网页链接 Here!
根据评论的要求,这里有一个基于上述插件的jQuery扩展:
<强> JQUERY 强>
(function($) {
$.fn.tooltipImg = function(options) {
// options
var opts = $.extend({}, $.fn.tooltipImg.defaults, options);
// when the mouse gets over the element
$(this).hover(function(e){
this.t = this.alt;
var c = (this.t != "") ? "<br/>" + this.t : "",
src = ($(this).data("src")!='') ? $(this).data("src") : this.src,
res = '<p class="'+opts.wrapper+'"><img src="'+src+'" alt="Image preview" />'+c+'<p>';
$("body").append(res);
$("."+opts.wrapper)
.css({
"top" : (e.pageY - opts.xOffset) + "px",
"left" : (e.pageX + opts.yOffset) + "px"
})
.fadeIn("fast");
},
function(){
$("."+opts.wrapper).remove();
});
// when the mouse moves while over the element
$(this).mousemove(function(e){
$("."+opts.wrapper)
.css({
"top" : (e.pageY - opts.xOffset) + "px",
"left" : (e.pageX + opts.yOffset) + "px"
});
});
}
// options defaults
$.fn.tooltipImg.defaults = {
xOffset : 10,
yOffset : 30,
wrapper : 'myTooltipImgWindow'
}
})(jQuery);
<强> USAGE 强>
$(document).ready(function(){
$('.tooltipMe').tooltipImg();
// with options
$('.tooltipMe').tooltipImg({
xOffset : 20,
yOffset : 40,
wrapper : 'myToolTipContainerClass'
});
});
您可以看到此working Fiddle!
此小提琴演示来自跨域的图片,相对路径以及img
src
。
请注意,Fiddle下的相对路径是错误的,有时您会看到它,有时您不会看到它,但它的工作正常!
答案 2 :(得分:0)
我之前见过这种情况 - 这就是我搜索更灵活,易于使用且易于集成的工具提示的原因。我通过Listly找到了一个很棒的工具 - 查看WalkMe.com。我想你会发现结果非常令人满意。让我知道图像是如何运作的。
答案 3 :(得分:0)
在编写我自己的简单工具提示时,我发现当我将工具提示附加到非身体元素时。在IE7,IE8和IE9中隐藏/显示工具提示之间存在跳动或紧张。
例如,我有$('li').append(toolTip html..)
导致工具提示的抖动或跳跃隐藏/显示。在Firefox,Chrome和Safari中没有跳跃或紧张。在IE7,IE8和IE9中不行。
当我切换到$('body').append(toolTip html..)
时,它会按预期显示IE 7,IE8和IE9,并且在firefox,Chrome和Safari中仍能正常工作。