html部分

//小图
<div id="photoBox">
<img src="图片路径" width="400" height="400">
<div id="dow"></div>
</div>
//大图
<div id="bigPhotoBox"></div>

css部分

#photoBox {
border: 1px solid #ccc;
//小图位置,这里改
position: absolute;   } #photoBox img {
display: block;
} #dow {
width: 100px;
height: 100px;
background-color: rgba(0, 0, 0, 0.6);
position: absolute;
display: none;
} #bigPhotoBox {
display: none;
border: 1px solid #ccc;
background-repeat: no-repeat;
background-color: #fff;
width: 400px;
height: 400px;
  //大图位置,这里改
  position: absolute;
  top:; 
  left: 400px; }

js部分

//小图id
$("#photoBox").Magnifier({
//大图id
renderTo: "#bigPhotoBox",
});

jq插件部分

(function($) {
$.fn.Magnifier = function(setting) {
if(setting && setting.renderTo) {
if(typeof(setting.renderTo) == "string") {
setting.renderTo = $(setting.renderTo);
}
} else {
return;
} var x, y, set;
this.on("mousemove", function(event) {
x = event.pageX - 50;
y = event.pageY - 50;
//阴影框实际移动范围
if(x > 0 && x < 300 && y > 0 && y < 300) {
set = x / 3 + "% " + y / 3 + "%";
setting.renderTo.css({
backgroundPosition: set
});
$("#dow").css({
top: y,
left: x,
})
}
if(y <= 300 && y >= 0) {
if(x < 0) {
set = 0 + "% " + y / 3 + "%";
setting.renderTo.css({
backgroundPosition: set
});
$("#dow").css({
top: y,
left: 0,
})
}
if(x > 300) {
set = 100 + "% " + y / 3 + "%";
setting.renderTo.css({
backgroundPosition: set
});
$("#dow").css({
top: y,
left: 300,
})
}
}
if(x <= 300 && x >= 0) {
if(y < 0) {
set = x / 3 + "% " + 0 + "%";
setting.renderTo.css({
backgroundPosition: set
});
$("#dow").css({
top: 0,
left: x,
})
}
if(y > 300) {
set = x / 3 + "% " + 100 + "%";
setting.renderTo.css({
backgroundPosition: set
});
$("#dow").css({
top: 300,
left: x,
})
}
}
});
//鼠标移入移出效果
this.hover(function() {
setting.renderTo.css({
display: "block",
backgroundImage: "url(" + $("#photoBox img").attr("src") + ")"
});
$("#dow").css({
display: "block"
})
}, function() {
setting.renderTo.css({
display: "none"
});
$("#dow").css({
display: "none"
})
});
}
})(jQuery);

一时兴起写了这个插件,用的时候倒是简单,只需引入JQ插件再加上写少量JS代码代码就行了,大小图片的位置可以在CSS里改,唯一麻烦的是,图片宽高的更改问题,图片的宽高是400px的固定值,如果图片不是正方形,图片会失真;且CSS里面是这么写的,JQ里也是,由于这个数值涉及到阴影框的移动范围,改起来比较麻烦。所以就先这样吧,等以后有时间再优化优化。

jq仿淘宝放大镜插件的更多相关文章

  1. JavaScript仿淘宝实现放大镜效果的实例

    我们都知道放大镜效果一般都是用于一些商城中的,列如每当我们打开淘宝,天猫等pc端时,看到心仪的物品时,点击图片时,便呈现出放大镜的效果.在没有去理解分析它的原理时,感觉非常的神奇,当真正地去接触,也是 ...

  2. 基于Bootstrap仿淘宝分页控件实现

    .header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { t ...

  3. 仿淘宝头像上传功能(三)——兼容 IE6 浏览器。

    前两篇目录: 仿淘宝头像上传功能(一)——前端篇. 仿淘宝头像上传功能(二)——程序篇. 仿淘宝头像上传功能(三)——兼容 IE6 浏览器 之前的这两篇虽然实现了功能,但不兼容低版本浏览器,而且有些浏 ...

  4. Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片

    Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片 自定义ADPager 自定义水平滚动的ScrollView效仿ViewPager 当遇到要在Vie ...

  5. jquery仿淘宝规格颜色选择效果

    jquery实现的仿淘宝规格颜色选择效果源代码如下 jquery仿淘宝规格颜色选择效果 -收缩HTML代码 运行代码 [如果运行无效果,请自行将源代码保存为html文件运行] <script t ...

  6. 高仿淘宝和聚美优品商城详情页实现《IT蓝豹》

    高仿淘宝和聚美优品商城详情页实现 android-vertical-slide-view高仿淘宝和聚美优品商城详情页实现,在商品详情页,向上拖动时,可以加载下一页. 使用ViewDragHelper, ...

  7. android版高仿淘宝客户端源码V2.3

    android版高仿淘宝客户端源码V2.3,这个版本我已经更新到2.3了,源码也上传到源码天堂那里了,大家可以看一下吧,该应用实现了我们常用的购物功能了,也就是在手机上进行网购的流程的,如查看产品(浏 ...

  8. 一款基于jQuery仿淘宝红色分类导航

    今天给大家分享一款基于jQuery仿淘宝红色分类导航.这款分类导航适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览    ...

  9. JS仿淘宝详情页菜单条智能定位效果

    类似于淘宝详情页菜单条智能定位 对于每个人来说并不陌生!如下截图所示:红色框的那部分! 基本原理: 是用JS侦听滚动事件,当页面的滚动距离(页面滚动的高度)大于或者等于 "对象"( ...

随机推荐

  1. mysql优化(初学)

    写的时候遇到了SQL语句的优化问题,在网上搜了一些学习.http://blog.csdn.net/kennyrose/article/details/7532032 索引: 1.可以在这些列上创建索引 ...

  2. jQuery checkbox的全选与反选

    1:checkbox的全选与反选 js 代码 $("#cbAll").click(function(){ if($("#cbAll").is(":ch ...

  3. JPA快速入门(自用)

    该案例为JPA的实体映射案例,将该项目解压导入到myeclipse中即可使用,然后直接使用hibernate即可! 文件地址:files.cnblogs.com/mrwangblog/JPA-Hibe ...

  4. html BOM、DOM

  5. c语言学习笔记三

    第三章,函数 字符串函数 //strcmp int my_strcmp(char *str1,char *str2) {   while(*str1 = = *str2)   /*不可用while(* ...

  6. $\mathscr{F}$类

    $\mathscr{F}$类:在单位元盘$B(0,1)$中满足$$f(0)=0,f'(0)=1$$ 的双全纯函数的全体.

  7. 高性能缓存系统Redis安装与使用

    在互联网后台架构中,需要应付高并发访问数据库,很多时候都会在数据库上层增加一个缓存服务器来保存经常读写的数据以减少数据库压力,可以使用LVS.Memcached或Redis,Memcached和Red ...

  8. kettle系列-我的开源kettle管理平台[kettle-manager]介绍

    kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端管理工具. 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题 ...

  9. Python爬虫Scrapy框架入门(3)

    往往需要爬取的网页是呈一个树状结构.比如,需要先爬取一个目录,然后再在目录中选择具体的爬取目标.而目录和具体目标之间,网页结构不同,使得我们不能使用相同的爬取策略. 从之前的经验来看,我们对scrap ...

  10. css中“~”和“>”是什么意思?

    css中"~"是: 为所有相同的父元素中位于 p 元素之后的所有 ul 元素设置背景: p~ul{ background:#ff0000; }    <p>快乐生活&l ...