Jquery 插件图片放大效果(兼容ie 火狐 谷歌 Safari)

效果图:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Jquery ZoomImg </title>
    <style type="text/css">
        #showpicBox{width: 200px;height: 200px;overflow: hidden;}
        #showbigpicbox{position: absolute;overflow: hidden;background-repeat: no-repeat;display: none;border: 1px solid #ccc;background-color: #fff;width: 300px;}
    </style>
</head>
<body>
    <div id="showpicBox">
        <img src="2011111614473078125001746.jpg" width="200px" height="200px">
    </div>
    <div id="showbigpicbox">
    </div>
    <script type="text/javascript" language="javascript" src="jquery.js"></script>
    <script type="text/javascript" language="javascript" src="jquery.Zoom.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#showpicBox").Zoom({
                renderTo: "#showbigpicbox",
                ZoomImgId: "ImgZoom"
            });
        });
    </script>
</body>
</html>

/*
*
*  JQUERY 放大镜插件
*  Date:2012-07-10
*  Create      :  Kenhuang
*  [renderTo]  :  [显示层id]
*  [ZoomImgId] :  [显示层里的IMGId]
*/
(function ($) {
    $.fn.Zoom = function (setting) {
        var defSetting = {
            renderTo: "#showbigpicbox",
            ZoomImgId: "ImgZoom"
        };
        setting = $.extend(defSetting, setting);
        if (setting && setting.renderTo) {
            if (typeof (setting.renderTo) == "string") {
                setting.renderTo = $(setting.renderTo);
            }
        } else return;


        var _img_org_ = this.children("img");
        _img_org_.css("cursor", "pointer");


        var _w = _h = move_x = move_y = Enlarge_w = Enlarge_h = 0, _left, _top, val_w, val_h, timer, imgZoomId;


        _left = this.offset().left;
        _top = this.offset().top;


        setting.renderTo.css({ left:_img_org_.width()+20, top: _top, height: _img_org_.height() + 100, width: _img_org_.width() + 100 });


        if (this.offsetParent()) {
            _left += this.offsetParent().offset().left;
            _top += this.offsetParent().offset().top;
        }
        val_w = (setting.renderTo.width() / 2);
        val_h = (setting.renderTo.height() / 2);


        _img_org_.mouseover(function () {
            setting.renderTo.html('<img src="' + _img_org_.attr("src") + '" style="position:absolute;" id="' + setting.ZoomImgId + '" />');
            imgZoomId = $("#" + setting.ZoomImgId);
            setting.renderTo.show();
            timer = setInterval(function () {
                Enlarge_w = setting.renderTo.width() - imgZoomId.width();
                Enlarge_h = setting.renderTo.height() - imgZoomId.height();
                _w = imgZoomId.width() / _img_org_.width();
                _h = imgZoomId.height() / _img_org_.height();
                if (_w > 0) {
                    clearInterval(timer);
                }
            }, 100);
        });
        _img_org_.mouseout(function () {
            clearInterval(timer);
            setting.renderTo.hide();
        });
        _img_org_.mousemove(function (e) {
            var clientX = e.clientX + document.body.scrollLeft || e.clientX + document.documentElement.scrollLeft;
            var clientY = e.clientY + document.body.scrollTop || e.clientY + document.documentElement.scrollTop;
            move_x = 0 - Math.round((clientX - _left) * _w - val_w);
            if (move_x < Enlarge_w) move_x = Enlarge_w; else if (move_x > 0) move_x = 0;
            move_y = 0 - Math.round((clientY - _top) * _h - val_h);
            if (move_y < Enlarge_h) move_y = Enlarge_h; else if (move_y > 0) move_y = 0;
            $(imgZoomId).css({ "left": move_x + "px ", "top": move_y + "px" });
        });
    }
})(jQuery);



使用说明 需要使用jQuery库文件(目前版本1.3)和jQuery Image Flyout库文件(目前版本1.1) 可选JS库文件:增强图片显示特效可使用jQuery插件Easing Plugin库文件 素材准备 可自定义CSS样式,控制jQuery插件jQuery Image Flyout提示小图片显示效果。 实例代码 一,包含文件部分 [removed][removed] [removed][removed] [removed][removed] 二,HTML部分(DIV层内所用图片链接) <div>jQuery插件flyout弹出图片</div> <div id="biuuu"> <a href="iphone.jpg" title="jquery.flyout"><img src="iphone_small.jpg" alt="iphone" /></a> </div> 三,Javascript部分(jQuery插件jQuery Image Flyout弹出图片调用) [removed] <!-- $(function() { $('#biuuu a').flyout(); --> [removed] 实例中将ID为biuuu的DIV内所有链接元素<a>增加javascript弹出放大图片功能,其中链接href部分为表示弹出的大图片路径。使用jQuery插件jQuery Image Flyout弹出图片,实现javascript弹出放大图片功能只需要一行代码即可实现。 四,用户自定义设置 结合jQuery插件Easing Plugin,可增强javascript图片放大和缩小过程中图片显示的效果。 一,自定义预加载提示图片 $('#biuuu a').flyout({loadingSrc:'thumb-loading.gif',outEase:'easeInCirc',inEase:'easeOutBounce'}); loadingSrc表示预加载提示图片路径 outEase表示弹出图片放大过程使用的jQuery插件Easing Plugin特效,如:easeInCirc inEase表示弹出图片缩小过程使用的jQuery插件Easing Plugin特效,如:easeOutBounce 二,自定义弹出图片图片显示样式 $('#biuuu a').flyout({loadingSrc:'thumb-loading.gif',outEase:'easeOutQuad',inEase:'easeInBack',loader:'loader2',widthMargin:300,heightMargin:300}); loader表示弹出图片后调用的CSS样式 widthMargin表示弹出图片后显示的margin宽度 heightMargin表示弹出图片后显示的margin高度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值