JavaScript鼠标经过图片的放大镜效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片缩放</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#minBox{
border:1px solid #ccc;
width: 350px;
height: 350px;
position: relative;
top: 50px;
left: 50px;
}
#minBox img{
position: absolute;
}
#smBox{
display: none;
position: absolute;
width:150px;
height: 150px;
background-color: yellow;
opacity: 0.3;
}
#maxBox {
display: none;
position: absolute;
overflow: hidden;
left:500px;
top:50px;
width:500px;
height: 500px;
border:1px solid #d9d9d9;
}
#maxBox img {
position: absolute;
}
</style>
</head>
<body>
<div id="minBox">
<img src="img/min.jpg">
<div id="smBox"></div>
</div>
<div id="maxBox">
<img src="img/max.jpg">
</div> <script type="text/javascript">
//获取节点 var minBox =document.getElementById("minBox");
var smBox = document.getElementById("smBox");
var maxBox = document.getElementById("maxBox");
var maxImg = maxBox.children[0]; //小块鼠标移动事件事件
minBox.onmousemove = function(){
var e = e || window.event;
smBox.style.display = "block";
maxBox.style.display = "block";
//计算小块的位置
//定义
var sLeft = e.clientX - smBox.offsetWidth/2 -minBox.getBoundingClientRect().left;
var sTop = e.clientY - smBox.offsetWidth/2 - minBox.getBoundingClientRect().top;
//判断左右边界,小块距离左边的距离小于0,则意味超界,设置它的left为0;
//右边边界判断,小块的最大宽度不能>(minBox的视口宽度- 小块本身宽度),
if(sLeft<0){
sLeft= 0;
}else if(sLeft >minBox.clientWidth- smBox.offsetWidth){
sLeft = minBox.clientWidth - smBox.offsetWidth;
}
//上下边界同理
if(sTop<0){
sTop = 0;
}else if(sTop > minBox.clientHeight - smBox.offsetHeight){
sTop = minBox.clientHeight - smBox.offsetHeight;
} //鼠标移动、小块跟着移动
smBox.style.left = sLeft + "px";
smBox.style.top = sTop + "px" ; //计算小块在minBox移动的比例,大图同比例在maxBox移动;
//定义设置moveX、moveY 暂存比例
var moveX = sLeft/(minBox.clientWidth - smBox.offsetWidth); var moveY = sTop/(minBox.clientHeight - smBox.offsetHeight);
console.log(moveY); //大图maxImg移动 maxImg.style.left = - moveX*(maxImg.clientWidth - maxBox.offsetWidth) +"px";
maxImg.style.top = - moveY* (maxImg.clientHeight - maxBox.offsetHeight) +"px";
}
//移出滑块的时候
minBox.onmouseleave = function() {
smBox.style.display = "none";
maxBox.style.display = "none";
}
</script>
</body>
</html>
JavaScript鼠标经过图片的放大镜效果的更多相关文章
- [转]jquery 鼠标放在图片上显示图片的放大镜效果jqzoom_ev-2.3
本文转自:http://blog.csdn.net/weizengxun/article/details/6768183 鼠标放在图片上显示图片的放大镜效果使用jqzoom实现,本例版本2.3 效果图 ...
- JavaScript仿淘宝实现放大镜效果的实例
我们都知道放大镜效果一般都是用于一些商城中的,列如每当我们打开淘宝,天猫等pc端时,看到心仪的物品时,点击图片时,便呈现出放大镜的效果.在没有去理解分析它的原理时,感觉非常的神奇,当真正地去接触,也是 ...
- 基于html5鼠标悬停图片动画展示效果
分享一款基于html5鼠标悬停图片动画展示效果.里面包含两款不同效果的html5图片展示效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=" ...
- 特殊例子--JavaScript代码实现图片循环滚动效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- CSS鼠标悬停图片加边框效果,页面布局发生错位的解决办法
CSS鼠标悬停图片加边框效果,页面布局发生错位的解决办法 .recomend-list{ width:1200px; a{ @extend %fl; margin-right: 30px; width ...
- 基于Jquery的商城商品图片的放大镜效果(非组件)
在开发商城的时候,往往会用到图片的放大功能,这里把自己在近期项目中使用的放大镜特效做一下总结(非插件). 放大镜效果 常用的js组件jquery.imagezoom,jquery.jqzoom,jqu ...
- CSS鼠标悬停图片加边框效果,不位移的方法
<!DOCTYPE HTML> <html lang="en-US"> <head> <title>css实现鼠标悬停时图片加边框效 ...
- JavaScript图形实例:图形放大镜效果
1. 基本四瓣花型图案 根据四瓣花卉线的参数方程: t= r*(1+sin(12*θ)/5)*(0.5+sin(4*θ)/2); x=t*cos(θ)); y=t*sin(θ)); 编写如下的HTML ...
- js鼠标滑动图片显示隐藏效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- JSP复习整理(五)JavaBean生命周期
一.创建一个JavaBean UserBean.java package jsp.test; public class UserBean { private String userName; priv ...
- C#设计模式之建造者模式
建造者模式可以将部件本身和它们的组装过程分开,关注如何一步步创建一个包含多个组成部分的复杂对象,用户只需要指定复杂对象的类型即可得到该对象,而无须知道其内部的具体构造细节. 建造者模式:将一个复杂对象 ...
- java十进制转十六进制
package com.ds.detect; import java.util.Scanner; public class ToHEX{ public static void main(String[ ...
- Nginx 相关
删除 access.log 之后,要让 Nginx 重新加载一下,命令 killall -s USR1 nginx 无需新建 access.log ,这个命令会自动创建该文件 Nginx 的日志文件轮 ...
- PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置
PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能.Phpstrom的一款名 ...
- Android基础学习第一篇—Project目录结构
写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...
- 设置SQL server服务器的dbo架构
服务器登录名,指有权限登录到某服务器的用户: 服务器角色,指一组固定的服务器用户,默认有9组: 登录名一定属于某些角色,默认为public 服务器角色不容许更改 登录后也不一定有权限操作数据库 数据库 ...
- 前端项目通用、常用js common.js
var url = location.href; if (url.toLowerCase().indexOf("/akweb_admin/") == -1) { function ...
- Solr4.10.3安装配置
系统环境 window版本为:windows 8.1 64位 软件环境 JDK版本:1.7 solr版本:4.10.3 tomcat版本:tomcat 7 安装过程 步骤一:将下载好的solr-4.1 ...
- Linux学习笔记(12)-进程间通信|匿名管道
Linux的进程间通信有几种方式,包括,管道,信号,信号灯,共享内存,消息队列和套接字等-- 现在一个个的开始学习! ----------------------------------------- ...