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 相关文章推荐
学习YUI.Ext 第四天--对话框Dialog的使用
Mar 10 Javascript
xml和web特殊字符
Apr 28 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
Jul 27 Javascript
firefox下input type=&quot;file&quot;的size是多大
Oct 24 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
举例简介AngularJS的内部语言环境
Jun 17 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
详解vue 中使用 AJAX获取数据的方法
Jan 18 Javascript
Input文本框随着输入内容多少自动延伸的实现
Feb 15 Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 Javascript
vue+vant 上传图片需要注意的地方
Jan 03 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
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
smarty简单入门实例
2014/11/28 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
twig模板常用语句实例小结
2016/02/04 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JavaScript函数详解
2014/11/17 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
跟老齐学Python之关于类的初步认识
2014/10/11 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
DTD的含义以及作用
2014/01/26 面试题
民族团结演讲稿范文
2014/08/27 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技