返回顶部
首页 > 资讯 > 精选 >怎么用vue实现放大镜效果
  • 591
分享到

怎么用vue实现放大镜效果

2023-07-04 14:07:32 591人浏览 独家记忆
摘要

这篇文章主要介绍“怎么用Vue实现放大镜效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用vue实现放大镜效果”文章能帮助大家解决问题。组件使用less,请确保已安装loader本组件为放大镜

这篇文章主要介绍“怎么用Vue实现放大镜效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用vue实现放大镜效果”文章能帮助大家解决问题。

组件使用less,请确保已安装loader

本组件为放大镜组件,传参列表为:

•width: 必传,设置放大镜的宽高(正方形),放大区域等同,放大倍数为2倍

•picList:必传,传入图片列表

使用示例:

script:

import mirror from 'xx/mirror' export default {  components:{   mirror  },  data(){   return {    width:300,    picList:[      xxxxxx,      xxxxxx    ],   }  } }

html:

<mirror :width="width" :picList="picList" />

详细代码:

HTML:

<template> <div class="mirror">   <div class="wrap" : >    <div ref="truth" : @mousemove="move" @mouseenter="showMagnify" @mouseleave="hideMagnify">    <div class="mask" ref="mask" v-show = "showMask" :></div>    <img :src="picList[picIndex]" draggable="false"/>    </div>    <div class="virtual" ref="virtual" v-if = "isshowVirtual" : >      <div class="big" ref = "bigPic" : >      </div>    </div>   </div>   <ul class="picList" :>     <li v-for = "(item,index) in picList" :class="{now:index==picIndex}" :data-index="index" :key ="item" @mouseenter="changeIndex">      <img :src ="item" />     </li>   </ul> </div></template>

js:

 export default {   props:['width','picList'],//宽度是用来给放大镜的   data(){    return {     picIndex:0,     isShowVirtual:false,     showMask:false,     maskPosition:{},     percent:{},    }   },   methods:{    computedOffset(obj,prop){ //计算元素到body的绝对位置    if(obj==document.body || obj.offsetParent == document.body){     return parseInt(obj[prop])    }    return parseInt(obj[prop])+this.computedOffset(obj.offsetParent,prop)  },    changeIndex(e){     this.picIndex = e.target.dataset.index    },    showMagnify(e){     this.showMask=true;     this.isShowVirtual = true;    },    hideMagnify(){     this.isShowVirtual=false;     this.showMask=false    },    computePosition(e){      let x = e.pageX,y = e.pageY;      let mask = this.$refs.mask;      let truth = this.$refs.truth;      let virtual = this.$refs.virtual;      let bigPic = this.$refs.bigPic;      x = x-this.computedOffset(truth,'offsetLeft') -mask.offsetWidth/2;      y = y-this.computedOffset(truth,'offsetTop')- mask.offsetHeight/2;     if(x<=0) {       x=0      }else if(x>truth.offsetWidth - mask.offsetWidth){       x = truth.offsetWidth/2      }      if(y<=0){       y=0;      }      else if(y>truth.offsetHeight - mask.offsetHeight){       y = truth.offsetHeight/2      }      this.maskPosition = {       x,y      }      //计算比例      this.percent={       x:-x/(truth.offsetWidth-mask.offsetWidth)*(bigPic.offsetWidth - virtual.offsetWidth)+'px',       y:-y/(truth.offsetHeight-mask.offsetHeight)*(bigPic.offsetHeight - virtual.offsetHeight)+'px'      }    },    move(e){     this.computePosition(e)    }  }  }

CSS:

<style lang="less" scoped>.now{ border-color: cyan !important;} .mirror{  width:100%;  .wrap{   user-select: none;   margin-bottom: 20px;   position: relative;   background-color: #fff;   border:1px solid gray;   box-sizing:border-box;     cursor: pointer;    img{     width:100%;     height:100%;    }    .virtual{     overflow:hidden;     width:100%;     height:100%;     position:absolute;     left:calc(100% + 10px);     top:0;     background-repeat:no-repeat    }    .mask{     position: absolute;     background-image: url('https://file.lsjlt.com/upload/202307/04/tpkeboqk3vu.png');     background-repeat:repeat;     cursor: move;    }  }  .picList{   width:100%;   display: flex;   justify-content: space-between;   flex-wrap:wrap;   li{    width:50px;    height:50px;    margin:5px;    border:1px solid transparent;    box-sizing: border-box;    img{     width:100%;     height:100%    }   }  }  .picList:after{   content:"";   flex:auto;  } }</style>

为什么要使用Vue

Vue是一款友好的、多用途且高性能的javascript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。

关于“怎么用vue实现放大镜效果”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 怎么用vue实现放大镜效果

本文链接: https://lsjlt.com/news/345772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用vue实现放大镜效果
    这篇文章主要介绍“怎么用vue实现放大镜效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用vue实现放大镜效果”文章能帮助大家解决问题。组件使用less,请确保已安装loader本组件为放大镜...
    99+
    2023-07-04
  • vue如何实现放大镜效果
    这篇文章主要为大家展示了“vue如何实现放大镜效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现放大镜效果”这篇文章吧。组件使用less,请确保已...
    99+
    2024-04-02
  • vue实现简单放大镜效果
    本文实例为大家分享了vue实现简单放大镜效果的具体代码,供大家参考,具体内容如下 <template> <div> <div...
    99+
    2024-04-02
  • Vue实现商品放大镜效果
    本文实例为大家分享了Vue实现商品放大镜效果的具体代码,供大家参考,具体内容如下 一、前言 在这个鼎盛的电商时代各种直播带货或者自主逛宝购物,我们对商品的认知和了解进一步查看详情,发...
    99+
    2024-04-02
  • 怎么用javascript实现放大镜效果
    今天小编给大家分享一下怎么用javascript实现放大镜效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。先来看一下效果:...
    99+
    2023-07-02
  • JavaScript怎么实现放大镜效果
    这篇文章主要介绍了JavaScript怎么实现放大镜效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。这次实现的效果如下:这次的案例稍微有一点难度,在css和js上都需要多加...
    99+
    2023-06-25
  • 用javascript实现放大镜效果
    我们经常在一些详情页上可以见到放大镜效果,今天我们也来做一个放大镜样式。 先来看一下效果: 图中的图片选的不是很好,有些糊了,各位可以重新选择图片进行做放大镜案例 这个案例可以分为...
    99+
    2024-04-02
  • vue实现tab切换的放大镜效果
    本文实例为大家分享了vue实现tab切换的放大镜效果的具体代码,供大家参考,具体内容如下 废话不多说先看效果图 1.我这里并没有加遮罩层,如有需要请自行加上 2.图片建议使用4k高...
    99+
    2024-04-02
  • JavaScript实现放大镜效果
    本文实例为大家分享了JavaScript实现放大镜效果的具体代码,供大家参考,具体内容如下 这次实现的效果如下: 这次的案例稍微有一点难度,在css和js上都需要多加思考,话不多说...
    99+
    2024-04-02
  • jquery中怎么实现放大镜效果
    这篇文章给大家介绍jquery中怎么实现放大镜效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。html部分:这里需要使用2长一定比例的图片,在页面中按比例设置2个div中来存放这2长...
    99+
    2024-04-02
  • 原生JS怎么实现放大镜效果
    这篇文章给大家分享的是有关原生JS怎么实现放大镜效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下<html>  <head> &...
    99+
    2024-04-02
  • vue3怎么实现淘宝放大镜效果
    实现效果实现思路我们实现动图的淘宝放大镜的效果需要4步。1.完成小图盒子、遮罩、大图盒子布局2.实现鼠标移动到小图盒子显示遮罩和大图盒子3.实现鼠标移动遮罩在小图盒子移动4.实现遮罩的移动范围不能超出小图盒子,且移动时带动大图图片移动完成小...
    99+
    2023-05-19
    Vue3
  • 怎么使用HTML+CSS+JavaScript实现放大镜效果
    本文小编为大家详细介绍“怎么使用HTML+CSS+JavaScript实现放大镜效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用HTML+CSS+JavaScript实现放大镜效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-07-02
  • Vue模仿实现京东商品大图放大镜效果
    效果如下: 首先,有一个放大镜的DOM结构 <template> <div class="spec-preview"> <!-- 展示的原...
    99+
    2022-12-27
    Vue放大镜效果 Vue模仿京东放大镜
  • Vue3实现图片放大镜效果
    本文实例为大家分享了Vue3实现图片放大镜效果的具体代码,供大家参考,具体内容如下 实现效果 代码 <template> <div class="good...
    99+
    2024-04-02
  • JavaScript实现商品放大镜效果
    本文实例为大家分享了JavaScript实现商品放大镜的具体代码,供大家参考,具体内容如下 HTML+CSS部分: <style> .small{ ...
    99+
    2024-04-02
  • javascript实现简单放大镜效果
    一个大盒子中有一张图片,鼠标放上去会出现一个半透明的遮罩层,鼠标移动,遮罩层跟着移动,盒子旁边还有一个放大的图片,跟着遮罩层移动的位置而改变放大图的位置,鼠标离开大盒子,遮罩层和放大...
    99+
    2024-04-02
  • HTML+CSS+JavaScript实现放大镜效果
    本文实例为大家分享了HTML+CSS+JavaScript实现放大镜效果的具体代码,供大家参考,具体内容如下 效果演示 JS 详解 HTML 和 CSS 部分放在了文章最后的源代码...
    99+
    2024-04-02
  • JS实现京东放大镜效果
    本文实例为大家分享了JS实现京东放大镜效果的具体代码,供大家参考,具体内容如下 需要实现的效果图如下: ①布局:布局采用一个大盒子里面首先分为上下两个部分,然后下部分又分为左右两个...
    99+
    2024-04-02
  • css3中怎么实现图片放大镜特效效果
    这篇文章将为大家详细讲解有关css3中怎么实现图片放大镜特效效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下:<ul class="...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作