js实现鼠标移入图片放大效果

 更新时间:2022年07月13日 08:27:40   作者:checkMa  
这篇文章主要为大家详细介绍了js实现鼠标移入图片放大效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用原生js编写一个鼠标移入图片放大效果,供大家参考,具体内容如下

目标

给图片添加鼠标移动放大方法效果,移到哪里放大哪里

先看看效果是不是你想要的,再看代码

移入前

移入后

html

<!-- css看着写 -->
    <div class="Box" style="width:200px;height:200px;border:1px solid #f00;position: relative;top:0;left:0;overflow: hidden;">
        <Img  src="../image/lingtai.jpg" alt="" style="width:200px;height:200px;position:absolute;left:0;top:0;">
</div>

javascript

// 图片放大镜
// @params Class 目标class string
// @params Scale 放大倍数 number
function ScaleImg(Class, Scale){
        
        this.Box = document.querySelector(Class);
    
        this.Img = this.Box.querySelector('img');
        
        this.scale = Scale || 3 ;
    
        // 盒子中心点
        this.BoxX = this.Box.offsetWidth / 2; 
        this.BoxY = this.Box.offsetHeight / 2; 
    
        // 获取盒子初始定位
        this.Left = parseFloat( this.Box.offsetLeft ); 
        this.Top = parseFloat(this.Box.offsetTop ); 
    
        this.Init();
    
    }
    
    ScaleImg.prototype = {
    
        // 鼠标移入
        Mouseover: function(e){
            
            var e = e || window.event;
            
            // 放大图片
            this.Img.style.width = this.Img.offsetWidth * this.scale + "px"; 
            this.Img.style.height = this.Img.offsetHeight * this.scale + "px";
    
            // 设置放大后的图片定位
            this.Img.style.left = (this.Box.offsetWidth - this.Img.offsetWidth) / 2 + "px"; 
            this.Img.style.top = (this.Box.offsetHeight - this.Img.offsetHeight) / 2 + "px"; 
            
            // 获取图片放大后定位值
            this.ImgLeft = parseFloat(this.Img.style.left); 
            this.ImgTop = parseFloat(this.Img.style.top); 
    
            this.Box.left = (this.Box.offsetWidth - this.Img.offsetWidth) / 2;
            this.Box.top = (this.Box.offsetHeight - this.Img.offsetHeight) / 2;
            
            // 阻止默认事件
            return ;
    
        },
    
        // 鼠标移除
        Mouseout: function(e){
    
            var e = e || window.event;
            
            // 重置css
            this.Img.style.width = this.Img.offsetWidth / this.scale + "px"; 
            this.Img.style.height =this.Img.offsetHeight / this.scale + "px"; 
    
            this.Img.style.left = Math.floor((this.Box.offsetWidth - this.Img.offsetWidth) / 2) + "px"; 
            this.Img.style.top = Math.floor((this.Box.offsetHeight - this.Img.offsetHeight) / 2) + "px";
    
            return  ;
        },
    
        // 鼠标移动
        Mousemove: function(e){
    
            var e = e || window.event;
    
            // 图片鼠标位置
            var ImgXY = {"x": this.Left + this.BoxX, "y": this.Top + this.BoxY};
    
            // 获取偏移量 
            var left = (ImgXY.x - e.clientX ) / this.BoxX * this.ImgLeft ,
                top = (ImgXY.y - e.clientY) / this.BoxY * this.ImgTop ;
            
            this.Img.style.left = Math.floor(this.Box.left - left) + "px";
            this.Img.style.top = Math.floor(this.Box.top - top) + "px";
    
            return ;
        },
    
        // 初始化
        Init: function(e){
    
            var that = this;
    
            this.Box.onmouseover = function(e){
                that.Mouseover(e);
            }
            this.Box.onmouseout = function(e){
                that.Mouseout(e);
            }
            this.Box.onmousemove = function(e){
                that.Mousemove(e);
            }
    
        }
    }
    
    // 实例一个对象
    new ScaleImg('.Box');    

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

相关文章

  • 一个的简易文本编辑器源码

    一个的简易文本编辑器源码

    一个的简易文本编辑器源码...
    2007-03-03
  • js 判断各种数据类型的简单方法(推荐)

    js 判断各种数据类型的简单方法(推荐)

    下面小编就为大家带来一篇js 判断各种数据类型的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 用javascript为页面添加天气显示实现思路及代码

    用javascript为页面添加天气显示实现思路及代码

    为页面添加天气显示的方法有很多,在本文为大家介绍下使用js来轻松实现,具体的代码如下,感兴趣的朋友不要错过
    2013-12-12
  • 代码详解JS操作剪贴板

    代码详解JS操作剪贴板

    本篇文章给大家介绍了如何用JS操作剪贴板的功能,并把实例代码做了分享,需要的朋友学习下吧。
    2018-02-02
  • js document.getElementsByClassName的使用介绍与自定义函数

    js document.getElementsByClassName的使用介绍与自定义函数

    今天在增加一个功能的时候需要用到getElementsByClassName(),getElementsByClassName但是HTML5 新增的DOM API。IE8以下不支持,那么就需要下面的方法解决了
    2016-11-11
  • 动态的9*9乘法表效果的实现代码

    动态的9*9乘法表效果的实现代码

    下面小编就为大家带来一篇动态的9*9乘法表效果的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05
  • 微信小程序获取用户信息并保存登录状态详解

    微信小程序获取用户信息并保存登录状态详解

    这篇文章主要介绍了微信小程序获取用户信息并保存登录状态,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • TypeScript常见类型及应用示例讲解

    TypeScript常见类型及应用示例讲解

    这篇文章主要介绍了TypeScript常见类型及应用示例讲解,本章我们会讲解 JavaScript 中最常见的一些类型,以及对应的描述方式,有需要的朋友可以借鉴参考下
    2022-02-02
  • javascript 拖放效果实现代码

    javascript 拖放效果实现代码

    JavaScript擅长于修改页面中的DOM元素,但是我们使用JavaScript通常只是实现一些简单功能,例如实现图片的翻转,网页中的标签页,等等。这篇文章将向你展示如何在页面中,对创建的元素实现拖放。
    2010-01-01
  • prefers-color-scheme设置检测系统主题色

    prefers-color-scheme设置检测系统主题色

    这篇文章主要为大家介绍了prefers-color-scheme设置检测系统主题色实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论