HTML代码:

div.box>div#left+div#buttom+div#right

div#left>img

div#buttom>div.small>img

CSS代码:

        .box{
position: relative;
}
#left{
width:310px;
height:310px;
border: 1px solid blueviolet;
}
#buttom{
width: 310px;
height: 40px;
margin-top: 10px;
}
#buttom .small{
border: 1px solid wheat;
float: left;
margin-right: 5px;
}
#right{
width: 400px;
height: 310px;;
position: absolute;
top:;
left:320px;
border: 1px solid #ccc;
display: none;
overflow: hidden;
}
#right img{
position: absolute;
top:;
left:;
}

JS代码:

     <script>
function $(id){
return document.getElementById(id);
}
window.onload = function () {
var left = $('left');
var button = $('buttom');
var right = $('right');
button.onmouseover = function (e) {
var e = e||window.event;//兼容事件
var imgobj = e.srcElement|| e.target; //获得目标事件源,即图片 ,ie下srcElement,火狐下target
if(imgobj.nodeName == 'IMG'){ //当目标事件源是图片时
// alert(imgobj.src);
var names = imgobj.src; //获得图片路径
console.log(names);
console.log(names.lastIndexOf('/'));//获得/的角标位
console.log(names.substring(names.lastIndexOf('/'))); //从角标位开始截至最后为图片名
var imgOldName = names.substring(names.lastIndexOf('/'));
var imgNewName = imgOldName.replace('1','2'); // 从改名来换路径
console.log(imgNewName);
left.innerHTML = '<img src=img'+imgNewName +'>';
}
};
//右边图片显示逻辑
left.onmouseover = function () {
right.style.display ='block';
var leftimg = left.getElementsByTagName('img')[0];
var names = leftimg.src;
var imgoldname = names.substring(names.lastIndexOf('/'));
var imgNewName = imgoldname.replace('2','3');
right.innerHTML = "<img src=img"+imgNewName+">";
var rightImg = right.getElementsByTagName('img')[0];
//添加移动事件
this.onmousemove = function (e) {
var e = e||window.event;
var l = e.offsetX|| e.layerX; //相对于事件源位置的兼容写法
var r = e.offsetY|| e.layerY;
//根据比例来定位大图坐标
rightImg.style.left = l/left.offsetWidth*(right.offsetWidth-rightImg.offsetWidth)+"px";
rightImg.style.top = r/left.offsetHeight*(right.offsetHeight-rightImg.offsetHeight)+"px";
}
}
//离开事件
left.onmouseout = function () {
right.style.display = 'none';
}
}
</script>

放大镜效果之js的更多相关文章

  1. 原生js实现放大镜效果

    今天做任务的时候,有一个任务就是让实现电商网站常用的放大镜效果,类似于这样的效果,之前并没有做过这种放大镜效果,刚开始的思路是对图片进行裁剪,但是后来发现实在是难以实现,于是求助了万能的谷歌,发现一个 ...

  2. Magnifier.js - 支持鼠标滚轮缩放的图片放大镜效果

    Magnifier.js 是一个 JavaScript 库,能够帮助你在图像上实现放大镜效果,支持使用鼠标滚轮放大/缩小功能.放大的图像可以显示在镜头本身或它的外部容器中.Magnifier.js 使 ...

  3. JS 文本输入框放大镜效果

    JS 文本输入框放大镜效果 今天下午研究了下 "文本输入框放大镜效果" 当然KISSY官网也有这种组件 请看kissy demo 其实这种效果 对于很多童鞋来说 应该并不陌生!我今 ...

  4. 原生js实现的放大镜效果

    这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html&g ...

  5. jquery+js实现鼠标位移放大镜效果

    jQuery实现仿某东商品详情页放大镜效果 用jquery+js实现放大镜效果,效果大概如下图! 效果是不是大家很感兴趣,放大镜查看细节,下边大家可以详细看一看具体是怎么实现的.下边直接看代码! HT ...

  6. js、jquery实现放大镜效果

    在一些电商网站的商品详情页面,都会有放大镜效果,实现起来并不是很困难,今天用了两个小时,写了一个放大镜效果的实例,来分享给大家! 实现的效果大概是这个样子的 预览 先来看一下效果吧,点击下面的链接预览 ...

  7. js之放大镜效果

      HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. 前端JS电商放大镜效果

    前端JS电商放大镜效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  9. js原生淘宝京东宝贝放大镜效果

    js实现商城放大镜效果 效果: 鼠标放上去会有半透明遮罩.右边会有大图片局部图. 鼠标移动时右边的大图片也会局部移动. 技术点: Event Event 是一个事件对象,当一个事件发生后,和当前事件发 ...

随机推荐

  1. 迁移google code上的项目到本地版本库

    今年五月份以来就已经连接不上google code了,翻*墙又极度不稳定,在忍受了几个月之后终于决定将项目搬离google code;经过研究之后终于实现了搬迁到本地,最后总结成下文.一者期望对有需要 ...

  2. checkbox 实现单选效果(html)

    note:在html <input> 标签类中的checkbox实现单选效果. 在最近的开发项目中,客户要求使用小方格子实现“单选”功能,显然圆点的radio被out了,只能选择chckb ...

  3. EcStore中的App是什么东西?

    Ecstore中的App不是手机上的App,它是一个Web应用包,集合了Web应用的后端PHP程序.Mysql数据表定义,以及前端HTML+CSS+JS展现,通常是实现某个业务功能,如购物车.促销.支 ...

  4. 变形课(DFS hdu 1181)

    变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submis ...

  5. 1006 Do the Untwist

    考察编程基础知识,用到字符和数字相互转化等.形式是描述清楚明文和暗文的转化规则. #include <stdio.h> #include <string.h> #define ...

  6. ubuntu 中c 语言编程(学习)

    ubuntu下c编程 c编程中相关文件后缀 .a    静态库(archive .c     C源代码(需要编译预处理) .h     C源代码头文件 .i      C源代码 (不需要编译预处理) ...

  7. js Array数组的使用

    js Array数组的使用   Array是javascript中的一个事先定义好的对象(也可以称作一个类),可以直接使用 创建Array对象 var array=new Array(): 创建指定元 ...

  8. UESTC_冬马党 CDOJ 882

    冬马党 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Statu ...

  9. (转)Java 的swing.GroupLayout布局管理器的使用方法和实例

    摘自http://www.cnblogs.com/lionden/archive/2012/12/11/grouplayout.html (转)Java 的swing.GroupLayout布局管理器 ...

  10. 监控父元素里面子元素内容变化 DOMSubtreeModified

    1监控ul的li的变化情况,并实时输出li的长度 布局: <ul id="isSelected"></ul> <span id="modal ...