javascript html 鼠标放大镜效果

1、鼠标放大镜效果

鼠标放大镜效果,将鼠标移入到左图片,则可以在其右边看到放大的图片,且鼠标移动滑块的大小即为右图显示图片。实际效果如下图所示:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<style media="screen">

#little_image {

width: 400px;

height: 400px;

position: absolute;

top: 0px;

left: 0px;

}

#image {

display: block;

width: 400px;

height: 400px;

position: absolute;

}

#big_image {

width: 500px;

height: 500px;

border: 1px solid grey;

overflow: hidden;

display: none;

position: absolute;

top: 0px;

left: 400px;

}

#images {

display: block;

width: 1000px;

height: 1000px;

position: absolute;

}

#slider_block {

width: 200px;

height: 200px;

position: absolute;

border: 1px solid lightgrey;

cursor: all-scroll;

display: none;

}

</style>

</head>

<body>

<div id="little_image">

<img src="img/1.png" id="image"/>

<div id="slider_block">

</div>

</div>

<div id="big_image">

<img src="img/31.png" id="images"/>

</div>

</body>

<script type="text/javascript">

var littleImage = document.getElementById(‘little_image‘);

var bigImage = document.getElementById(‘big_image‘);

var sliderBlock = document.getElementById(‘slider_block‘);

//为littleImage添加鼠标移入事件

littleImage.onmousemove = function(event) {

event = event || window.event;

sliderBlock.style.display = "block"; //移入鼠标显示sliderBlock

bigImage.style.display = "inline-block";    //移入鼠标显示bigImage

// 1、限定sliderBlock的活动范围

var disX = event.clientX - sliderBlock.offsetWidth / 2;      //鼠标点击位置-移动块宽度的1/2

var disY = event.clientY - sliderBlock.offsetHeight / 2;

//最大移动位置就是little_image的宽度-移动块的宽度

var distenceMaxX = littleImage.offsetWidth - sliderBlock.offsetWidth;

var distenceMaxY = littleImage.offsetHeight - sliderBlock.offsetHeight;

if (disX < 0) {

disX = 0;

} else if (disX >= distenceMaxX) {

disX = distenceMaxX

}

if (disY < 0) {

disY = 0;

} else if (disY >= distenceMaxY) {

disY = distenceMaxY;

}

// 2、通过改变sliderBlock的left和top的指来让sliderBlock随着鼠标移动

sliderBlock.style.left = disX + "px";

sliderBlock.style.top = disY + "px";

// 3、通过计算sliderblock在littleImage的比例,计算bigImage在大图中显示的比例

var scaleX = disX / distenceMaxX;

var scaleY = disY / distenceMaxY;

var images = document.getElementById(‘images‘);

bigImage.scrollLeft = (images.offsetWidth - bigImage.offsetWidth) * scaleX;

bigImage.scrollTop = (images.offsetHeight - bigImage.offsetHeight) * scaleY;

}

//添加鼠标移出事件

littleImage.onmouseleave = function() {

sliderBlock.style.display = ‘none‘;   //  sliderBlock隐藏

bigImage.style.display = ‘none‘;      //  bigImage隐藏

}

</script>

</html>

附:offset | client | scroll 关系图

时间: 2024-10-30 13:47:44

javascript html 鼠标放大镜效果的相关文章

JavaScript之放大镜效果

在网上也浏览过许多关于JavaScript放大镜效果的文章,有的代码解释得些隐晦难懂,看的我头有点晕晕的╮(╯﹏╰)╭,我的心情是这样的: 吐槽完了,我们动动小鼠标,当鼠标经过下面这张美女图片时就实现放大效果: 这个放大效果引用了MagicZoom.css

JavaScript之放大镜效果2

在放大图片效果的同时,我们怎么原图和放大窗体增加间隔呢? 我们只需应用一个table就行了: 源码上: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" con

Javascript:实操---放大镜效果(2)

CSS部分<style type="text/css">/* body{    padding: 10px;} */#minWrap{    width: 350px;    height: 350px;    border: 1px solid #ccc;    position: relative;}    #slider{    height: 175px;    width: 175px;    background-color: yellow;    opacit

Javascript:实操---放大镜效果

CSS部分<style type="text/css">/* body{    padding: 10px;} */#minWrap{    width: 350px;    height: 350px;    border: 1px solid #ccc;    position: relative;}    #slider{    height: 175px;    width: 175px;    background-color: yellow;    opacit

javascript放大镜效果

JS实现放大镜效果 首先我们先设想一下放大镜效果 1.当鼠标进入小盒子的时候,把大图片显示出来 2.当指定移动区域的时候,显示当前放大区域(放大效果) 3.鼠标移除我们让它消失 一.实现页面布局HTML+CSS 二.实现放大镜的功能js 下面来看代码,让你思路变清晰 <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>放大镜</title> &l

前端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

使用jquery实现放大镜效果

实现原理 首先,我们讲解一下放大镜效果的实现方式: 方法一:准备一张高像素的大图,当鼠标放到原图上,加载显示大图的对应位置. 方法二:对原图片进行放大,也就是调整原图的长和宽. 上面我们介绍了通过两种方式实现放大镜效果,接下来,我们将以上的两种方式应用到我们的jQuery插件中. 首先,我们需要一个img元素显示原图对象,还需要一个容器作为显示框:显示框里面存放大图对象.当鼠标移动到原图上时,通过对大图进行绝对定位来显示对应的部位,实现类似放大镜的效果. 接下来,让我们定义Index.html页

随笔-放大镜效果

<!doctype html> <html> <head> <meta charset='utf-8'> <title>随笔-放大镜效果</title> <style> #box { margin: 100px;}#small { width: 250px; height: 250px; float: left; border: 1px solid #ccc; position: relative;}#mask { wid

jQery放大镜效果

简单2:1的放大 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>放大镜效果</title> <style type="text/css"> *{ margin: 0; padding: 0; } img{ display: block; } #pic{ width: 200px; height: 160px;