<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jquery图片放大镜插件 - A5源码</title> <link rel="stylesheet" type="text/css" href="css/zzsc.css"> <script type="text/javascript" class="library" src="js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" class="library" src="js/jquery.colorbox-min.js"></script>
<script type="text/javascript" class="library" src="js/zzsc.js"></script> <body>
<div class="con-FangDa" id="fangdajing">
<div class="con-fangDaIMg">
<!-- 正常显示的图片-->
<img src="data:images/big/1.jpg">
<!-- 滑块-->
<div class="magnifyingBegin"></div>
<!-- 放大镜显示的图片 -->
<div class="magnifyingShow"><img src="data:images/big/1.jpg"></div>
</div> <ul class="con-FangDa-ImgList">
<!-- 图片显示列表 -->
<li class="active"><img src="data:images/thumb/1.jpg" data-bigimg="images/big/1.jpg"></li>
<li><img src="data:images/thumb/2.jpg" data-bigimg="images/big/2.jpg"></li>
<li><img src="data:images/thumb/3.jpg" data-bigimg="images/big/3.jpg"></li>
<li><img src="data:images/thumb/4.jpg" data-bigimg="images/big/4.jpg"></li>
<li><img src="data:images/thumb/5.jpg" data-bigimg="images/big/5.jpg"></li>
</ul>
</div> <div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">
<p>适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.</p>
<p>来源:<a href="http://down.admin5.com/info/" target="_blank">A5源码</a></p>
</div>
</body>
</html>

css

*{
margin: 0;
padding: 0;
} /*主容器*/
.con-FangDa{
width: 300px;
height: auto;
margin: 10px auto;
background-color:#fff;
}
/*正常容器*/
.con-fangDaIMg{
width: 300px;
height: 450px;
position: relative;
background-color: #454545;
}
.con-fangDaIMg > img{
width: 100%;
height:100%
}
/*滑块*/
.magnifyingBegin{
width: 150px;
height: 175px;
left: 0;
top: 0;
background-color: #454545;
opacity: 0.5;
filter:alpha(opacity=50);
position: absolute;
cursor: move;
display: none;
}
/*放大镜显示区域*/
.magnifyingShow{
width: 450px;
height: 514px;
display: none;
position: absolute;
right: -470px;
top: 0;
overflow: hidden;
background-color: #454545;
}
.magnifyingShow > img{
width: 900px;
height: 1350px;
margin-left:0;
margin-top: 0;
}
/*设置选择图片容器*/
.con-FangDa-ImgList{
margin-top:10px;
height:54px;
width:320px;
list-style: none;
}
.con-FangDa-ImgList > li{
margin-right:7px;
width: 50px;
height: 50px;
float: left;
cursor: pointer;
border: 2px solid #666;
background-color: #454545;
text-align:center;
} .con-FangDa-ImgList > li > img{
vertical-align:top;
display:inline;
width:auto;
height:50px;
}
.con-FangDa-ImgList > .active{
border-color:#000;
}

js

$(function(){
$.fn.magnifying = function(){
var that = $(this),
$imgCon = that.find('.con-fangDaIMg'),//正常图片容器
$Img = $imgCon.find('img'),//正常图片,还有放大图片集合
$Drag = that.find('.magnifyingBegin'),//拖动滑动容器
$show = that.find('.magnifyingShow'),//放大镜显示区域
$showIMg = $show.find('img'),//放大镜图片
$ImgList = that.find('.con-FangDa-ImgList > li >img'),
multiple = $show.width()/$Drag.width(); $imgCon.mousemove(function(e){
$Drag.css('display','block');
$show.css('display','block');
//获取坐标的两种方法
// var iX = e.clientX - this.offsetLeft - $Drag.width()/2,
// iY = e.clientY - this.offsetTop - $Drag.height()/2,
var iX = e.pageX - $(this).offset().left - $Drag.width()/2,
iY = e.pageY - $(this).offset().top - $Drag.height()/2,
MaxX = $imgCon.width()-$Drag.width(),
MaxY = $imgCon.height()-$Drag.height(); /*这一部分可代替下面部分,判断最大最小值
var DX = iX < MaxX ? iX > 0 ? iX : 0 : MaxX,
DY = iY < MaxY ? iY > 0 ? iY : 0 : MaxY;
$Drag.css({left:DX+'px',top:DY+'px'});
$showIMg.css({marginLeft:-3*DX+'px',marginTop:-3*DY+'px'});*/ iX = iX > 0 ? iX : 0;
iX = iX < MaxX ? iX : MaxX;
iY = iY > 0 ? iY : 0;
iY = iY < MaxY ? iY : MaxY;
$Drag.css({left:iX+'px',top:iY+'px'});
$showIMg.css({marginLeft:-multiple*iX+'px',marginTop:-multiple*iY+'px'});
//return false;
});
$imgCon.mouseout(function(){
$Drag.css('display','none');
$show.css('display','none');
}); $ImgList.click(function(){
var NowSrc = $(this).data('bigimg');
$Img.attr('src',NowSrc);
$(this).parent().addClass('active').siblings().removeClass('active');
});
} $("#fangdajing").magnifying(); });

之前看到过用canvas实现类似的放大镜效果,过两天抽时间我会整理下分享上来;

源码来源:A5源码

jquery放大镜效果的更多相关文章

  1. 关于jQuery中实现放大镜效果

    1.1.1 摘要 相信大家都见过或使用过放大镜效果,甚至实现过该效果,它一般应用于放大查看商品图片,一些电商网站(例如:凡客,京东商城,阿里巴巴等)都有类似的图片查看效果. 在接下来的博文中,我们将向 ...

  2. jQuery实现放大镜效果

    1.1.1 摘要 相信大家都见过或使用过放大镜效果,甚至实现过该效果,它一般应用于放大查看商品图片,一些电商网站(例如:凡客,京东商城,阿里巴巴等)都有类似的图片查看效果. 在接下来的博文中,我们将向 ...

  3. 使用jquery实现放大镜效果

    原文:使用jquery实现放大镜效果 实现原理 首先,我们讲解一下放大镜效果的实现方式: 方法一:准备一张高像素的大图,当鼠标放到原图上,加载显示大图的对应位置. 方法二:对原图片进行放大,也就是调整 ...

  4. jquery+js实现鼠标位移放大镜效果

    jQuery实现仿某东商品详情页放大镜效果 用jquery+js实现放大镜效果,效果大概如下图! 效果是不是大家很感兴趣,放大镜查看细节,下边大家可以详细看一看具体是怎么实现的.下边直接看代码! HT ...

  5. js、jquery实现放大镜效果

    在一些电商网站的商品详情页面,都会有放大镜效果,实现起来并不是很困难,今天用了两个小时,写了一个放大镜效果的实例,来分享给大家! 实现的效果大概是这个样子的 预览 先来看一下效果吧,点击下面的链接预览 ...

  6. [转]jquery 鼠标放在图片上显示图片的放大镜效果jqzoom_ev-2.3

    本文转自:http://blog.csdn.net/weizengxun/article/details/6768183 鼠标放在图片上显示图片的放大镜效果使用jqzoom实现,本例版本2.3 效果图 ...

  7. 基于Jquery的商城商品图片的放大镜效果(非组件)

    在开发商城的时候,往往会用到图片的放大功能,这里把自己在近期项目中使用的放大镜特效做一下总结(非插件). 放大镜效果 常用的js组件jquery.imagezoom,jquery.jqzoom,jqu ...

  8. jQuery实现图片放大镜效果

    实现图片放大镜的原理: 给放大镜元素一个对应的html元素为<div class='right'> 设置这个div的宽高固定为某个值(350px,350px) 设置div的css为超出部分 ...

  9. 【Demo】jQuery 图片放大镜效果——模仿淘宝图片放大效果

    实现功能: 模仿淘宝图片放大效果,鼠标移动到小图片的某一处,放大镜对应显示大图片的相应位置. 实现效果: 实现代码: <!DOCTYPE html> <html> <he ...

随机推荐

  1. Java并发编程实现概览

    并发概览 >>同步 如何同步多个线程对共享资源的访问是多线程编程中最基本的问题之一.当多个线程并发访问共享数据时会出现数据处于计算中间状态或者不一致的问题,从而影响到程序的正确运行.我们通 ...

  2. Sphinx的介绍和原理探索

    What/Sphinx是什么 定义 Sphinx是一个全文检索引擎. 特性 索引和性能优异 易于集成SQL和XML数据源,并可使用SphinxAPI.SphinxQL或者SphinxSE搜索接口 易于 ...

  3. App 开发:Hybrid 架构下的 HTML5 应用加速方案

    在移动 App 开发领域,主流的开发模式可分为 Native.Hybrid.WebApp 三种方式.然而 2013 年,纯 WebApp 开发模式的发展受到一定挫折,以 Facebook 为代表的独立 ...

  4. 【数据库】 防止sql注入,过滤敏感关键字

    private bool FilterIllegalChar(string sWord) { var result = false; var keyWord = @"select|inser ...

  5. Redis处理文件日志并发(2)

    多线程操作同一个文件时会出现并发问题.解决的一个办法就是给文件加锁(lock),但是这样的话,一个线程操作文件时,其它的都得等待,这样的话性能非常差.另外一个解决方案,就是先将数据放在队列中,然后开启 ...

  6. 垂直时间轴HTML

    1.概述 用时间点来展示事件发生点来代替用table展示一条条数据,能够给人清晰.一目了然能够看清事情发生的过程,UI页面也显示的那么清晰.如何用css+html做出时间轴展示事件点的?先来看看下面的 ...

  7. 【JAVA中String、StringBuffer、StringBuilder类的使用】

    一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: public class Strin ...

  8. 算法系列:HMM

    隐马尔可夫(HMM)好讲,简单易懂不好讲. 用最经典的例子,掷骰子.假设我手里有三个不同的骰子.第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1 ...

  9. WPF中加载高分辨率图片性能优化

    在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题. 问题背景: 在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高. 代码: XAML: < ...

  10. linux下mysql的简单使用

    写这篇的主要目的是记录一点mysql的基本使用方法,当然sql查询语句本来就有不少东西,这里就不一一介绍,这个网址有详细的教程(http://www.sdau.edu.cn/support/mysq_ ...