放大镜效果之js
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的更多相关文章
- 原生js实现放大镜效果
今天做任务的时候,有一个任务就是让实现电商网站常用的放大镜效果,类似于这样的效果,之前并没有做过这种放大镜效果,刚开始的思路是对图片进行裁剪,但是后来发现实在是难以实现,于是求助了万能的谷歌,发现一个 ...
- Magnifier.js - 支持鼠标滚轮缩放的图片放大镜效果
Magnifier.js 是一个 JavaScript 库,能够帮助你在图像上实现放大镜效果,支持使用鼠标滚轮放大/缩小功能.放大的图像可以显示在镜头本身或它的外部容器中.Magnifier.js 使 ...
- JS 文本输入框放大镜效果
JS 文本输入框放大镜效果 今天下午研究了下 "文本输入框放大镜效果" 当然KISSY官网也有这种组件 请看kissy demo 其实这种效果 对于很多童鞋来说 应该并不陌生!我今 ...
- 原生js实现的放大镜效果
这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html&g ...
- jquery+js实现鼠标位移放大镜效果
jQuery实现仿某东商品详情页放大镜效果 用jquery+js实现放大镜效果,效果大概如下图! 效果是不是大家很感兴趣,放大镜查看细节,下边大家可以详细看一看具体是怎么实现的.下边直接看代码! HT ...
- js、jquery实现放大镜效果
在一些电商网站的商品详情页面,都会有放大镜效果,实现起来并不是很困难,今天用了两个小时,写了一个放大镜效果的实例,来分享给大家! 实现的效果大概是这个样子的 预览 先来看一下效果吧,点击下面的链接预览 ...
- js之放大镜效果
HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 前端JS电商放大镜效果
前端JS电商放大镜效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- js原生淘宝京东宝贝放大镜效果
js实现商城放大镜效果 效果: 鼠标放上去会有半透明遮罩.右边会有大图片局部图. 鼠标移动时右边的大图片也会局部移动. 技术点: Event Event 是一个事件对象,当一个事件发生后,和当前事件发 ...
随机推荐
- Cortex-M3寄存器等基础知识
1.寄存器 CM3拥有R0~R15通用寄存器和一些特殊功能寄存器 R0~R12这些通用寄存器,复位初始值都是不可预料的 2.CM3有R0到R15的通用寄存器组 注:绝大部分的16位thumb只能访问R ...
- 解决Eclipse编译器报错ClassNotFoundException:Org.hibernate.hql.ast.HqlToken
最近开发遇到Eclipse编译器老是报出ClassNotFoundException:Org.hibernate.hql.ast.HqlToken [from User Where id=1] 的错误 ...
- vs2010中自动实现抽象方法
由于刚接触vs,感官上虽然和eclipse差不多,但是一些快捷都不太相同,导致一开始使用时候非常不习惯. 不过刚开始嘛,写点相当小白的东西,也没有用到太多功能,也就暂时忽视,用的时候再说. 但是今天, ...
- 关于thinkphp中Hook钩子的解析
在tp框架下的Library/Think 下有一个Hook类,这个是用来以插件形式来实例化类并且执行方法的 static private $tags = array(); 这里有一个 ...
- LinqToSql 小例子
namespace LinqToSqlDemo.Test { class Program { // 数据连接文本 private static DataClasses1DataContext data ...
- JavaScript为unicode编码转换为中文
代码laycode - v1.1 关于这样的数据转换为中文问题,常用的以下方法. 1. eval解析或new Function("'+ str +'")() str = eval ...
- ArcGIS 栅格数据已加载后的获取
原文 http://www.cnblogs.com/zoe-j/archive/2012/02/16/2354037.html 简单记一下,最近开始做Arcgis engine的开发, 已经通过了to ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- kabina启动配置
启动 kibana # /usr/local/kibana-4.1.1-linux-x64/bin/kibana zjtest7-redis:/usr/local/kibana-4.5.3-linux ...
- JS Message 网页消息提醒
JS message是一个非常小的(用gzip压缩之后才3kb)JavaScript library 用于轻松在网页上展示通知提醒.除了通知,它还支持创建带风格的对话框和确认对话框.不需要任何JS框架 ...