Javascript 图标鼠标悬停时的图像预览

Javascript 图标鼠标悬停时的图像预览,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我正在尝试使用Jquery和Javascript,因此当客户端鼠标越过PageGridView上使用的通用图标时,它将显示略偏离图标的缩略图 我在借用我在上面找到的密码 正在使用的CSS: <style type="text/css"> #Fullimg{position:absolute;display:none;z-index:-1} #preview{ position:absolute; border:3px solid #ccc;

我正在尝试使用
Jquery
Javascript
,因此当客户端鼠标越过
PageGridView
上使用的通用图标时,它将显示略偏离图标的缩略图

我在借用我在上面找到的密码

正在使用的CSS:

<style type="text/css">
    #Fullimg{position:absolute;display:none;z-index:-1}
    #preview{
      position:absolute;
      border:3px solid #ccc;
      background:#333;
      padding:5px;
      display:none;
      color:#fff;
      box-shadow: 4px 4px 3px rgba(103, 115, 130, 1);
    }
    pre{
      display:block;
      font-family:Tahoma, Geneva, sans-serif;
      font-weight:normal;
      padding:7px;
      border:3px solid #bae2f0;
      background:#e3f4f9;
      margin:.5em 0;
      overflow:auto;
      width:800px;
   }
</style>

#Fullimg{位置:绝对;显示:无;z索引:-1}
#预演{
位置:绝对位置;
边框:3px实心#ccc;
背景:#333;
填充物:5px;
显示:无;
颜色:#fff;
盒形阴影:4×4×3×rgba(103、115、130、1);
}
前{
显示:块;
字体系列:塔荷马,日内瓦,无衬线;
字体大小:正常;
填充:7px;
边框:3px实心#bae2f0;
背景#e3f4f9;
边缘:.5em0;
溢出:自动;
宽度:800px;
}
Javascript:

<script type="text/javascript" language="javascript">
    // Kick off the jQuery with the document ready function on page load
    $(document).ready(function(){
          imagePreview();
    });
    // Configuration of the x and y offsets
    this.imagePreview = function(){
        xOffset = -20;
        yOffset = 40;
    $("a.preview").hover(function(e){
    this.t = this.title;
    this.title = "";
       var c = (this.t != "") ? "<br/>" + this.t : "";
     $("body").append("<p id='preview'><img src='"+ this.link +"' alt='Image preview' />"+ c +"</p>");
     $("#preview")
        .css("top",(e.pageY - xOffset) + "px")
        .css("left",(e.pageX + yOffset) + "px");
    },
    function(){
        this.title = this.t;
        $("#preview").remove();
    });
    $("a.preview").mousemove(function(e){
        $("#preview")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });
    };
</script>

//在页面加载时使用documentready函数启动jQuery
$(文档).ready(函数(){
图像预览();
});
//x和y偏移的配置
this.imagePreview=函数(){
xOffset=-20;
yOffset=40;
$(“a.preview”).hover(函数(e){
this.t=this.title;
this.title=“”;
var c=(this.t!=”)?“
”+this.t:”; $(“正文”)。追加(“

”+c+”

”; $(“预览”) .css(“顶部”(e.pageY-xOffset)+“px”) .css(“左”(e.pageX+yOffset)+“px”); }, 函数(){ this.title=this.t; $(“#预览”).remove(); }); $(“a.preview”).mousemove(函数(e){ $(“预览”) .css(“顶部”(e.pageY-xOffset)+“px”) .css(“左”(e.pageX+yOffset)+“px”); }); };
图标:

。我已经在这件事上苦思冥想了将近一个星期,老板开始对我不能让它工作感到恼火


如果您能提供任何帮助或提供更有效的代码执行方法,我们将不胜感激。

我更正了代码中的一些基本部分。以下是链接: 您现在可以根据需要进行修改

代码:

//在页面加载时使用documentready函数启动jQuery
$(文档).ready(函数(){
var xOffset=-20;
var yOffset=40;
$('.preview')。on('mouseover',函数(e){
var img=$(本);
img.t=img.title;
img.title=“”;
变量c=(img.t!=”)?“
”+img.t:”; $(“正文”)。追加(“

”+c+”

”; $(“#预览”).css({ “顶部”:(e.pageY-xOffset)+“px”, “左”:(e.pageX+yOffset)+“px”, “显示”:“块”, }); }); $('.preview')。on('mouseleave',函数(e){ $(“#预览”).remove(); }) });
浏览器控制台中有错误吗?我被小提琴上的编码搞糊涂了。看起来您正在将侦听器应用到$('a.preview'):DOM中不存在的元素,并且我看到的任何jQuery都没有添加该元素。在运行函数时,您似乎也在使用“this”,但这是必需的吗?为什么不通过$.fn.extend创建一个函数,并使用$('a.preview').ImagePreview()运行它呢;然后在那里定义鼠标悬停处理程序?@JayBlanchard浏览器代码中没有错误,这是令人困惑的部分。@linnium我缺少CSS的一部分,而这部分看起来像。我正在努力学习Javascript和JQuery,但这并不是我在军队软件工程所需要的技能的一部分。我看到了你@kamlesh kushwaha所做的改变,我不得不说,非常感谢你!我对Jquery和Javascript不是很熟悉,但是您的更改使它工作得非常好,谢谢。
<asp:Image ID="imgThumbnail" runat="server" ImageURL="~/Images/imgHover.png" ImageAlign="AbsMiddle" ClientIDMode="Static" CssClass="preview" link='<%# String.Format("~/ConvertImage.ashx?FleetID=" + m_oUserInfo.CurrentFleetID + "&VehicleID={0}&picID={1}&picType=PictureThumb&extention={2}", Eval("VehicleID"), Eval("StoredPictureID"), Eval("PictureExtension"))%>'/>
        // Kick off the jQuery with the document ready function on page load
    $(document).ready(function () {
        var xOffset = -20;
        var yOffset = 40;
        $('.preview').on('mouseover', function (e) {
            var img = $(this);
            img.t = img.title;
            img.title = "";
            var c = (img.t != "") ? "<br/>" + img.t : "";
            $("body").append("<p id='preview'><img src='" + img.attr('link') + "' alt='Image preview' />" + c + "</p>");
            $("#preview").css({
                "top": (e.pageY - xOffset) + "px",
                    "left": (e.pageX + yOffset) + "px",
                    'display': 'block',
            });
        });
        $('.preview').on('mouseleave', function (e) {
            $('#preview').remove();
        })
        });