您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

vue实现简单放大镜效果

51自学网 2022-05-02 21:34:11
  javascript

本文实例为大家分享了vue实现简单放大镜效果的具体代码,供大家参考,具体内容如下

<template>    <div>        <div class="imgMerror">            <div class="smallDiv" @mousemove="move($event)" @mouseenter="enter()" @mouseleave="leave()">                <img src="/image/2017/07/26/0d6069de4916471b92da66b0da8f0ec9.jpg" alt="">                <div class="imgMask"></div>            </div>            <div class="bigDiv">                <img src="/image/2017/07/26/0d6069de4916471b92da66b0da8f0ec9.jpg" alt="" class="bigImg">            </div>        </div>    </div></template><script>export default {    data() {        return {                    }    },    methods: {        enter(){            let imgMaskDom = document.querySelector('.imgMask');            let bigDivDom = document.querySelector('.bigDiv');            imgMaskDom.style.display = 'block';            bigDivDom.style.display = 'block';        },        leave(){            let imgMaskDom = document.querySelector('.imgMask');            let bigDivDom = document.querySelector('.bigDiv');            imgMaskDom.style.display = 'none';            bigDivDom.style.display = 'none';        },        move(e){            let smallDivDom = document.querySelector('.smallDiv');            let imgMaskDom = document.querySelector('.imgMask');            let bigDivDom = document.querySelector('.bigDiv');            let bigImgkDom = document.querySelector('.bigImg');             let ev = e || window.event;            let left = ev.clientX - smallDivDom.offsetLeft - imgMaskDom.offsetWidth/2;            let top = ev.clientY - smallDivDom.offsetTop - imgMaskDom.offsetHeight/2;            if(left < 0) left=0;            if(left > smallDivDom.offsetWidth - imgMaskDom.offsetWidth){                left = smallDivDom.offsetWidth - imgMaskDom.offsetWidth;            }            if(top < 0) top=0;            if(top > smallDivDom.offsetHeight - imgMaskDom.offsetHeight){                top = smallDivDom.offsetHeight - imgMaskDom.offsetHeight;            }            imgMaskDom.style.left = left + 'px';            imgMaskDom.style.top = top + 'px';             //移动比例            let precentX = left / (smallDivDom.offsetWidth-imgMaskDom.offsetWidth);            let precentY = top / (smallDivDom.offsetHeight-imgMaskDom.offsetHeight);            bigImgkDom.style.left = precentX * (bigDivDom.offsetWidth - bigImgkDom.offsetWidth) + 'px';            bigImgkDom.style.top = precentY * (bigDivDom.offsetHeight - bigImgkDom.offsetHeight) + 'px';         }    },}</script> <style lang="scss">    *{        margin: 0;        padding: 0;    }    .imgMerror{        position: relative;        padding: 50px;        .smallDiv{            border: 1px solid #ccc;            width: 360px;            height: 360px;            position: relative;            left: 0;            top: 0;            img{                width: 100%;                height: 100%;            }            .imgMask{                width: 240px;                height: 240px;                background: #00ff98;                opacity: 0.5;                cursor: move;                position: absolute;                left:0;                top: 0;                display: none;            }        }        .bigDiv{            border: 1px solid #ccc;            width: 540px;            height: 540px;            position: relative;            left: 380px;            top: -360px;            overflow: hidden;            display: none;            img{                width: 600px;                height: 600px;                position: absolute;                left: 0;                top: 0;            }        }    }</style>

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持wanshiok.com。


postman数据加解密实现APP登入接口模拟请求
VSCode开发UNI-APP 配置教程及插件
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1