js 鼠标放到图片上放大某一部分效果
动图效果:

代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
* {
margin: 0;
padding: 0;
} .container,
img,
.bigger {
width: 200px;
height: 200px;
} .container {
display: inline-block;
position: relative;
background: url(images/1.png) center;
background-size: contain;
} img {
position: absolute;
top: 0;
left: 0;
} .box {
width: 100px;
height: 100px;
background-color: #ffff7f;
opacity: 0.7;
position: absolute;
} .bigger {
position: relative;
display: inline-block;
overflow: hidden;
} .biggerImg {
position: absolute;
transform: scale(2);
transform-origin: top left;
}
</style>
</head>
<body>
<div class="container">
<div class="box" style="top: 0px;left: 0px;"></div>
</div>
<div class="bigger">
<img class="biggerImg" src="./images/1.png" style="display: none;" />
</div>
</body> <script type="text/javascript">
var container = document.querySelector(".container");
var box = document.querySelector(".box");
var bigger = document.querySelector(".biggerImg");
var width = box.parentNode.offsetWidth;
var height = box.parentNode.offsetHeight; container.addEventListener("mousedown", function() {
bigger.style.display = "block";
container.addEventListener("mousemove", mouseMove);
container.addEventListener("mouseup", function() {
bigger.style.display = "none";
container.removeEventListener("mousemove", mouseMove);
})
}); function mouseMove(e) {
if (e.clientY - 50 < 0) {
box.style.top = 0;
bigger.style.top = 0;
} else if (e.clientY - 50 > 100) {
box.style.top = 100;
bigger.style.top = 100;
} else {
box.style.top = e.clientY - 50 + "px";
bigger.style.top = -2 * (e.clientY - 50) + "px";
} if (e.clientX - 50 < 0) {
box.style.left = 0;
bigger.style.left = 0;
} else if (e.clientX - 50 > 100) {
box.style.left = 100;
bigger.style.left = 100;
} else {
box.style.left = e.clientX - 50 + "px";
bigger.style.left = -2 * (e.clientX - 50) + "px";
}
}
</script>
</html>
js 鼠标放到图片上放大某一部分效果的更多相关文章
- jQuery实现鼠标放到图片上,放大图片
<script src="../../Script/jquery-1.7.2.js" type="text/javascript"></scr ...
- [转]jquery 鼠标放在图片上显示图片的放大镜效果jqzoom_ev-2.3
本文转自:http://blog.csdn.net/weizengxun/article/details/6768183 鼠标放在图片上显示图片的放大镜效果使用jqzoom实现,本例版本2.3 效果图 ...
- js基础进阶--图片上传时实现本地预览功能的原理
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...
- 用html5文件api实现移动端图片上传&预览效果
想要用h5在移动端实现图片上传&预览效果,首先要了解html5的文件api相关知识(所有api只列举本功能所需): 1.Blob对象 Blob表示原始二进制数据,Html5的file对象就继 ...
- 原生JS实现异步图片上传(预览)
效果 实现过程分为两步 1. 用户点击添加后通过 H5文件读取 FileReader对象以DataURL的格式读取图片 2. 通过FormData对象生成表单数据,通过ajax上传到后台 HTML & ...
- 基于js鼠标拖动图片排序
分享一款基于js的图片排序效果.鼠标拖动图片,重新排列图片的排列顺序.该插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线 ...
- Jquery图片上传预览效果
uploadPreview.js jQuery.fn.extend({ uploadPreview: function (opts) { var _self = this, _this = $(thi ...
- 使用iframe实现图片上传预览效果
原理:将图片上传的页面放在iframe中,这样就可以在iframe中将图片提交到服务器而不需要页面刷新,提交成功后用脚本实现主页面显示上传的图片. Default.aspx: <%@ Page ...
- input file图片上传预览效果
两种方法,方法一: js代码: //头像上传预览 $("#up").change(function() { var $file = $(this); var fileObj = $ ...
随机推荐
- TCC分布式事务的实现原理
目录 一.写在前面 二.业务场景介绍 三.进一步思考 四.落地实现TCC分布式事务 (1)TCC实现阶段一:Try (2)TCC实现阶段二:Confirm (3)TCC实现阶段三:Cancel 五.总 ...
- k8s replicaset controller 分析(3)-expectations 机制分析
replicaset controller分析 replicaset controller简介 replicaset controller是kube-controller-manager组件中众多控制 ...
- Spring MVC:HandlerMapping
HandlerMapping 的类图 Spring中存在两种类型的handlers.第一种是 handler mappings(处理程序映射).它们的角色定位与前面所描述的功能完全相同.它们尝试将当前 ...
- 对于multitaper多窗口谱估计的理解及步骤 (对应matlab中pmtm函数)谱减法相关
对于多窗口谱估计的理解 目录 对于多窗口谱估计的理解 0. 缘起 1. PMTM 含义 2. 与我们常用的周期谱估计的区别 3. 计算过程 5. 多窗/单窗谱估计结果对比 6. 程序如何生成多窗 - ...
- 【Java】数组Array
Java基础复习之:数组 简介 数组(Array):多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理 一维数组 一维数组的声明与初始化 int[] id ...
- Mybatis:插入数据返回自增主键
使用Mybatis作为工具连接MySQL,要求在插入数据之后返回自增主键 一开始也很迷惑,Mybatis使用insert之后,成功返回的是1,失败会报错或返回0,主键去哪找来 后来知道Mybatis可 ...
- Spring IOC&DI 控制反转和依赖注入
控制反转(Inversion of Control,缩写为IOC),它是把你设计好的对象交给spring控制,而不再需要你去手动 new Object(); 网上对于IOC的解释很多,对程序员而言,大 ...
- 设计模式学习-使用go实现外观模式
外观模式 定义 适用范围 代码实现 优点 缺点 关于接口粒度的思考 参考 外观模式 定义 外观模式也叫门面模式 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接 ...
- 限制q-error,防止产生次优计划
原文:<Preventing bad plans by bounding the impact of cardinality estimation errors> 摘要 文章定义了一个衡量 ...
- 菜鸡的Java笔记 Eclipse 的使用
Eclipse 的使用 1. Eclipse 简介 2. Eclipse 中的JDT 的使用 3. Eclipse 中的使用 junit 测试 Eclipse (中文翻 ...