js实现放大镜特效的实现方法
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.imgBox{
width: 1000px;
margin: auto;
text-align: center;
}
.small,.large{
font-size: 0;
outline: 1px solid burlywood;
margin: auto;
}
.small{
margin: 20px auto;
}
.large{
/*display: none;*/
}
.small,.small img,.large{
width: 300px;
height: 200px;
overflow: hidden;
}
.large img{
width: 900px;
height: 600px;
}
.small,.large{
position: relative;
}
.mark{
opacity: 0.5;
background-color: #DEB887;
z-index: 55;
width: 100px;
height: 66.666666666px;
display: none;
}
.mark,.large img{
position: absolute;
left: 0;
top: 0;
}
</style>
</head>
<body>
<div class="imgBox">
<div class="small">
<img src="img/img_14.jpg"/>
<div class="mark"></div>
</div>
<div class="large">
<img src="img/img_14.jpg"/>
</div>
</div>
<script type="text/javascript">
$(function(){
var $small = $(".small"),
$mark = $(".mark"),
$large = $(".large");
$small.on("mousemove",function(e){
// 在鼠标移到小图片中显示出mark
$mark.css("display","block");
// $large.css("display","block");
// 获取mark的一半宽度高度
var hw = $mark.width()/2,
hh = $mark.height()/2;
// 获取鼠标在当前图片中的位置
var lf = e.pageX-$small.offset().left-hw,
tt = e.pageY-$small.offset().top-hh;
// 获取mark的想x,y轴偏移率
var ix = lf/$small.width(),
iy = tt/$small.height();
// 获取边缘线
var lb = 1-hw/$small.width()*2,
tb = 1-hh/$small.height()*2;
// 计算和边缘的关系
var ix = ix<lb?ix>0?ix:0:lb,
iy = iy<tb?iy>0?iy:0:tb;
// 进行大图和小图百分比计算
$mark.css("left",ix*100+"%").css("top",iy*100+"%");
$large.children().css("left",-ix*300+"%").css("top",-iy*300+"%");
}).on("mouseout",function(){
// 鼠标移出后mark隐藏
$mark.css("display","none");
// $large.css("display","none");
})
})
</script>
</body>
</html>
js实现放大镜特效的实现方法的更多相关文章
- 案例:用JS实现放大镜特效
案例:用JS实现放大镜特效 案例:用JS实现放大镜特效
- js图片放大镜特效代码
<script language="JavaScript"> <!-- var srcX = 1024; //原图长宽 var srcY = 768; var b ...
- 未封装的js放大镜特效
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>j ...
- js放大镜特效
在平时网上商城购物时,我们能够通过放大镜效果来使我们看图片能够更加的清楚,今天我就来给大家分享一下我学习的放大镜特效 下图是原图的样子 ...
- 基于jQuery仿淘宝产品图片放大镜特效
在开发商城的时候,往往会用到图片的放大功能,这里把自己在近期项目中使用的放大镜特效做一下总结(非插件). 放大镜效果 常用的js组件jquery.imagezoom,jquery.jqzoom,jqu ...
- JQuery仿购物网站放大镜特效所遇问题及思考
JQuery仿购物网站放大镜特效所遇问题及思考 先贴下效果图,然后描述起来也就不会不知道我在说什么了. 我碰到的问题一: 一开始我自己总结了是因为两个小原因导致的①使用了mouseover,mouse ...
- 原生js实现放大镜效果
今天做任务的时候,有一个任务就是让实现电商网站常用的放大镜效果,类似于这样的效果,之前并没有做过这种放大镜效果,刚开始的思路是对图片进行裁剪,但是后来发现实在是难以实现,于是求助了万能的谷歌,发现一个 ...
- 原生js实现架子鼓特效
这是代码完成的效果,按下abcd会出现对应的架子鼓音乐的效果. 简单的介绍下代码思路,html和css部分就不多说了. 重要的是js部分. 大致是这样的, 首先获取到所有的按钮为一个数组,然后遍历整个 ...
- js jquery 页面加载初始化方法
js jquery 页面加载初始化方法 一.js页面加载初始化方法 // 1.在body里面写初始化方法. <body onload='init()'> </body> < ...
随机推荐
- Cesium官方教程12--材质(Fabric)
原文地址:https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric 介绍 Fabric 是Cesium中基于JSON格式来描述materi ...
- 使用传统javaweb进行文件上传
使用传统文件上传方式 1.配置依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sou ...
- 枚举进程,线程,堆 CreateToolhelp32Snapshot
Takes a snapshot of the processes and the heaps, modules, and threads used by the processes.对当前系统进行一 ...
- 在mac下怎么配置web环境(php)
1, 安装PHP+apach+mysql(xampp) 2, 在目录下建一个新文件夹 : 我是在Users/个人目录/workspace 3, 打开/Applications/XAMPP/xamp ...
- SVN 环境搭建
安装配置 安装环境 #查看系统版本环境 [root@svn ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@svn ~]# u ...
- leetcode 75 Sorted Colors
两种解法 1)记录0和1的个数 然后按照记录的个数将0和1重新放入原数组,剩下的补2 2)双指针left,right left表示0~left-1都为0,即i之前都为0 right表示right+1~ ...
- List -- 循环操作
1,单元循环 for…in 2,索引循环 for…in range(len(List)) 3,同时循环单元和索引 使用enumerate: for index, item in enumerate(L ...
- List -- 列表的一些操作
1,基本操作 2,内建函数 3,方法Method
- Java基础——List集合整理(脑图,源码,面试题)
常在知乎牛客网关注Java的一些面试,了解过校招社招常面哪些内容.Java集合不仅使用频率高而且在初面中也常常被问到,何止是常常,关于ArrayList的扩容,HashMap的一些底层等等都被问到烂了 ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---单例模式之ChocolateBoiler[转]
1 2{<HeadFirst设计模式>之单例模式 } 3{ 编译工具: Delphi2007 for win32 } 4{ E-Mail : guzh-0417@163.com ...