实现原理:
这里我们用两张
图片,一张小图片,一张大图片,大图片被
设置为放大镜的
背景图片。当
鼠标移动到小图片上时,它
控制放大镜中大背景图像的
位置,两张图片的最佳大小相等,这样就可以达到最好的效果。当时,两幅图片的大小是一样的,所以放大镜的效果不明显,这与放大不一样。
这个
插件使用了HTML5,CSS3
属性,版本不兼容IE8及以下,和放大镜是方的。
运行效果的
截图如下:
具体代码如下:
(
函数(){())
美元。fn.magnifier =
功能(
选项){
默认参数设置
var设置{ {
直径:150放大镜直径
带:2 /放大镜框的大小
边框颜色:白 / /放大镜边框颜色
backgroundimg:, / / 111 IMG .webp / /放大图像内(或更大)
};
带有参数
如果(选项)
扩展(设置,选项);
链式原则
返回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的内容。我希望你仔细研究并学会使用它。