原生js写出模拟京东放大图

// An highlighted block
<!OCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>*{margin: 0;padding: 0;}.photo{width: 250px;height: 300px;position:absolute;top: 10%;left: 20%;}.box{left: 100px;top: 100px;position: relative;width: 400px;height: 400px;background: #cccccc;border: 1px solid #000;}.big{width: 800px;height: 800px;top:0;left:10px;position: absolute;}.bigbox{width: 400px;height: 450px;/* background: cornflowerblue; */position: absolute;left: 410px;top: 0;border: 1px solid #000;display: none;overflow: hidden;}.jingzi{width: 150px;height: 150px;background: rgb(158, 192, 89);opacity: .5;cursor: move;display: none;position: absolute;}</style>
</head>
<body><div class="box"><img src="img/6.jpg" class="photo"><div class="jingzi"></div><div class="bigbox"><img src="img/6.jpg" class="big"></div></div><script>var box=document.querySelector('.box');var photo=document.querySelector('.photo');var jingzi=document.querySelector('.jingzi');var bigbox=document.querySelector('.bigbox');box.addEventListener('mouseover',function(){// 鼠标经过显示放大框 和遮挡层jingzi.style.display='block';bigbox.style.display='block';});box.addEventListener('mouseout',function(){// 鼠标离开隐藏jingzi.style.display='none';bigbox.style.display='none';});box.addEventListener('mousemove',function(e){// 获得鼠标在照片框里的位置 因为遮挡层只在框里运动var x=e.pageX-box.offsetLef;var y=e.pageY-box.offsetTop;// 遮挡层 距离左边和上边的距离 // jingzi.offsetHeight/2// jingzi.offsetWidth/2 这俩句是让鼠标始终在遮挡层中间// jingziX ,jingziY 是当前距离盒子左边和上面的距离var jingziX=x-jingzi.offsetWidth/2; var jingziY=y-jingzi.offsetHeight/2;// 遮挡层的最大移动距离XjingziXMax=box.offsetWidth-jingzi.offsetWidth;jingziYMax=box.offsetHeight-jingzi.offsetHeight;// 遮盖层超出左边的边界 就至零if(jingziX<=0){jingziX=0;}// 超出左边 赋值 最大值if(jingziX>= jingziXMax){jingziX= jingziXMax;}// (jingziX<=0)?jingziX=0:jingziX=box. jingziXMax;三元运算符// 遮盖层超出上边的边界 就至零if(jingziY<=0){jingziY=0;}if(jingziY>=jingziYMax){jingziY=jingziYMax;}// (jingziY<=0)?jingziY=0:jingziY=box.offsetHeight-jingzi.offsetHeight;//判断完毕 将值赋给遮盖层jingzi.style.left=jingziX+'px'jingzi.style.top=jingziY +'px';//  获取大照片var bigphoto=document.querySelector('.big');//  最大的移动距离var big_move_x=bigphoto.offsetWidth-bigbox.offsetWidth;var big_move_y=bigphoto.offsetHeight-bigbox.offsetHeight;//  大照片的移动的距离与小棕照片成比例 算法://  遮盖层的移动距离/遮盖层的最大移动距离=大照片的移动距离/最大移动距离 // 换算即可得出 大照片的移动距离var bigX=jingziX*big_move_x/jingziXMax;var bigY=jingziY*big_move_y/jingziYMax;// 赋值bigphoto.style.left=-bigX +'px';bigphoto.style.top=-bigY+'px';});</script>
</body>
</html>

原生js仿写京东放大图相关推荐

  1. 使用原生js仿写win10时钟

    学习web前端已经一月了,突然就像做一点什么,于是就仿写了一个win10时钟(农历计算准确度太差,于是就忽略不写了~~) 一.HTML布局 1 <div class="wrap&quo ...

  2. 原生JS仿写手机指南针(带水平仪)

    历时半年整理出了十多万字的学习笔记,目前依旧在更新 欢迎点赞和支持-

  3. 【每日一练】原生js仿淘宝主图放大镜功能,附学习源码

    在我们的项目中,经常会遇到各种功能效果的实现,对于每一项功能的实现方式,都有很多种,这些实现方式没有好坏之分,只有适合与否,但是我个人建议,如果项目急就选择自己擅长的方式实现,比较完成工作更加重要嘛. ...

  4. HTML+CSS 仿写京东网站界面

    在学习了HTML和CSS以后,用俩天的时间仿写京东网站的部分界面,基本将之前学习的内容都应用到了,收货颇多,也对网站的布局有了更深的认识. 总结 整体的布局 在开始写网站之前,要考虑整体的布局,事先将 ...

  5. 用原生js+html写一个像素鸟游戏

    前言: 用html+js+css写一个面向对象板的像素鸟游戏 看一下效果把: 游戏需引用的图片:(右键保存图片) bird.png land.png pipeDown.png pipeUp.png s ...

  6. 【原生JS】写滚动指定位置展示动画

    用原生js做滚动到指定位置展示动画,动画效果用Animate.css 直接上代码 <!DOCTYPE html> <html lang="en"><h ...

  7. HTML+CSS仿写京东登陆页面附代码(web前端期末大作业)

    cc 本来想加上JS实现选项卡功能的,奈何本人水平实在有限,用JavaScript用到一半就放弃了,真的不会使用啊!!!给你们看看效果吧. 整体布局 个人认为我这个整体布局还是比较科学的,把这个界面分 ...

  8. 快速仿写京东、天猫下拉刷新

    好久没输出文章了,最近研发任务比较忙,果然计划赶不上变化,之前还希望能一周一输出,好吧,我还是承认自己比较懒好了,=.=## 这次跟大家分享一下下拉刷新,之前我们的公司的项目一直都是使用SwipeRe ...

  9. HTML+CSS仿写京东页面附代码(web前端大作业)

    学习前端时间不多,看了两晚上就开始赶实训作业,大家看看就行 先来看看效果: <!DOCTYPE html> <html lang="en"> <hea ...

最新文章

  1. leetcode-215 数组中的第K个最大元素
  2. 练习使用 Linux 的 grep 命令
  3. asp程序错误详细说明例表
  4. xml-rpc 以及 xml-rpc 在asp.net中的实现
  5. Linux x8664汇编,Linux Udis86 反汇编引擎使用
  6. 使用 Javascript操作DOM的一些方法
  7. -ms-flexbox_Flexbox的工作原理-用大尺寸,彩色动画gif进行解释
  8. KVM源代码阅读--内核版本3.17.4
  9. 38. Linux 备份
  10. matlab里的timer,关于Matlab中用timer来实现多线程机制
  11. MySQL索引优化案例学习总结
  12. 天空盒 Skybox
  13. 商场客流量统计摄像头设备
  14. python计算圆锥体积和表面积_圆柱与圆锥体积与表面积计算
  15. TideSec远控免杀学习二(Evasion模块+veil)
  16. python修改ppt的字体和颜色_ppt-页面大小和颜色更改
  17. 普乐蛙4d5d动感影院|VR太空旅行设备|VR带你遨游太空
  18. 算法题|-灯泡开关问题
  19. 如何才能通过一线互联网公司面试?下载量瞬秒百万
  20. 面相,暴露你的生活质量

热门文章

  1. 用java建立多项式logit模型_多项式混合logit模型mlogit r-package
  2. 百度大脑人脸识别深度验证与思考(五)之人种识别
  3. 机器视觉中的工业光源选择技巧
  4. 【研一小白论文精读】《MoCo》
  5. RASNET EDCF
  6. mmall数据库学习笔记
  7. c语言程序中的算数表达式X Y-Z,C语言程序设计-中国大学mooc-题库零氪
  8. dedecms 只需要几个步骤快速实现独立的手机版功能
  9. 电商秒杀网站之API文档
  10. 功能强大,界面简洁,这三款实用软件,每一款都独一无二