JS实现电商放大镜效果


Posted in Javascript onAugust 24, 2017

前端JS电商放大镜效果,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>26-电商放大镜</title>
  <style type="text/css">
    
  *{
    padding: 0;
    margin: 0;
  }
  #left{
   padding: 0;
  margin: 0;
    width: 400px;
    height: 400px;
    border: 2px solid blue;
    background: url(http://chuantu.biz/t6/17/1503469475x2063891122.jpg) no-repeat;
    float: left;
    cursor: crosshair;
    position: relative;
  box-sizing: border-box;
  }
  #box{
    width: 200px;
    height: 200px;
    background: white;
    opacity: 0.6;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
  box-sizing: border-box;
  }
  #cover{
    width: 400px;
    height: 400px;
    background: red;
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
  box-sizing: border-box;
  }
  #right{
    width: 400px;
    height: 400px;
    border: 2px solid black;
    overflow: hidden;
    position: relative;
    display: none;
  box-sizing: border-box;
  }
  #rpic{
    position: absolute;
  }
  </style>

  <script type="text/javascript">
    
  window.onload = function(){
    var left = document.getElementById("left");
    var right = document.getElementById("right");
    var rpic = document.getElementById("rpic");
    var box = document.getElementById("box");
    var cover = document.getElementById("cover");

    // 给左侧加鼠标移动事件
    cover.onmousemove = function(){

      //获得事件对象
      var ev = window.event;
      var mouse_left = ev.offsetX || ev.layerX;
      var mouse_top = ev.offsetY || ev.layerY;
      // document.title = mouse_left + '|' + mouse_top;

      //计算色块的位置
      var box_left = mouse_left - 100;
      var box_top = mouse_top - 100;

      // 判断是否超出
      if (box_left < 0) {
        box_left = 0;
      }
      if (box_left > 200) {
        box_left = 200;
      }
      if (box_top < 0) {
        box_top = 0;
      }
      if (box_top > 200) {
        box_top = 200;
      }

      // 让色块移动
      box.style.left = box_left + 'px';
      box.style.top = box_top + 'px';

      //计算右侧图片位置
      var rpic_left = box_left*-2;
      var rpic_top = box_top*-2;

      // 让右侧移动
      rpic.style.left = rpic_left + 'px';
      rpic.style.top = rpic_top + 'px';

    }

      //给左侧加鼠标移入事件
      cover.onmouseover = function(){
        // 让左侧色块和右侧隐藏
        box.style.display = 'block';
        right.style.display = 'block';
      }

      // 给左侧加鼠标移出事件
      cover.onmouseout = function(){
        // 让左侧色块和右侧隐藏
        box.style.display = 'none';
        right.style.display = 'none';
      }
  }

  </script>
</head>
<body>
  <div id="left">
    <div id="box"></div>
    <div id="cover"></div>
  </div>
  <div id="right">
    <img src="http://chuantu.biz/t6/17/1503469419x2063891122.jpg" id="rpic">
  </div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
真正的JQuery.ajax传递中文参数的解决方法
May 28 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
Jan 16 Javascript
jQuery中:password选择器用法实例
Jan 03 Javascript
JavaScript日期类型的一些用法介绍
Mar 02 Javascript
原生js实现图片放大缩小计时器效果
Jan 20 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
May 02 Javascript
Vue2.X 通过AJAX动态更新数据
Jul 17 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
Sep 25 Javascript
Element Input组件分析小结
Oct 11 Javascript
基于vue手写tree插件的那点事儿
Aug 20 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
Dec 15 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 #Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 #jQuery
详解webpack2+node+react+babel实现热加载(hmr)
Aug 24 #Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
Aug 24 #Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
Aug 23 #Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
Aug 23 #Javascript
angular2路由切换改变页面title的示例代码
Aug 23 #Javascript
You might like
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
Django的session中对于用户验证的支持
2015/07/23 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python实现textrank关键词提取
2018/06/22 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
七年级地理教学反思
2014/01/26 职场文书
小学生评语集锦
2014/04/18 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
促销活动总结怎么写
2014/06/25 职场文书
稽核岗位职责范本
2015/04/13 职场文书
母亲节感言
2015/08/03 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis