一个简单的放大镜
2017-08-12 21:17
183 查看
<script>
var box=document.getElementById("box");
var sm=box.children[0];
var lg=box.children[1];
var mask=sm.children[1];
sm.onmouseover=function(){
mask.style.display = 'block';
lg.style.display = "block";
}
sm.onmouseleave=function(){
mask.style.display = 'none';
lg.style.display = "none";
}
sm.onmousemove=function(event){
var event=event||window.event;
var pagex=event.pageX||event.clientX+scroll().left;
var pagey=event.pageY||event.clientY+scroll().top;
var x=pagex-sm.parentNode.offsetLeft-mask.offsetWidth/2;
var y=pagey-sm.parentNode.offsetTop-mask.offsetHeight/2;
if (x<0) {
x=0;
}else if (x>sm.offsetWidth-mask.offsetWidth) {
x=sm.offsetWidth-mask.offsetWidth;
}
if (y<0) {
y=0;
}else if (y>sm.offsetHeight-mask.offsetHeight) {
y=sm.offsetHeight-mask.offsetHeight;
}
mask.style.left=x+'px';
mask.style.top=y+"px";
var lgImg=lg.children[0];
var lgx=(lgImg.offsetWidth-lg.offsetWidth)/(sm.offsetWidth-mask.offsetWidth);
console.log(lgx);
lgImg.style.marginLeft = -x*lgx+"px";
lgImg.style.marginTop = -y*lgx+"px";
}
function scroll(){
if (window.pageYOffset!=null) {
return {
left:window.pageXOffset,
top:window.pageYOffset
}
}else if (document.compatMode==="CSS1Compat") {
return {
left:document.documentElement.scrollLeft,
top:document.documentElement.scrollTop
}
}return {
left:document.body.scrollLeft,
top:document.body.scrollTop
}
}
</script>
var box=document.getElementById("box");
var sm=box.children[0];
var lg=box.children[1];
var mask=sm.children[1];
sm.onmouseover=function(){
mask.style.display = 'block';
lg.style.display = "block";
}
sm.onmouseleave=function(){
mask.style.display = 'none';
lg.style.display = "none";
}
sm.onmousemove=function(event){
var event=event||window.event;
var pagex=event.pageX||event.clientX+scroll().left;
var pagey=event.pageY||event.clientY+scroll().top;
var x=pagex-sm.parentNode.offsetLeft-mask.offsetWidth/2;
var y=pagey-sm.parentNode.offsetTop-mask.offsetHeight/2;
if (x<0) {
x=0;
}else if (x>sm.offsetWidth-mask.offsetWidth) {
x=sm.offsetWidth-mask.offsetWidth;
}
if (y<0) {
y=0;
}else if (y>sm.offsetHeight-mask.offsetHeight) {
y=sm.offsetHeight-mask.offsetHeight;
}
mask.style.left=x+'px';
mask.style.top=y+"px";
var lgImg=lg.children[0];
var lgx=(lgImg.offsetWidth-lg.offsetWidth)/(sm.offsetWidth-mask.offsetWidth);
console.log(lgx);
lgImg.style.marginLeft = -x*lgx+"px";
lgImg.style.marginTop = -y*lgx+"px";
}
function scroll(){
if (window.pageYOffset!=null) {
return {
left:window.pageXOffset,
top:window.pageYOffset
}
}else if (document.compatMode==="CSS1Compat") {
return {
left:document.documentElement.scrollLeft,
top:document.documentElement.scrollTop
}
}return {
left:document.body.scrollLeft,
top:document.body.scrollTop
}
}
</script>
相关文章推荐
- 用js做一个简单的电商放大镜效果
- 用JS做一个简单的电商产品放大镜功能
- 一个简单的放大镜功能
- 一个简单的 傻瓜式放大镜插件 转载请注明出处
- 用JS做一个简单的电商产品放大镜功能
- 分形介绍 && 一个简单的Kotch curve实现代码
- JDBC连接数据库代码 (一) -- 一个简单的获取数据库表单
- 一个Java实现的简单的多个客户端聊天程序(未测试)
- 用cocos2d-x做一个简单的windows phone 7游戏(一)
- 一个简单的迷宫访问程序。
- css+js实现一个弹出层,完成注册功能 带有遮罩层,比较简单
- Maximum RPM读书纪要第十章 构建RPM包的一个简单例子
- 用AJAX编写一个简单的相册
- ScalaMP ---- 模仿 OpenMp 的一个简单并行计算框架
- 用UDP实现可靠文件传输,如何利用UDX创建一个简单的WIN32程序
- 关于自己臆想的一个简单的玩具代码
- (福利)分享一个用android编写的简单的APP——爱吖天气
- 超级简单:一个横向ASP.NET Menu控件
- 一个简单好用的tooltip
- 请写一个简单的幻灯效果页面。如果不使用JS来完成,可以加分。