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

MySQL 8.0.12 installation and configuration method graphic tutorial (windows10)

This article records the installation graphic tut...

Docker+gitlab+jenkins builds automated deployment from scratch

Table of contents Preface: 1. Install Docker 2. I...

JS uses clip-path to implement dynamic area clipping function

background Today, I was browsing CodePen and saw ...

MySQL Full-text Indexing Guide

Full-text indexing requires special query syntax....

Installation method of MySQL 5.7.18 decompressed version under Win7x64

Related reading: Solve the problem that the servi...

A brief summary of vue keep-alive

1. Function Mainly used to preserve component sta...

Should I use distinct or group by to remove duplicates in MySQL?

Preface About the performance comparison between ...

HTML special character conversion table

character Decimal Character Number Entity Name --...

CSS3 animation to achieve the effect of streamer button

In the process of learning CSS3, I found that man...

How to view and close background running programs in Linux

1. Run the .sh file You can run it directly using...

MySQL data aggregation and grouping

We often need to summarize data without actually ...

Introduction to the use of this in HTML tags

For example: Copy code The code is as follows: <...

Detailed analysis of the usage and application scenarios of slots in Vue

What are slots? We know that in Vue, nothing can ...