jq实现查看预览图

功能

鼠标移到缩略图上会显示该图的大图,并且大图跟随鼠标移动;或是移动到提示文字上,也可以显示图片。并且含有方向判别功能,具体来说就是如果缩略图在页面的左半部分,则大图显示在鼠标的右侧,如果缩略图在页面的右半部分,则预览的大图在鼠标的左侧显示。

思路分析

  • html结构
<a href="xx.jpg">缩略图</a>

当鼠标覆盖到<a></a>时获取预览图地址
预览图结构

<div id='preview'><div><img src='"+$(this).attr('href')+"' /><p>"+$(this).attr('title')+"</p></div></div>

添加到body,使用绝对定位
- 插件开发
因为想试下插件开发的模式,所以这样写了

    $.fn.preview=function(){
        ......
    }

jQuery.fn = jQuery.prototype.对prototype
每一个jq对象都可以用

源码

<style>
.imgbox{
    margin-top: 150px;
    text-align: center;
}
.imgbox img {
    display: inline-block;
    width: 250px;
    height: 144px;
}
</style>
<script>
    $(function(){
        $("a.preview").preview();   //页面加载完后执行
    });
</script>
<body>
    <div class="page">
        <div class="imgbox">
            <a class="preview" href="./img/cool_couple_dark.jpg" title="cool cuple"><img src="./img/cool_couple_dark.jpg" alt="cool couple"></a>
            <a class="preview" href="./img/cool_couple_dark.jpg" title="cool cuple"><img src="./img/cool_couple_dark.jpg" alt="cool couple"></a>
            <a class="preview" href="./img/cool_couple_dark.jpg" title="cool cuple"><img src="./img/cool_couple_dark.jpg" alt="cool couple"></a>
            <a class="preview" href="./img/cool_couple_dark.jpg" title="cool cuple"><img src="./img/cool_couple_dark.jpg" alt="cool couple"></a>
            <a class="preview" href="./img/cool_couple_dark.jpg" title="cool cuple">查看</a>
        </div>
    </div>
</body>

jquery-imgpreview.js

(function($){
    $.fn.preview=function () {
        $(this).each(function () { var xOffset = 10; var yOffset = 20; var screenW =$(window).width(); $(this).hover(function (e) { var imgsrc= $(this).attr("href") if(/.png$|.gif$|.jpg$|.bmp$/.test(imgsrc)){ $('body').append("<div id='preview'><div><img src='"+imgsrc+"' /><p>"+$(this).attr('title')+"</p></div></div>"); $('#preview').css({ width:'325px', position:'absolute', left:e.pageX+xOffset+'px', top:e.pageY+yOffset+'px', backgroundColor:"#eeeeee", padding:"4px", border:"1px solid #f3f3f3", zIndex:1000 }), $('#preview > div > img').css({ width:'100%', height:'100%' }) } },function () { $('#preview').remove(); }).mousemove(function(e){ $("#preview").css("top",e.pageY+ "px") if(e.pageX < screenW/2){ $("#preview").css("left",(e.pageX + xOffset) + "px").css("right","auto"); }else{ $("#preview").css("right",(screenW - e.pageX + xOffset) + "px").css("left","auto"); } }); })
    }
})(jQuery)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值