iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js仿京东放大镜
  • 466
分享到

js仿京东放大镜

2024-04-02 19:04:59 466人浏览 薄情痞子
摘要

本文实例为大家分享了js仿京东放大镜的具体代码,供大家参考,具体内容如下 1.实现效果: 移动遮挡框,右边的图片响应的放大并移动。 2.实现思路: (1)鼠标移动到图片上,遮罩层和

本文实例为大家分享了js仿京东放大镜的具体代码,供大家参考,具体内容如下

1.实现效果:

移动遮挡框,右边的图片响应的放大并移动。

2.实现思路:

(1)鼠标移动到图片上,遮罩层和右边盒子显示。鼠标移出,遮罩层和右边盒子消失。

(2)黄色遮罩层跟随鼠标移动

(3)右边图片跟随左边图片移动

注意:右边图片的移动方向与左边遮罩层的移动方向相反,因此,右边图片移动距离是负的。

右边大盒子:多余的图片不显示,用overflow:hidden.来隐藏

3.代码展示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta Http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>仿京东放大镜案例</title>
    <style>
        body {
            padding: 0;
            margin: 0;
        }
        .preview {
            position: relative;
            float: left;
            width: 400px;
            height: 300px;
        }
        .small {
            width: 400px;
            height: 300px;
        }
        .mask {
            display: none;
            position: absolute;
            top: 0px;
            left: 0px;
            width: 200px;
            height: 200px;
            background-color: rgba(199, 211, 91, 0.3);
            cursor: move;
        }
        .big {
            display: none;
            position: absolute;
            top:0px;
            left:410px;
            background-color: thistle;
            width: 600px;
            height: 500px;
            z-index: 999;
            overflow: hidden;
            
        }
        .bigImg {
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
</head>
<body>
    <div class = "preview">
        <img class = "small" src="bg2.jpg" alt="">
        <div class="mask"></div>
        <div class="big"><img class = "bigImg" src="bg2.jpg" alt=""></div>
    </div>
    
    <script>
        var mask = document.querySelector('.mask');
        
        var preview = document.querySelector('.preview');
        var big = document.querySelector('.big');
        preview.addEventListener('mousemove', function(e){
            var x = e.pageX - this.offsetLeft;
            var y = e.pageY - this.offsetTop;
            // 找到鼠标在盒子内的坐标。
            var new_x = x-mask.offsetWidth/2;
            var new_y = y - mask.offsetHeight/2;
            // 限制黄色盒子的坐标。不能移动到盒子外。最大运动坐标:盒子宽(高)-遮罩层宽(高);最小运动坐标0
            if(new_x > this.offsetWidth - mask.offsetWidth) {
                new_x = this.offsetWidth - mask.offsetWidth;
            } else if(new_x < 0) {
                new_x = 0;
            }
            if(new_y > this.offsetHeight - mask.offsetHeight) {
                new_y = this.offsetHeight - mask.offsetHeight;
            } else if(new_y < 0) {
                new_y = 0;
            }
            mask.style.left =  new_x+ 'px';
            mask.style.top =  new_y + 'px';
            // 大盒子的运动像素,应该按照小盒子运动的一定比例来运动。
            // 公式:遮挡层移动距离 / 最大移动距离 = 大图片移动距离 / 最大移动距离
            // 所以:大图片移动距离 = 遮挡层移动距离 * 大图片最大移动距离 / 遮挡层的最大移动距离。
            var bigImg = document.querySelector('.bigImg');
            var big = document.querySelector('.big');
            // 遮罩层最大移动距离x
            var maskMax_x = this.offsetWidth - mask.offsetWidth;
            // 大图片最大移动距离x
            var bigMax_x = bigImg.offsetWidth - big.offsetWidth;
            // 大图片的移动距离x
            var bigX = new_x * bigMax_x / maskMax_x;
            // 遮罩层最大移动距离y
            var maskMax_y = this.offsetHeight - mask.offsetHeight;
            // 大图片最大移动距离y
            var bigMax_y = bigImg.offsetHeight - big.offsetHeight;
            // 大图片的移动距离y
            var bigY = new_y * bigMax_y / maskMax_y;
            bigImg.style.left =  -bigX+ 'px';
            bigImg.style.top =  -bigY + 'px';
 
        });
        preview.addEventListener('mouseover', function() {
            big.style.display = 'block';
            mask.style.display = 'block';
        });
        preview.addEventListener('mouseout', function() {
            big.style.display = 'none';
            mask.style.display = 'none';
        });
 
    </script>
</body>
</html>

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

--结束END--

本文标题: js仿京东放大镜

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • js仿京东放大镜
    本文实例为大家分享了js仿京东放大镜的具体代码,供大家参考,具体内容如下 1.实现效果: 移动遮挡框,右边的图片响应的放大并移动。 2.实现思路: (1)鼠标移动到图片上,遮罩层和...
    99+
    2024-04-02
  • js如何实现仿京东放大镜
    这篇文章主要介绍“js如何实现仿京东放大镜”,在日常操作中,相信很多人在js如何实现仿京东放大镜问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js如何实现仿京东放大镜”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-02
  • JavaScript仿京东放大镜特效
    本文实例为大家分享了JavaScript仿京东放大镜的具体代码,供大家参考,具体内容如下 功能需求: 1、分为三个模块 2、鼠标经过小图片盒子,黄色的遮挡层和大图片盒子显示,离开隐藏...
    99+
    2024-04-02
  • JavaScript仿京东放大镜效果
    本文实例为大家分享了JavaScript实现京东放大镜效果的具体代码,供大家参考,具体内容如下 案例分析 整个案例可以分为三个功能模块 鼠标经过小图片盒子, 黄色的...
    99+
    2024-04-02
  • 怎么用JavaScript仿京东放大镜效果
    本篇内容介绍了“怎么用JavaScript仿京东放大镜效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!具体内容如下案例分析整个案例可以分为...
    99+
    2023-06-25
  • JS实现京东放大镜效果
    本文实例为大家分享了JS实现京东放大镜效果的具体代码,供大家参考,具体内容如下 需要实现的效果图如下: ①布局:布局采用一个大盒子里面首先分为上下两个部分,然后下部分又分为左右两个...
    99+
    2024-04-02
  • 利用JavaScript实现仿京东放大镜效果
    功能实现 1、鼠标经过小图片盒子,黄色的遮挡层和大图片显示,离开时就隐藏2个盒子功能 2、黄色遮挡层跟着鼠标走 把鼠标的坐标给盒子,不断地进行赋值操作 把鼠标地坐标给遮挡层不合适,因...
    99+
    2024-04-02
  • Vue模仿实现京东商品大图放大镜效果
    效果如下: 首先,有一个放大镜的DOM结构 <template> <div class="spec-preview"> <!-- 展示的原...
    99+
    2022-12-27
    Vue放大镜效果 Vue模仿京东放大镜
  • 如何利用JavaScript实现仿京东放大镜效果
    这篇文章主要介绍如何利用JavaScript实现仿京东放大镜效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!功能实现鼠标经过小图片盒子,黄色的遮挡层和大图片显示,离开时就隐藏2个盒子功能黄色遮挡层跟着鼠标走把鼠标的...
    99+
    2023-06-29
  • Javascript如何模拟京东放大镜效果
    这篇文章将为大家详细讲解有关Javascript如何模拟京东放大镜效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:<html> <head&...
    99+
    2024-04-02
  • vue3封装京东商品详情页放大镜效果组件
    本文实例为大家分享了vue3封装类似京东商品详情页放大镜效果组件的具体代码,供大家参考,具体内容如下 首先先完成基本布局 完成图片的切换效果,通过 mouseenter 事件切...
    99+
    2024-04-02
  • js模拟实现京东详情页图片放大效果
    本文实例为大家分享了js实现京东详情页图片放大的具体代码,供大家参考,具体内容如下 效果: html: <div class="preview_img"> <...
    99+
    2024-04-02
  • JavaScript仿淘宝放大镜效果
    本文实例为大家分享了JavaScript实现淘宝放大镜效果的具体代码,供大家参考,具体内容如下 html代码 <div class="thumbnail"> ...
    99+
    2024-04-02
  • js如何模仿京东快报向上滚动效果
    这篇文章给大家分享的是有关js如何模仿京东快报向上滚动效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实例如下:<!doctype html> <h...
    99+
    2024-04-02
  • JavaScript仿京东搜索框实例
    马上就到双十一了,我们在京东淘宝购物,疯狂剁手的同时,有没有注意到京东的搜索框呢,除了能进行搜索内容以外,它的样式又是如何实现的呢? 下面就分析一下如何实现仿京东的搜索框。 核心分析...
    99+
    2024-04-02
  • 如何使用js模拟实现京东详情页图片放大效果
    这篇文章给大家分享的是有关如何使用js模拟实现京东详情页图片放大效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下效果:html:<div class="preview_im...
    99+
    2023-06-25
  • JS版图片放大镜效果
    本文实例为大家分享了JS实现图片放大镜效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head lang=...
    99+
    2024-04-02
  • JavaScript如何实现仿淘宝放大镜效果
    这篇文章主要为大家展示了“JavaScript如何实现仿淘宝放大镜效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何实现仿淘宝放大镜效果”这篇文章吧。html代码&nbs...
    99+
    2023-06-25
  • Android仿京东、天猫下拉刷新效果
    说到下拉刷新,相信大家都不陌生,现在基本上每个项目都会用到。我们公司的项目一直都是使用SwipeRefreshLayout,官方的Material Design风格,好用少Bug。现在下拉刷新大概有下面几种实现方式:一种是直接包在ListV...
    99+
    2023-05-31
    android 下拉刷新 roi
  • js实现简单的放大镜效果
    本文实例为大家分享了js实现简单放大镜效果的具体代码,供大家参考,具体内容如下 效果 效果,鼠标在原图片移动,黄色小盒子跟随鼠标移动,黄色小盒子盖住的部分,在显示区显示 效果图如下:...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作