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的attr与prop使用介绍
Oct 10 Javascript
JS获取当前日期时间并定时刷新示例
Mar 04 Javascript
javascript实现playfair和hill密码算法
Dec 07 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
javascript简易画板开发
Apr 12 Javascript
用jmSlip编写移动端顶部日历选择控件
Oct 24 Javascript
jQuery实现复选框的全选和反选
Feb 02 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
js实现图片懒加载效果
Jul 17 Javascript
NestJs 静态目录配置详解
Mar 12 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
解决新建一个vue项目过程中遇到的问题
Oct 22 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安全配置详细说明
2011/09/26 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python实现socket客户端和服务端简单示例
2014/02/24 Python
Python字典操作简明总结
2015/04/13 Python
python结合API实现即时天气信息
2016/01/19 Python
使用Python对SQLite数据库操作
2017/04/06 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
统计员岗位职责
2013/11/14 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
yy司仪主持词
2014/03/22 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
谢师宴答谢词
2015/01/05 职场文书
酒店员工管理制度
2015/08/05 职场文书
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android