学习的JS放大镜
来源:互联网 发布:关键词分分析软件 编辑:程序博客网 时间:2024/06/05 11:46
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#bujv{width:171px;height:256px;position:relative;border:1px #000000 solid;padding:10px;}
#smallbox{width:171px;height:256px;position:relative;}
#smallbox #mod{width:100%;height:100%;background: #ff0;opacity:0;position:absolute;z-index: 5;display:block;}
#smallbox #float1{width:50px;height:50px;background: #5F5C5C;opacity:0.5;position:absolute;z-index: 1;display:none}
#bujv #bigbox{width:185px;height:270px;left:245px;top:0;position: absolute;display: none;overflow: hidden;}
#bigImg{position:absolute;}
</style>
<script>
window.onload = function(){
var bujv = document.getElementById("bujv");
var smallbox = document.getElementById("smallbox");
var mod = document.getElementById("mod");
var float1 = document.getElementById("float1");
var bigbox = document.getElementById("bigbox");
var bigImg = document.getElementById("bigImg");
// mod移入移出事件
mod.onmouseover = function(){
float1.style.display = "block";
bigbox.style.display = "block";
}
mod.onmouseout = function(){
float1.style.display = "none";
bigbox.style.display = "none";
}
// mod移动事件
mod.onmousemove = function(evt){
var e = evt || window.event //事件兼容写法
// 使鼠标到滑块的中心位置
var fleft = e.clientX - bujv.offsetLeft - mod.offsetLeft - float1.offsetWidth/2;
var ftop = e.clientY - bujv.offsetTop - mod.offsetTop - float1.offsetHeight/2;
// 设置边界
if (fleft < 0){ //左边界
fleft = 0 ;
}else if(fleft > mod.offsetWidth - float1.offsetWidth){ //右边界
fleft = mod.offsetWidth - float1.offsetWidth;
}
if (ftop < 0){ //上边界
ftop = 0 ;
}else if(ftop > mod.offsetHeight - float1.offsetHeight){ // 下边界
ftop = mod.offsetHeight - float1.offsetHeight;
}
// 滑块跟随鼠标移动(实质是改变滑块的left和top值)
float1.style.left = fleft + "px";
float1.style.top = ftop + "px";
//设置比例 滑块在mod中的移动范围
var bileX = fleft / (mod.offsetWidth - float1.offsetWidth);
var bileY = ftop / (mod.offsetHeight - float1.offsetHeight);
// 大图能移动的范围 (比例乘以大图与大盒子的差)
bigImg.style.left = - bileX * (bigImg.offsetWidth - bigbox.offsetWidth) + "px";
bigImg.style.top = - bileY * (bigImg.offsetHeight - bigbox.offsetHeight) + "px";
}
}
</script>
</head>
<body>
<div id="bujv">
<div id="smallbox">
<span id="mod"></span>
<div id="float1"></div>
<img src="small.jpg">
</div>
<div id="bigbox"><img src="big.jpg" id="bigImg"></div>
</div>
</body>
</html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#bujv{width:171px;height:256px;position:relative;border:1px #000000 solid;padding:10px;}
#smallbox{width:171px;height:256px;position:relative;}
#smallbox #mod{width:100%;height:100%;background: #ff0;opacity:0;position:absolute;z-index: 5;display:block;}
#smallbox #float1{width:50px;height:50px;background: #5F5C5C;opacity:0.5;position:absolute;z-index: 1;display:none}
#bujv #bigbox{width:185px;height:270px;left:245px;top:0;position: absolute;display: none;overflow: hidden;}
#bigImg{position:absolute;}
</style>
<script>
window.onload = function(){
var bujv = document.getElementById("bujv");
var smallbox = document.getElementById("smallbox");
var mod = document.getElementById("mod");
var float1 = document.getElementById("float1");
var bigbox = document.getElementById("bigbox");
var bigImg = document.getElementById("bigImg");
// mod移入移出事件
mod.onmouseover = function(){
float1.style.display = "block";
bigbox.style.display = "block";
}
mod.onmouseout = function(){
float1.style.display = "none";
bigbox.style.display = "none";
}
// mod移动事件
mod.onmousemove = function(evt){
var e = evt || window.event //事件兼容写法
// 使鼠标到滑块的中心位置
var fleft = e.clientX - bujv.offsetLeft - mod.offsetLeft - float1.offsetWidth/2;
var ftop = e.clientY - bujv.offsetTop - mod.offsetTop - float1.offsetHeight/2;
// 设置边界
if (fleft < 0){ //左边界
fleft = 0 ;
}else if(fleft > mod.offsetWidth - float1.offsetWidth){ //右边界
fleft = mod.offsetWidth - float1.offsetWidth;
}
if (ftop < 0){ //上边界
ftop = 0 ;
}else if(ftop > mod.offsetHeight - float1.offsetHeight){ // 下边界
ftop = mod.offsetHeight - float1.offsetHeight;
}
// 滑块跟随鼠标移动(实质是改变滑块的left和top值)
float1.style.left = fleft + "px";
float1.style.top = ftop + "px";
//设置比例 滑块在mod中的移动范围
var bileX = fleft / (mod.offsetWidth - float1.offsetWidth);
var bileY = ftop / (mod.offsetHeight - float1.offsetHeight);
// 大图能移动的范围 (比例乘以大图与大盒子的差)
bigImg.style.left = - bileX * (bigImg.offsetWidth - bigbox.offsetWidth) + "px";
bigImg.style.top = - bileY * (bigImg.offsetHeight - bigbox.offsetHeight) + "px";
}
}
</script>
</head>
<body>
<div id="bujv">
<div id="smallbox">
<span id="mod"></span>
<div id="float1"></div>
<img src="small.jpg">
</div>
<div id="bigbox"><img src="big.jpg" id="bigImg"></div>
</div>
</body>
</html>
0 0
- 学习的JS放大镜
- Js放大镜
- js 放大镜
- js 放大镜
- 放大镜js
- JS放大镜
- js放大镜
- js做出來的放大镜的效果
- 模拟Flash放大镜的动态JS效果
- js 基础 ---实现放大镜的效果
- 使用js实现放大镜的效果
- 原生JS实现图片的放大镜效果
- H5+css+js的商品放大镜效果
- 简单的js实现放大镜效果
- JavaScript学习之简单的放大镜
- js放大镜功能
- js放大镜特效
- js放大镜,淘宝效果
- 求这样一个三位数,该三位数等于其每位数字的阶乘之和
- oracle--多表查询
- Builder模式
- 如何进行js的跨域数据传输
- web.xml初始化过程
- 学习的JS放大镜
- js中this的指向
- 在 Ubuntu 14.x 搭建 Nginx Uwsgi Django 环境之(三):连接 nginx 和 uwsgi
- 链表类面试题
- Git远端仓库被不同版本的本地仓库push,不能正常提交代码
- HDU 1020 Encoding
- 二分贪心d
- opencv3.2生成不依赖vs2015的dll
- 霍夫曼编码的实现(数组模拟)