今天我们来写一下jQuery的效果来上代码

1,html代码

  1. <div id='small'><img src="./icon/images/sj1.jpg" alt="" width='100%'><div id='move'></div></div>
  2. <ul id="images">
  3. <li><img class="imgs" src="./icon/images/sj1.jpg" alt="" width="100%"></li>
  4. <li><img class="imgs" src="./icon/images/sj6.jpg" alt="" width="100%"></li>
  5. <li><img class="imgs" src="./icon/images/sj7.jpg" alt="" width="100%"></li>
  6. </ul>
  7. <div id='big'><img src="./icon/images/sj1.jpg" alt="" id='img'></div>

2,css代码

  1. #small{border:1px solid #ccc;position: absolute;top:220px;}
  2. #move{width:150px;height:100px;position: absolute;left:;top:;background: url(bg.png);display: none;}
  3. #images{position: absolute;top:560px;left:200px;width:1000px;height:100px;}
  4. #images li { width: 70px;height: 70px;float: left;margin-right: 10px;border: solid 1px #ccc;padding:4px;}
  5. #big{width:300px;height:308px;text-align:center;border:1px solid #ccc;position: absolute;left:500px;top:220px;overflow:hidden;display: none;}
  6. #big #img{position: absolute;left:-100px;}

3,jQuery代码

  1. //===============================放大镜开始===========================
  2. $("#images img").click(function (){
  3. var src = $(this).attr("src");
  4. //小图 大图
  5. $("#small img").attr("src",src);
  6. $("#big img").attr("src",src);
  7. });
  8. //2 鼠标移动
  9. $('#small').mousemove(function(ent){
  10. //大盒子显示 放大镜显示
  11. $("#big").css("display","block");
  12. $("#move").css("display","block");
  13. //获得鼠标
  14. var ent = ent || window.event;
  15. var m_w = $("#move").width();
  16. var m_h = $("#move").height();
  17. //放大镜不能出盒子范围
  18. var minX = $("#small").offset().left+m_w/2;
  19. var maxX = $("#small").width()+$("#small").offset().left-m_w/2;
  20. var minY = $("#small").offset().top+m_h/2;
  21. var maxY = $("#small").height()+$("#small").offset().top-m_h/2;
  22. if(ent.pageX<minX){
  23. ent.pageX=minX;
  24. }else if(ent.pageX>maxX){
  25. ent.pageX=maxX;
  26. }else{
  27. $("#move").css("left",(ent.pageX-m_w/2-$("#small").offset().left));
  28. // $("#move").css("left",(ent.pageX-$("#small").offset().left));
  29. }
  30. if(ent.pageY<minY){
  31. ent.pageY=minY;
  32. }else if(ent.pageY>maxY){
  33. ent.pageY=maxY;
  34. }else{
  35. $("#move").css("top",(ent.pageY-m_h/2-$("#small").offset().top));
  36. // $("#move").css("top",(ent.pageY-$("#small").offset().top));
  37. }
  38. //大盒子随鼠标的移动位置
  39. $("#big").scrollTop((ent.pageY-$("#small").offset().top)*2.5-200);
  40. $("#big").scrollLeft((ent.pageX-$("#small").offset().left)*2.5-250);
  41. //添加鼠标样式
  42. $("#small").css("cursor","move");
  43. });
  44. //3 鼠标移出
  45. $("#small").mouseout(function(){
  46. $("#big").css("display","none");
  47. $("#move").css("display","none");
  48. $("#small").css("cursor","default");
  49. });
  50. //===============================放大镜结束===========================

以上就是jQuery实现的放大镜我还是那句话clientx/y与pagex/y的不同不然放大镜bug会很大,下次让我们来了解一下pageX/Y与offsetx/y  clientx/y区别,我们下次见

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

  1. 用js实现放大镜的效果

    第一次发博客,还有点小激动,本人现在正在天津上大学,希望以后从事前端这一行业,学习的时间不长,写博客为了记录自己的学习过程和收获,当然也算是巩固.可能写的东西不会像大牛那样高大上,只是一些基本的内容, ...

  2. 在网站开发中很有用的8个 jQuery 效果【附源码】

    jQuery 作为最优秀 JavaScript 库之一,改变了很多人编写 JavaScript 的方式.它简化了 HTML 文档遍历,事件处理,动画和 Ajax 交互,而且有成千上万的成熟 jQuer ...

  3. jQuery 效果 —— 滑动

    jQuery 效果 -- 滑动 1.向下滑动元素 (1)使用slideDown()方法可以用于向下滑动元素 $("button").click(function(){ $(&quo ...

  4. jQuery 效果 —— 隐藏和显示

    jQuery 效果 -- 隐藏和显示 1.隐藏和显示 (1)在jQuery中我们可以使用hide()和show()分别隐藏和显示HTML元素: //隐藏元素 $("button") ...

  5. jQuery 效果函数

    jQuery 效果函数 方法 描述 animate() 对被选元素应用“自定义”的动画 clearQueue() 对被选元素移除所有排队的函数(仍未运行的) delay() 对被选元素的所有排队函数( ...

  6. JQuery: JQuery效果(隐藏、显示、切换,滑动,淡入淡出,以及动画)

    JQuery:效果 JQuery效果有很多,包括隐藏.显示.切换,滑动,淡入淡出,以及动画等.隐藏:JQuery hide() 显示:JQuery show() 切换:JQuery toggle() ...

  7. jquery效果- 显示和隐藏 淡入淡出 滑动 隐藏

    jQuery 效果- 隐藏和显示:hide() 和 show() 规定隐藏/显示的速度,可以取以下值:"slow"."fast" 或毫秒 您可以使用 toggl ...

  8. Jquery效果代码--(二)

    //jQuery 效果- 隐藏和显示.通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: //掩藏效果演示: $(document).ready(fun ...

  9. jQuery 效果方法

    jQuery 效果方法 下面的表格列出了所有用于创建动画效果的 jQuery 方法. 方法 描述 animate() 对被选元素应用"自定义"的动画 clearQueue() 对被 ...

随机推荐

  1. 2018-2019-2 20175320实验一《Java开发环境的熟悉》实验报告

    2018-2019-2 20175320实验一<Java开发环境的熟悉>实验报告 一.实验步骤及内容 (一)带包程序的编译运行 1.使用mkdir命令创建如图所示目录 2.进入exp1下的 ...

  2. dataTransfer对象

    HTML5拖拽的数据传输 虽然通过dragstart.drag和dragend事件实现了原生拖拽.但是这仅仅是拖拽,在IE6和IE7中还是有些拖拽问题,并且也没有实现数据的交换.为了实现数据的交换,I ...

  3. rimraf 跨平台删除文件

    利用npm script 来删除文件, "scripts": { "clear": "rm -rf dist" } 但存在一个问题,remo ...

  4. Oracle不连续的值,如何实现查找上一条、下一条

    1.  遇到的问题 已知一个题库,希望实现当前页切换上一题,下一题的需求. 查看得知,数据库中用于查询的字段(主键)是不连续的.如上图所示:stxh为主键number类型. 2.  实现方式lead ...

  5. spring拦截器-过滤器的区别

    1.  理解 拦截器 :是在面向切面编程的时候,在你的 service 或者一个方法前调用一个方法,或者在方法后调用一个方法:比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业 ...

  6. Python subprocess.Popen() error (No such file or directory)

    这个错误很容易引起误解,一般人都会认为是命令执行了,但是命令找不到作为参数对应的文件或者目录.其实还有一层含义,就是这个命令找不到,命令找不到,也会报没有这个文件或者目录的错误. 为什么找不到这个命令 ...

  7. Docker:Docker搭建Redis集群(6)

    国外的公有云实在是太慢了,经常time out 这里搜集几个国内出名的: hub.c.163.com (网易:https://c.163.com/hub#/m/home/) dev.aliyun.co ...

  8. for loop

    https://www.cnblogs.com/EasonJim/p/8315939.html

  9. laravel容器container 阅读记录

    今天抽时间又仔细看了一下laravel的container,记录一下. 所谓容器,听名字就知道,是一个仓库,装东西用的,所以,container所有的功能,都围绕一个主题:管理装. 类名称:Illum ...

  10. List接口和Set接口和Map接口的of方法

    只适用于List接口和Set接口和Map接口,不能改变,不允许有重复元素: