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 相关文章推荐
仅img元素创建后不添加到文档中会执行onload事件的解决方法
Jul 31 Javascript
探讨js字符串数组拼接的性能问题
Oct 11 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
原生js实现模拟滚动条
Jun 15 Javascript
JavaScript访问字符串中单个字符的两种方法
Jul 03 Javascript
js实现跨域的4种实用方法原理分析
Oct 29 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
基于node.js实现微信支付退款功能
Dec 19 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
JS实现躲避粒子小游戏
Jun 18 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
关于php fread()使用技巧
2010/01/22 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
Python Web编程之WSGI协议简介
2018/07/18 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
信息技术培训感言
2014/03/06 职场文书
应届大学生自荐书
2014/06/17 职场文书
消防安全月活动总结
2015/05/08 职场文书
追讨欠款律师函
2015/06/24 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书