JS 做的鼠标放大镜(初级)
这今天我们学习鼠标的各种事件,我给大家分享一下鼠标放大镜的效果。
希望有兴趣的朋友可以一块交流。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>放大镜效果</title>
<style media="screen">
*{
margin: 0;
padding: 0;
}
#wrap {
width: 400px;
height: 400px;
border: 1px solid black ;
position: absolute;
}
#image {
width: 100%;
height: 100%;
position: absolute;
}
#slider {
width: 150px;
height: 150px;
border: 1px solid gray ;
position: absolute;
/*top: 0;*/
background: rgba(255, 235, 0, 0.3);
display: none;
}
#wrap_max {
width: 700px;
height: 700px;
border: 1px solid gray ;
position: absolute;
left: 400px;
display: none;
overflow: hidden;
}
#image_max {
width: 1000px;
height: 1000px;
/*display: block;*/
}
</style>
</head>
<body>
<div id="wrap">
<img id="image"src="01.jpg" alt="" /> // 放置图片
<div id="slider">
</div>
</div>
<div id="wrap_max">
<img id="image_max" src="01.jpg" alt="" /> //放置和上面一样的图片
</div>
</body>
<script type="text/javascript">
var wrap = document.getElementById('wrap');
var image = document.getElementById('image');
var slider = document.getElementById('slider');
var wrapMax = document.getElementById('wrap_max');
var imageMax = document.getElementById('image_max');
wrap.onmousemove = function(event){
event = event || window.event;
slider.style.display = 'block'; //当鼠标移入wrap时,slider显示。
wrapMax.style.display = 'inline-block';
var disX = event.clientX - slider.offsetWidth / 2 ; // slider .offsetWidth/ 2 是让鼠标在slider的底部在中间显示
var disY = event.clientY - slider.offsetHeight / 2; // slider .offsetHeight/2 是让鼠标在slider的高在中间显示
var disMaxX = wrap.offsetWidth - slider.offsetWidth ; // slider在wrap移动的最大横向距离
var disMaxY = wrap.offsetHeight - slider.offsetHeight ; // slider 在wrap中移动的最大纵向距离
if (disX < 0) {
disX = 0
}else if (disX > disMaxX) {
disX = disMaxX ;
}
if (disY < 0) {
disY = 0
}else if (disY > disMaxY) {
disY = disMaxY ;
}
slider.style.left = disX +'px';
slider.style.top = disY + 'px';
var sealeX = disX / disMaxX ; // slider在wrap x轴 的移动 比例
var sealeY = disY / disMaxY ; // slider 在 wrap y轴的移动 比例
wrapMax.scrollLeft = (imageMax.offsetWidth - wrapMax.offsetWidth) * sealeX ; //wrapMax 在imageMax x 轴中的移动值
wrapMax.scrollTop = (imageMax.offsetHeight - wrapMax.offsetHeight) *sealeY ;
wrap.onmouseleave = function(){
slider.style.display = 'none';
wrapMax.style.display = 'none';
}
}
</script>
</html>
转载于:https://www.cnblogs.com/Sabo-dudu/p/5765962.html
JS 做的鼠标放大镜(初级)相关推荐
- 用js做一个鼠标惯性动画
用js做一个简单的鼠标惯性动画 <style type="text/css">#div1{width: 50px;height: 50px;background: re ...
- 如何用原生jS做购物车
如何用原生jS做购物车 今天给大家分享如何用原生js做购物车,我们都逛过淘宝.京东这样购物网站,像这种购物网站,购物车是肯定少不了的 ,我们在天猫上购物,一开始一个页面有很多种商品,然后你在这里面看中 ...
- js+css+html实现放大镜效果
js+css+html实现放大镜效果 1 案例描述 2 编写HTML代码 3 编写CSS代码 4 编写JavaScript代码 5 总代码 1 案例描述 在很多网页中,我们都能看到一个类似于放大镜的效 ...
- 详情页html特效,js实现详情页放大镜效果
本文实例为大家分享了js实现详情页放大镜的具体代码,供大家参考,具体内容如下 1.html 2.css *{ margin:0;padding:0; } #small{ width:400px; he ...
- 用Three.js做一个简单的3D场景
Three.js是什么 Three.js 是一款运行在浏览器中的 3D 引擎,我们可以用它来创造我们所需要的一系列3D动画场景,简而言之就是建在网页上的3D模型.利用Three.js可以制作出很多酷炫 ...
- 使用js做简易轮播图,可自动
[作者注]:第一次使用js做简易轮播图 首先在body里div个容器 div class="box"> <p id="p" ></p&g ...
- JS制作跟随鼠标移动的图片
JS制作跟随鼠标移动的图片 有趣的小案例池子: JS实现定时器 JS实现关闭图片窗口 JS实现输入检验 获取焦点后隐藏提示内容的输入框 JS实现获取鼠标在画布中的位置 聊天信息框显示消息 JS点击切换 ...
- react.js做小程序_如何使用React.js构建现代的聊天应用程序
react.js做小程序 In this tutorial, I will guide you to build your own group chat application using React ...
- 用 JS 做一个数独游戏(二)
用 JS 做一个数独游戏(二) 在 上一篇博客 中,我们通过 Node 运行了我们的 JavaScript 代码,在控制台中打印出来生成好的数独终盘.为了让我们的数独游戏能有良好的体验,这篇博客将会为 ...
最新文章
- log4j linux如果日志目录不存在,Java日志库学习笔记
- 2020,你还相信微服务?
- python self的含义
- nRF5_SDK_12.3.0 编译micro-ecc摘要
- 可持久化3--可持久化01Trie
- linux内核 lts长期演进,Linux Kernel 4.19 和 5.4 生命周期延长至 6 年
- 数值分析-泰勒公式及泰勒级数
- Android代码里面设置字体颜色的三种方法
- 论文实录 | 毕业设计如何做需求分析?
- python写几个好玩的程序_Python写的Msn机器人,几好玩的
- 微信小程序 实现提示弹窗
- k8s部署nacos2.0.3出现tried: server is DOWNnow, detailed error message: Optional[Distro protocol XXXX
- 解决Sublime Text菜单栏和标签栏不见问题
- 美光证实:DDR5 内存供应不足与 PMIC 和 VRM 短缺有关,2022 年改善的可能性很小
- 《算法设计与分析》第十三周作业
- 固定资产拆分比例怎么计算_固定资产折旧的计算方法
- 神通数据库安装及使用手册
- 【SQL】获取第二高薪水
- 博客奖品之 2012龙年薪途活动
- WTD实验(lv9-day15)
热门文章
- 通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤
- branch prediction
- PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
- Windows系统中文件解说
- Linux 的 60s USE 性能诊断方法论
- 计算体系结构的演进规律
- DPDK — 架构解析
- 模组使用之天线阻抗匹配、匹配过程、天线选型注意、RF走线Layout建议
- Keil中找不到芯片,往Keil中添加不存在的芯片,Keil安装pack文件
- Altium Designer关闭板观察器,放大镜