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 相关文章推荐
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
js的匿名函数使用介绍
Dec 11 Javascript
javascript实现确定和取消提示框效果
Jul 10 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
webpack 模块热替换原理
Apr 09 Javascript
Webpack打包字体font-awesome的方法示例
Apr 26 Javascript
Vue 组件传值几种常用方法【总结】
May 28 Javascript
VUE 配置vue-devtools调试工具及安装方法
Sep 30 Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 Javascript
微信小程序wxs实现吸顶效果
Jan 08 Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 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类的使用 实例代码讲解
2009/12/28 PHP
学习php笔记 字符串处理
2010/10/19 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
谈谈vue中mixin的一点理解
2017/12/12 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
怎样创建、运行java程序
2014/08/01 面试题
软件测试常见笔试题
2012/02/04 面试题
机电一体化求职信
2014/03/10 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
带你了解Java中的ForkJoin
2022/04/28 Java/Android
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL