图像放大镜功能的jQuery实现

实现原理:

这里我们用两张图片,一张小图片,一张大图片,大图片被设置为放大镜的背景图片。当鼠标移动到小图片上时,它控制放大镜中大背景图像的位置,两张图片的最佳大小相等,这样就可以达到最好的效果。当时,两幅图片的大小是一样的,所以放大镜的效果不明显,这与放大不一样。

这个插件使用了HTML5,CSS3属性,版本不兼容IE8及以下,和放大镜是方的。

运行效果的截图如下:


具体代码如下:




(函数(){())
美元。fn.magnifier =功能(选项){

默认参数设置
var设置{ {
直径:150放大镜直径
带:2 /放大镜框的大小
边框颜色:白 / /放大镜边框颜色
backgroundimg:, / / 111 IMG .jpg / /放大图像内(或更大)
};

带有参数
如果(选项)
扩展(设置,选项);

链式原则
返回this.each(函数(){()
当前对象/存储
var = $(this);

当前对象的宽度和高度
Var WRoot = root.width();
Var HRoot = root.height();

左和顶部/偏移量
无功补偿= root.offset();

放大镜样式
var风格=背景位置:0px 0px;背景重复:不重复;浮动:左;;
style=位置:绝对的框阴影:0 0 5px # 777, 00;10px # AAA插图;显示:无;;
样式=宽度:+字符串(设置大小)+像素;高度:+字符串+像素(设置。直径);;
风格=边界半径:+字符串(settings.diameter / 2 + settings.borderwidth + PX);;
风格=边界:+字符串(设置。带)+酶+ settings.bordercolor +固体;

创建放大镜
放大镜= $(var ),AppendTo(root.parent());

图片(当不是较大的时候,作为一个小地图本身)
无功backgroundimg = settings.backgroundimg settings.backgroundimg:root.attr(src);

将图片放入放大镜
magnifier.css({背景:URL(+ backgroundimg +' })});

缩放比例
无功wratio = 0; / /宽度
无功hratio = 0; / /高度

加载图像,缩放比例计算
因为图片不在DOM文档 / /,所以网页加载不触发Load事件,所以通过对appendto实施触发Load事件
$()。加载(函数(){)
wratio = $(this)。Width()/ wroot;
hratio = $(this)。Height() / HR管理;
})。AppendTo(root.parent());

放大镜和背景图像的位置控制
函数位置(e){

Var LPos = parseInt(e.pagex偏左);
Var TPos = parseInt(e.pagey偏移。顶);

以确定图片上的鼠标是否
如果(LPos WRoot TPos | | > HRoot){

(放大镜隐藏); /不隐藏

{人}

(放大镜显示);放大镜显示。

控制 / /放大镜位置的背景图像(settings.diameter / 2)半径
LPOS =字符串((((( e.pagex偏左)* wratio - settings.diameter / 2)*(1));
TPOS =字符串((((( e.pagey偏移。顶部)* hratio - settings.diameter / 2)*(1));

magnifier.css({ backgroundposition:LPOS + 'px + TPOS + 'px});

控制/放大自身位置
LPOS =字符串(e.pagex - settings.diameter / 2);
TPOS =字符串(e.pagey - settings.diameter / 2);

magnifier.css({左:LPOS + 'px上:TPos + 'px});
}
}

/放大镜
magnifier.mousemove(位置);

当前对象
Root.mousemove(位置);

});
};
});



示例演示如下:







CSS3 + jquery图片放大镜效果


{
背景颜色:布莱克;
}
。箱
{
宽度:700px;
保证金:50px汽车;
}




U3000 U3000 U3000 U3000





$(# img_02 )放大镜();





介绍了实现图片放大镜功能的jQuery的内容。我希望你仔细研究并学会使用它。