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 选中表格一列并对表格排序实现原理
Dec 15 Javascript
javascript小数四舍五入多种方法实现
Dec 23 Javascript
jquery实现select选中行、列合计示例
Apr 25 Javascript
AngularJS基础 ng-href 指令用法
Aug 01 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 Javascript
jquery mobile移动端幻灯片滑动切换效果
Apr 15 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
WebSocket的简单介绍及应用
May 23 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
JS async 函数的含义和用法实例总结
Apr 08 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python去除字符串中的换行符
2017/10/11 Python
Python中optparser库用法实例详解
2018/01/26 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
Python如何操作docker redis过程解析
2020/08/10 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
波兰补充商店:Muscle Power
2018/10/29 全球购物
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
计算机专业自荐信
2014/05/24 职场文书
篮球赛口号
2014/06/18 职场文书
我的中国心演讲稿
2014/09/04 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
父亲节寄语大全
2015/02/27 职场文书
尼克胡哲观后感
2015/06/08 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
Linux系统下安装PHP7.3版本
2021/06/26 PHP