js京东图片放大镜效果。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>放大镜</title>

<style>

*{

margin: 0;

padding: 0;

}

/* 去除图片的3px */

img {

vertical-align: top;

}

/* 容器样式 */

.container {

width: 350px;

height: 350px;

margin:100px;

border: 1px solid #ccc;

position: relative;

}

/* 鼠标盒子样式 */

.mouse {

position: relative;

}

/* 大鼠标盒子样式 */

.mouseBigSize {

width: 450px;

height: 450px;

position: absolute;

top: 0;

left: 370px;

border: 1px solid #ccc;

overflow: hidden;

display: none;

}

/* 大鼠标盒子里面图片样式 */

.mouseBigSize img {

position: absolute;

top: 0;

left: 0;

}

/* 遮罩层样式 */

.mask {

width: 100px;

height: 100px;

background: rgba(255, 255, 0, 0.4);

position: absolute;

top: 0;

left: 0;

cursor: move;

display: none;

}

</style>

</head>

<body>

<div class="container">

<!-- 小鼠标 -->

<div class="mouse">

<img src="./images/mouse.jpg" >

<!-- 遮罩层 -->

<div class="mask"></div>

</div>

<!-- 大鼠标 -->

<div class="mouseBigSize">

<img src="./images/mouseBigSize.jpg" >

</div>

</div>

<script>

// 获取DOM元素

let container = document.getElementsByClassName("container")[0]; // 获得最大的盒子

let mouse = document.getElementsByClassName("mouse")[0]; // 获取小鼠标盒子

let mouseBigSize = document.getElementsByClassName("mouseBigSize")[0]; // 获取大鼠标盒子

let bigImg = mouseBigSize.children[0]; // 获取大盒子里面的图片

let mask = document.getElementsByClassName("mask")[0]; // 获取遮罩层

// 给小盒子添加mouseover事件

mouse.onmouseover = function(){

mask.style.display = "block";

mouseBigSize.style.display = "block";

}

// 给小盒子添加mouseout事件

mouse.onmouseout = function(){

mask.style.display = "none";

mouseBigSize.style.display = "none";

}

// 初始化x轴和y轴

let x = 0,y = 0;

// 给小盒子添加mousemove事件

mouse.onmousemove = function(event){

x = event.clientX - this.offsetParent.offsetLeft - mask.offsetWidth / 2;

y = event.clientY - this.offsetParent.offsetTop - mask.offsetHeight / 2;

// 进行边界判断

if(x < 0)

{

x = 0;

}

if(x > mouse.offsetWidth - mask.offsetWidth)

{

x = mouse.offsetWidth - mask.offsetWidth;

}

if(y < 0)

{

y = 0;

}

if(y > mouse.offsetHeight - mask.offsetHeight)

{

y = mouse.offsetHeight - mask.offsetHeight;

}

// 重新给遮罩层的left和top赋值

mask.style.left = x + "px";

mask.style.top = y + "px";

/*

计算:弟弟一顿吃2个馒头,哥哥一顿吃4个馒头,问:弟弟今天吃了3个馒头,哥哥应该吃几个馒头?

计算出他们的倍数   4 / 2    2倍

3 * 2  == 6个

*/

/*

大图盒子 / 小图盒子 = 倍数

我们 再小图移动的距离 *  倍数  ==  大图的位置

*/

bigImg.style.left = -x * mouseBigSize.offsetWidth / mouse.offsetWidth + "px";

bigImg.style.top = -y * mouseBigSize.offsetHeight / mouse.offsetHeight + "px";

}

</script>

</body>

</html>

原文地址:https://www.cnblogs.com/akangwx0624/p/11267013.html

时间: 2024-08-29 11:24:36

js京东图片放大镜效果。的相关文章

前端JS电商放大镜效果

前端JS电商放大镜效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>26-电商放大镜</title> <style type="text/css"> *{ padding: 0; margin: 0; } #left{ padding: 0; margin: 0; w

原生js实现的放大镜效果

这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html> <head> <title>js放大镜效果</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <style&

利用jqueryzoom实现图片放大镜效果

在你的页面中包含 jqzoom.css Html代码   <link rel="stylesheet" href="your_path/jqzoom.css" type="text/css" media="screen"> 包含 jQzoom 和 jQuery JS 代码: Html代码   <script type="text/javascript" src="your_pat

原生JS实现图片放大镜插件

  前  言 我们大家经常逛各种电商类的网站,商品的细节就需要用到放大镜,这个大家一定不陌生,今天我们就做一个图片放大镜的插件,来看看图片是如何被放大的…… 先看一下我们要是实现的最终效果是怎么样的    ↓ 看完效果,大家有思路了吗,没有的话,我们一起来看一下是如何实现的~ 1实现思路 ① 要实现指上后放大的效果,需要做三个div,一个用来放原图,另一个用来放放大效果的div,最后一个是鼠标指上后需要放大部分的div(这个div我们用p标签来代替). ② 确定放大比例,最重要的一点,鼠标指上的

图片放大镜效果

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title>图片放大镜效果</title> 6 <link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css" media="all&

JS中图片飞飞效果

当鼠标在界面上移动的时候,后面有一连串的图片跟随者一起飘动,效果如下: 实现的基本思想:准备五个img标签,为了方便控制都放在一个div里面,设置div的定位方式为 fixed,设置成这中定位方式主要是为了解决在页面出现滚动条的情况下,图片还能够跟随鼠标移动.然后再鼠标移动的时候,延时给每一个图片设置定位的left和top距离就OK了.HTML和CSS代码如下: 1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head

jquery图片放大镜效果制作变焦镜头图片放大查看

jquery图片放大镜效果制作变焦镜头图片放大查看 http://www.17sucai.com/pins/demoshow/8511

WPF设置VistualBrush的Visual属性制作图片放大镜效果

原文:WPF设置VistualBrush的Visual属性制作图片放大镜效果 效果图片: 原理:设置VistualBrush的Visual属性,利用它的Viewbox属性进行缩放. XAML代码:// Window1.xaml<Window x:Class="MagnifyingGlass.Window1"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns

canvas知识02:图片放大镜效果

效果截图: JS代码: <script> // 初始化canvas01和上下文环境 var cav01 = document.getElementById('cav01'); var cxt01 = cav01.getContext('2d'); // 初始化canvas02和上下文环境 var cav02 = document.getElementById('cav02'); var cxt02 = cav02.getContext('2d'); //初始化image对象和缩放比例 var