效果图:

不废话直接上代码:

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
}
ul{
position: relative;
width: 500px;
/*height: 500px;*/
margin: 50px;
}
li{
width: 500px;
height: 500px;
/*position: absolute;*/
}
.div {
border: 1px solid;
position: relative;
/*margin: 50px;*/
height: 500px;
width: 500px;
} .div img {
width: 500px;
height: 500px;
} .span {
width: 100px;
height: 100px;
position: absolute;
background: red;
display: none;
cursor: all-scroll;
opacity: 0.1; } .show {
height: 550px;
width: 550px;
position: relative;
left: 502px;
top: -505px;
overflow: hidden;
/*display: none;*/
} .show img {
position: absolute;
width: 1500px;
height: 1500px;
} </style>
</head>
<body> <ul> <li >
<div class="div">
<img src="sjxq01_boom.jpg">
<span class="span"></span>
<div class="show">
<img class="show_img" src="sjxq01_boom.jpg">
</div>
</div>
</li>
<li >
<div class="div" style="display: none">
<img src="sjxq3_boom.jpg">
<span class="span"></span>
<div class="show">
<img class="show_img" src="sjxq3_boom.jpg">
</div>
</div> </li>
</ul> <script type="text/javascript" src="jquery.min.js"></script><script src="demo.js"></script>
</body> </html>

js代码:

  $(document).ready(function () {
(function () {
var mouseX, //鼠标光标X坐标
             mouseY,
             divX, //最外层DIV X坐标
             divY,
             spanX, //放大镜 X坐标
             spanY,
             divW, // 最外层 DIV 宽度
             divH,  
             scrY, //滚动条卷去的高度
div = $(".div");
div.on("mousemove", function (e) {
$(this).find(".span").show();
$(this).find(".show").show();
scrY=document.body.scrollTop||document.documentElement.scrollTop;
divW = div.width();
divH = div.height();
mouseX = e.originalEvent.x || e.originalEvent.layerX || 0;
mouseY = e.originalEvent.y || e.originalEvent.layerY || 0;
divY = $(this).offset().top;
divX = $(this).offset().left;
spanX = mouseX - divX - 50;
spanY = mouseY - divY - 50+scrY;
if ((spanX + 100) > divW) {
spanX = 400;
}
if ((spanY + 100) > divW) {
spanY = 400;
}
if (spanX < 0) {
spanX = 0;
}
if (spanY < 0) {
spanY = 0;
}

if(mouseX > (divW+divX)){
                     $(this).find(".span").hide();
                     $(this).find(".show").hide();
                  }

                 $(this).find(".span").css('left', spanX).css('top', spanY);
$(this).find(".show_img").css("left", -3 * spanX).css('top', -3 * spanY);
});
div.on("mouseout", function () {
$(this).find(".span").hide();
$(this).find(".show").hide();
});
div.on("mouseover", function () {
}); })(); });

jQuery实现仿京东商城图片放大镜的更多相关文章

  1. ThinkPHP3.2开发仿京东商城项目实战视频教程

    ThinkPHP3.2仿京东商城视频教程实战课程,ThinkPHP3.2开发大型商城项目实战视频 第一天 1.项目说明 2.时间插件.XSS过滤.在线编辑器使用 3.商品的删除 4.商品的修改完成-一 ...

  2. 完美高仿精仿京东商城手机客户端android版源码

    完美高仿精仿京东商城手机客户端android版源码,是从安卓教程网那边转载过来的,这款应用源码非常不错的,也是一个非常优秀的应用源码的,希望能够帮到学习的朋友. _js_op> <igno ...

  3. 商城项目实战 | 2.2 Android 仿京东商城——自定义 Toolbar (二)

    本文为菜鸟窝作者刘婷的连载."商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现. 上一篇文章<商城项目实战 | 2.1 Android 仿京东商城 ...

  4. 01-02 Flutter仿京东商城项目 功能分析、底部导航Tab切换以及路由配置、架构搭建:(Flutter仿京东商城项目 首页布局以及不同终端屏幕适配方案)

    Flutter和Dart交流学习群:交流群:452892873 01Flutter仿京东商城项目 功能分析.底部导航Tab切换以及路由配置.架构搭建 02Flutter仿京东商城项目 首页布局以及不同 ...

  5. 商城项目实战 | 1.1 Android 仿京东商城底部布局的选择效果 —— Selector 选择器的实现

    前言 本文为菜鸟窝作者刘婷的连载."商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现. 京东商城的底部布局的选择效果看上去很复杂,其实很简单,这主要是要 ...

  6. 商城项目实战 | 2.1 Android 仿京东商城——自定义 Toolbar (一)

    前言 本文为菜鸟窝作者刘婷的连载."商城项目实战"系列来聊聊仿"京东淘宝的购物商城"如何实现. 现在很多的 APP 里面都有自己的自定义风格,特别是京东商城中自 ...

  7. jquery实现仿京东侧边栏

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. 18 Flutter仿京东商城项目 商品详情顶部tab切换 顶部下拉菜单 底部浮动导航

    ProductContent.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.dart'; ...

  9. 17 Flutter仿京东商城项目 保存历史搜索记录 删除历史记录 清空历史记录 长按删除

    Storage.dart import 'package:shared_preferences/shared_preferences.dart'; class Storage{ static Futu ...

随机推荐

  1. shutil.rmtree()

    shutil.rmtree(path, ignore_errors=False, onerror=None)   #递归地删除文件 def rmtree(path, ignore_errors=Fal ...

  2. Spring Cloud 微服务入门(一)--初识分布式及其发展历程

    分布式开发出现背景 当有计算机出现一段时间之后就开始有人去想如何将不同的电脑进行网络连接,而网络连接之后对于web的项目开发就探索所谓的分布式设计,同时人们也意识到重要的数据必须多份存在.所以分布式就 ...

  3. Jquery中菜单的展开和折叠

    jquery内容 <script> $(function () { $("dl dt").click(function () { $(this).siblings(). ...

  4. 使用ContentType处理大量的外键关系

    问题分析 在之前的一个商城的项目中使用了mysql, 提到mysql就是外键, 多对多等等一系列的表关系 因为是一个商城的项目, 这里面有优惠券, 商品有很多的分类, 不同的商品又有不同的优惠券 其实 ...

  5. 关于windows下安装mysql数据库出现中文乱码的问题

    首先需要在自己安装的mysql路径下新建一个my.ini文件,如下: 然后在my.ini文件中输入一下内容,主要控制编码问题的为红框部分,如下: 为了方便大家使用,可以复制以下代码: [WinMySQ ...

  6. Hadoop1.0 与Hadoop2.0

    Hadoop1.0的局限-MapReduce •扩展性 –集群最大节点数–4000 –最大并发任务数–40000 (当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增 ...

  7. 【C】关键字void的用法

    void有两种功能 [1]没有 [2]任意类型 void出现的位置不同会有不同的解释 [1]void func( void ) func左边的void,代表『没有返回值』 func右边的括弧里的voi ...

  8. Python递归与迭代

    1.递归与迭代: 递归和迭代都是循环的一种.简单地说,递归是重复调用函数自身实现循环.迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结 ...

  9. bit_length

    #当十进制用二进制表示时,最少使用的位数 v=2data=v.bit_length()print(data)

  10. for循环删除列表中元素遇到的漏删的问题(python)

    问题描述:python中通过for循环来删除列表中的两个相邻的元素,存在漏删的问题 比如说下面的例子,准备删掉2和3,但是结果是2删掉了,3没删掉 是因为把2删掉后3的下标就变成了1,但是原本下标为1 ...