js realizes the magnifying glass function of shopping website

js realizes the magnifying glass function of shopping website

This article shares the specific code of js to realize the magnifying glass function of shopping website for your reference. The specific content is as follows

First look at the effect diagram:

First is the layout, a small frame on the left, including a mouse movement frame, and a magnification frame on the right.

<div class="box">
        <div class="small">
            <img src="small3.jpg" alt="">
            <div class="move"></div>
        </div>
        <div class="big">
            <img src="big3.jpg" alt="">
        </div>
</div>

Write some CSS

.small{
    position: relative;
    float: left;
    width: 450px;
    height: 450px;
    border:1px solid #000;
}
.small .move{
    position: absolute;
    top:0;
    width: 300px;
    height: 300px;
    background-color: rgba(0,0,0,0.4);
    cursor:move;
    display: none;
}
.big{
    position: relative;
    float: left;
    width: 540px;
    height: 540px;
    margin-left: 20px;
    overflow: hidden;
    border:1px solid #000;
    display: none;
}
.bigimg{
    position: absolute;
    top:0;
    left: 0;
}

js part:

var box=document.getElementsByClassName('box')[0],small=box.getElementsByClassName('small')[0],move=small.getElementsByClassName('move')[0],smallImg=small.getElementsByTagName('img')[0],big=box.getElementsByClassName('big')[0],bigImg=big.getElementsByTagName('img')[0];
    //First, get all the required elements small.onmouseover=function(){
        move.style.display='block';
        big.style.display="block";
    };
    small.onmouseout=function(){
        move.style.display='none';
        big.style.display="none";
    };
    small.onmousemove=function(e){
        e=e||window.event; //Compatibility considerations var x=e.clientX-smallImg.getBoundingClientRect().left-move.offsetWidth/2;
        var y=e.clientY-smallImg.getBoundingClientRect().top-move.offsetHeight/2;
        if(x<0){
            x=0;
        }
        if(x>smallImg.offsetWidth-move.offsetWidth){
            x=smallImg.offsetWidth-move.offsetWidth;
        }
        if(y<0){
            y=0;
        }
        if(y>smallImg.offsetHeight-move.offsetHeight){
            y=smallImg.offsetHeight-move.offsetHeight;
        }
        move.style.left=x+"px";
        move.style.top=y+"px";
        //Code to implement the left move block following the mouse movement var scale = bigImg.offsetWidth/smallImg.offsetWidth;
        //Enlarge according to the proportion bigImg.style.left='-'+x*scale+'px';
        //Because the image needs to be moved left and up, a negative sign must be added bigImg.style.top='-'+y*scale+'px';
    }

The magnifying glass effect is achieved!

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • JS version of the picture magnifying glass effect
  • js to achieve a simple magnifying glass effect
  • js to achieve simple magnifying glass effects
  • js magnifying glass magnifying picture effect
  • A simple example of using js to achieve the effect of a magnifying glass
  • JavaScript image magnifying glass effect code [the code is relatively simple]
  • A magical Javascript image magnifier
  • JavaScript image magnifier (drag and drop, zoom effect)
  • Magnifying glass effect written in native js
  • JavaScript to achieve a simple magnifying glass effect

<<:  Analysis of MySQL multi-table joint query operation examples

>>:  How to configure Hexo and GitHub to bind a custom domain name under Windows 10

Recommend

Docker installation Nginx tutorial implementation illustration

Let’s install Nginx and try it out. Please note t...

Tomcat uses Log4j to output catalina.out log

Tomcat's default log uses java.util.logging, ...

Let's learn about MySQL database

Table of contents 1. What is a database? 2. Class...

react-beautiful-dnd implements component drag and drop function

Table of contents 1. Installation 2.APi 3. react-...

MySQL scheduled task example tutorial

Preface Since MySQL 5.1.6, a very unique feature ...

Detailed tutorial on installing PHP and Nginx on Centos7

As the application of centos on the server side b...

Teach you about react routing in five minutes

Table of contents What is Routing Basic use of pu...

A brief introduction to the command line tool mycli for operating MySQL database

GitHub has all kinds of magic tools. Today I foun...

Nginx access log and error log parameter description

illustrate: There are two main types of nginx log...

Several ways to solve CSS style conflicts (summary)

1. Refine the selector By using combinators, the ...

Introduction to Semantic HTML Tags

In the past few years, DIV+CSS was very popular in...

CSS solves the misalignment problem of inline-block

No more nonsense, post code HTML part <div cla...

CentOS 7 method to modify the gateway and configure the IP example

When installing the centos7 version, choose to co...