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. php代码查询apache模块

    <?php print_r(apache_get_modules()); ?> 注:此函数仅适用于CGI模式.

  2. java中的File.separator

    前些天遇到一个问题,困扰了好久,现在终于解决了. 问题:上传的图片不能正确显示. 我的开发环境是在Windows下,工程在Windows下能正常部署,上传的图片也可以正常的显 示.但是把工程部署在服务 ...

  3. 几个STL算法:includes,set_difference、set_intersection、set_symmetric_difference、set_union, pre_permutation, next_permutation

    includes: 测试有序序列中是否包含另一个序列的全部元素. template<class inputIterator1, class inputIterator2> bool inc ...

  4. 掌握string.h里的常用函数

    字符串输出函数 puts 格式:  puts(字符数组名) 功能:把字符数组中的字符串输出到显示器. 即在屏幕上显示该字符串. 字符串输入函数 gets 格式:  gets (字符数组名) 功能:从标 ...

  5. MongoDB C Driver and APIinstances linux MongoDB安装配置

    <一,linux平台MongoDB安装配置>在这我们使用的Centos6 yum部署的,你想搞编译,自个干!

  6. wxPython Major类

    转载自:http://www.yiibai.com/wxpython/wxpython_major_classes.html   原始的 wxWidgets(用C++编写)是一个巨大的类库.GUI类从 ...

  7. SQL递归查询实现跟帖盖楼效果

    网易新闻的盖楼乐趣多,某一天也想实现诸如网易新闻跟帖盖楼的功能,无奈技术不佳(基础不牢),网上搜索了资料才发现SQL查询方法有一种叫递归查询,整理如下: 一.查询出 id = 1 的所有子结点 wit ...

  8. cocos2dx lua 学习笔记(二)

    安装开发环境 sublime - http://www.sublimetext.com/2 package control - http://packagecontrol.io/installatio ...

  9. Android手机APN设置(中国移动 联通3G 电信天翼),解决不能上网的问题

    中国移动 第一步,设置CMNET上网 新建APN 1.名称:cmnet 2.APN:cmnet 3.APN类型:default 就仅仅填写上面3个选项,其它都是默认,不用填写. 第二步,设置彩信 新建 ...

  10. Zero Downtime Upgrade of Oracle 10g to Oracle 11g Using GoldenGate — 2

    Prepare 10g Database for OGG Create GGS and GGS_MON Database Users SQL> create tablespace ggs_tbs ...