实现原理:
两个盒子,通过映射来同步进行移动,达到移动放大镜的效果。

注意点:
遮罩层的面积/盒子的面积 == 大图展示盒子的面积/大图图片的面积
一定要是等比例的才行,严格控制样式

效果图:

贴上代码

控制遮罩层以及右边大图的显示隐藏 这个自己用事件移入跟移除做一下display: none或者v-if控制;过于简单这里就不做这个了。

<template><div class="fdj" @mousemove="mousemove"><div class="small" ref="small"><img src="../assets/copy李茜.jpg" alt="" /><div class="mask" :style="{'left':left + 'px','top':top + 'px',}" ref="mask"></div></div><div class="big" ref="big"><img ref="bigimg" src="../assets/copy李茜.jpg" alt=""  :style="{'left':imgX + 'px','top':imgY + 'px',}"/></div></div>
</template><script>
export default {data () {return {top:'',left:'',imgX:'',imgY:'',}},methods: {mousemove(e){let small = this.$refs.smalllet mask = this.$refs.masklet big = this.$refs.biglet bigimg = this.$refs.bigimg// 第一步获取鼠标中点位置let maskX =  e.pageX - small.offsetLeftlet maskY = e.pageY - small.offsetTop// 让鼠标出现在mask的中心点maskX = maskX - mask.offsetWidth / 2;maskY = maskY - mask.offsetHeight / 2;// 把mask限制到box中maskX = maskX < 0 ? 0 : maskX;maskY = maskY < 0 ? 0 : maskY;maskX = maskX > small.offsetWidth - mask.offsetWidth ? small.offsetWidth - mask.offsetWidth : maskX;maskY = maskY > small.offsetHeight - mask.offsetHeight ? small.offsetHeight - mask.offsetHeight : maskY;//遮挡层的移动距离/大图的移动距离=遮挡层的最大移动距离/大图的最大移动距离//大图的移动距离=遮挡层的移动距离*大图的最大移动距离/遮挡层的最大移动距离// 注意:// 遮罩层的面积/盒子的面积 == 大图展示盒子的面积/大图图片的面积// 一定要是等比例的才行严格控制样式let bigImgX = maskX * (big.offsetWidth - bigimg.offsetWidth) / (small.offsetWidth - mask.offsetWidth);let bigImgY = maskY * (big.offsetHeight - bigimg.offsetHeight) / (small.offsetHeight - mask.offsetHeight)this.left = maskXthis.top = maskYthis.imgX = bigImgXthis.imgY = bigImgY//  控制遮罩层以及右边大图的显示隐藏 这个自己用事件移入跟移除做一下display: none或者v-if控制;过于简单这里就不做这个了。}}
}
</script><style>
/* 新建的项目  去一下默认样式 */body,html{ padding: 0;margin: 0;}
</style>
<style leng="less" scoped>
.small {width: 400px;height: 400px;position: relative;}
.small img {width: 100%;height: 100%;
}
.big {width: 400px;height: 400px;position: absolute;top: 0;left: 410px;overflow: hidden;}.big img {position: absolute;width: 800px;height: 800px;left:0;top:0;}.mask {width: 200px;height: 200px;background: rgba(255, 255, 0, 0.4);position: absolute;top: 0px;left: 0px;cursor: move;}
</style>

vue实现淘宝京东商品放大镜效果相关推荐

  1. vue仿淘宝京东商品多条件筛选(vue实现)

    <template><div id="warp">你选择的是:<mark v-for="(item,index) in arr"& ...

  2. Android仿淘宝京东商品规格参数颜色筛选

    Android 选择商品属性sku 最近项目中使用SKU属性查询,类似淘宝京东商品的选择,在网上查询了弄了几个源码看看,发现还是实现不了多属性选择问题,再原基础上改动相当费事,所以想干脆自己处理这个问 ...

  3. 仿淘宝京东商品规格属性选择的最简单实现

    仿淘宝京东商品规格属性选择的最简单实现 商城里面的规格选择,网上大部分是自定义控件实现的,显得很是麻烦,而我的实现方式是大家最常用的控件RecyclerView,特点是性能好,简单.废话不多说,先看实 ...

  4. 淘宝京东商品长链接缩短为腾讯,新浪短链接的接口有哪些?

    分享淘宝京东商品宝贝的都知道,商品的详情页链接太长在微博,微信发布的话太占用字符空间了,而且过长的链接很不正规用户难以接受.所以我们需要将这些长链接转换缩短成一个非常短的短链接再发布.所有短链接服务商 ...

  5. VUE类似淘宝选择商品多规格(库存判断)

    1.组件效果展示 也可访问链接查看网页效果... 后面又用uni-app写过一次,比这次稍微清晰一些 uni-app类似淘宝选择商品多规格(库存判断) 瞎封装组件系列: VUE简单提示框 VUE树形图 ...

  6. Android 仿淘宝京东商品详情页阻力翻页效果

    原文链接:http://code.taobao.org/p/android-example/diff/46/trunk/%E5%95%86%E5%9F%8E%E8%AF%A6%E6%83%85/src ...

  7. Vue实现电商网站商品放大镜效果

    效果图 各部分代码 HTML部分 <div id="goodsPics"><!--当前查看商品图区域--><div id="imgPre&q ...

  8. Android 仿淘宝京东商品详情视频+图片与图片第一帧获取

    近日项目有个新需求就是把原本的商品详情只有图片展示,改为视频+图片方式展示. 此博客只提供记录,与思路具体根据自己需求实现.首先想到的是Google搜索下别人的实现方式来参考实现发现不怎么适合项目需求 ...

  9. 用JS实现PC端淘宝查看商品图片放大镜效果

    实现放大镜功能 一.前言 二.图示淘宝商品放大镜效果 三.需要掌握的知识点 四.放大镜实现原理 五.放大镜代码及注释 六.放大镜最终成果 七.放大镜源码 八.总结 一.前言 今天翻阅文件夹看到了之前写 ...

最新文章

  1. Java开发环境的搭建以及使用eclipse从头一步步创建java项目
  2. AppManager
  3. PureMVC(AS3)剖析:吐槽
  4. python测试开发工程师前景_测试开发工程师,薪水20k值吗?
  5. ios抓包软件Thor限时折扣6元中,手慢无
  6. linux把终端嵌入桌面,在你的Ubuntu Linux桌面上嵌入终端窗口
  7. linux 检测screen,linux screen编程,自动监控并向screen发送命令
  8. 深入剖析线程同步工具CountDownLatch原理
  9. 论文整理:Probabilistic Logic Neural Networks for Reasoning
  10. 怎么把好几行弄成一行_怎么把excel表格里多行变成一行数据|excel表格中让多行内容变成为一行...
  11. 树莓派GPIO控制/使用的教程
  12. Android应用开发性能优化完全分析,移动应用开发课程报告
  13. 《机器学习实战》——朴素贝叶斯
  14. 苏缇雅专注女士内衣 欲做中国的“维多利亚的秘密”
  15. 一个屌丝程序猿的人生(一百零五)
  16. c++游戏别踩白块课程设计
  17. 纯文本还是HTML邮件
  18. 一文带你全面解析 Postman 工具的使用
  19. 华为nova5pro可以用鸿蒙,华为nova5Pro怎么样_华为nova5Pro值得入手吗
  20. 基于python的种子搜索网站(二)开发过程

热门文章

  1. AD查看任意角度PCB的3D效果图
  2. 我们需要一颗强劲的心脏--小谈机房建设工程
  3. 从无到有跑通KAPAO
  4. 烽火HG680-KB-KA通刷-免拆-卡刷固件(可救砖)
  5. JavaScript 允许自定义对象,运动兑换商品的小程序,微信步数兑换积分,会员营销软件,让顾客更加愿意来店消费,提升店铺的会员粘性及活越性
  6. 【源代码】 用Eclipse编写的Java小程序——自动售卖机
  7. 如何修改光圈,焦距等摄像头相关信息
  8. Mac OS X 配置 Beyond Compare
  9. 智能数字温度计方案开发
  10. Fiber 内部:React 中新的协调算法的深入概述