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 相关文章推荐
Javascript !!的作用
Dec 04 Javascript
javascript与asp.net(c#)互相调用方法
Dec 13 Javascript
JavaScript之HTMLCollection接口代码
Apr 27 Javascript
将页面table内容与样式另存成excel文件的方法
Aug 05 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
Jul 10 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
Aug 24 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 Javascript
Preload基础使用方法详解
Feb 03 Javascript
vue中用 async/await 来处理异步操作
Jul 18 Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 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
PHP4与PHP5的时间格式问题
2008/02/17 PHP
php cout&amp;lt;&amp;lt;的一点看法
2010/01/24 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
解析strtr函数的效率问题
2013/06/26 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
JS作用域深度解析
2016/12/29 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
详解Python中的文本处理
2015/04/11 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
python ---lambda匿名函数介绍
2019/03/13 Python
selenium+python环境配置教程详解
2019/05/28 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
经理职责范文
2013/11/08 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
物业工程部岗位职责
2015/02/11 职场文书
办公用品质量保证书
2015/05/11 职场文书
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
解析MySQL索引的作用
2022/03/03 MySQL
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
docker-compose部署Yapi的方法
2022/04/08 Servers
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle