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中Array.prototype.map()详解
Oct 22 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
Bootstrap模仿起筷首页效果
May 09 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
详解vue中router-link标签所必备了解的属性
Apr 15 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
Jul 19 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
Feb 09 Javascript
何时/使用 Vue3 render 函数的教程详解
Jul 25 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
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
curl和libcurl的区别简介
2015/07/01 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python处理cookie详解
2014/02/07 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
python构建深度神经网络(续)
2018/03/10 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
python:print格式化输出到文件的实例
2018/05/14 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
机械电子工程毕业生自荐信
2013/11/23 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
乱世佳人观后感
2015/06/08 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript