jQuery制作图片浮动放大,鼠标滚轮缩放功能

  点击图片居中放大显示,背景半透明遮罩,鼠标滚轮可缩放图片大小,再次点击图片恢复原始大小并关闭。

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8">
		<title>图片点击放大居中+滚轮缩放</title>
		<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
		<style>
			.zoom-img {
				width: 200px;
				cursor: pointer;
				margin: 10px;
			}

			#imgZoomMask {
				display: none;
				position: fixed;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				background: rgba(0, 0, 0, 0.8);
				z-index: 9999;
				cursor: pointer;
			}

			/* 外层容器居中 */
			.img-wrap {
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
			}

			/* 图片以中心点缩放 */
			#imgZoomBox {
				max-width: 90vw;
				max-height: 90vh;
				cursor: pointer;
				transition: transform 0.15s ease;
				display: block;
			}
		</style>
	</head>
	<body>

		<img src="https://picsum.photos/id/10/800/800" class="zoom-img" alt="点击放大">
		<img src="https://picsum.photos/id/20/600/900" class="zoom-img" alt="点击放大">

		<div id="imgZoomMask">
			<div class="img-wrap">
				<img id="imgZoomBox" src="">
			</div>
		</div>

		<script>
			$(function() {
				let scale = 1;

				// 点击原图弹出
				$(document).on('click', '.zoom-img', function() {
					let src = $(this).attr('src');
					scale = 1;
					$('#imgZoomBox').attr('src', src).css('transform', `scale(${scale})`);
					$('#imgZoomMask').fadeIn(200);
				});

				// 滚轮缩放
				$('#imgZoomBox').on('wheel', function(e) {
					e.preventDefault();
					if (e.originalEvent.deltaY < 0) {
						scale += 0.1;
					} else {
						scale -= 0.1;
					}
					// 缩放极值
					scale = Math.max(0.3, Math.min(scale, 3));
					$(this).css('transform', `scale(${scale})`);
				});

				// 点击遮罩/图片关闭
				$('#imgZoomMask').click(function() {
					$(this).fadeOut(200);
				})
				$('#imgZoomBox').click(function(e) {
					e.stopPropagation();
					$('#imgZoomMask').fadeOut(200);
				})
			});
		</script>
	</body>
</html>

本站原创内容,转载请注明来源:https://www.liutonghui.com/70

PHP图片验证码功能简单开发
上一篇 2014-08-02
深入浅出之Smarty模板引擎工作机制(一)
下一篇 2014-08-18

评论列表(0条)

  • 暂无评论

发表评论

captcha

相关推荐

  • PHP图片验证码功能简单开发

      验证码是网站开发中常用的功能,可以保证用户提交数据和服务器的安全,验证码的形态也是千奇百怪,从传统的数字+字母,到拼图,再到找元素等等越来越复杂。   今天说一下用PHP原生开发方式如何写一个最常见的数字+字母图片验证码功能,过程非常简单。   首先创建验证码生成文件verify.php &lt;?php // 开启session session_start(); // 创建图片资源,宽高 $img = imagecreatetru......

    2014-08-02
    21060
  • jQuery实现文章列表指定行后插入广告

      jQuery插入广告位功能:可指定固定位置,第几行后插入广告和随机某一行后插入广告,每次刷新位置不一样两种模式。 &lt;!DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;文章列表插入广告&lt;/title&gt; &lt;script src="https://code......

    2014-09-12
    12250
  • jQuery Ajax无刷新数据增删改查功能

      一套简单的无刷新数据增删改查功能,基于jQuery Ajax异步请求技术,后端使用PHP处理数据并返回结果给前端,实现页面无刷新,不跳转对数据增删改查操作。   index.html &lt;!DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;AJAX 无刷新增删改查&lt;/t......

    2014-11-16
    20100
  • jQuery Ajax无刷新批量删除数据功能

      在 jQuery 中使用 Ajax 实现批量删除的基本思路,使用 jQuery 监听&ldquo;批量删除&rdquo;按钮的点击事件,收集用户选择的要删除的项目的标识(例如,ID)。   使用 Ajax 发送异步请求到后端,将要删除的项目标识传递给服务器。在后端,接收到请求后,根据接收到的项目标识进行删除操作,并返回相应的结果给前端。   以下是一个简单的示例代码:   index.html &lt;!DOCTYPE html&g......

    2015-06-15
    21330
  • jQuery为当前栏目导航添加CSS样式

      在网站制作过程中,经常见到很多网站的导航栏中当前所在的栏目分类链接被添加了css样式,呈高亮状态,点击哪个分类链接哪个就会变成高亮状态,那么这种功能是怎么实现的呢,其实用jQuery就可以很轻松的实现。   jquery代码: /* 当前链接加css */ $('nav ul li a').each(function () { if ($(this)[0].href == String(window.location)) $(t......

    2015-11-06
    20890
  • Layui + jQuery无刷新增删改查功能

      使用Layui框架可以让后台管理功能开发更高效,UI风格更统一美观。简单介绍一下Layui+jQuery开发无刷新数据操作功能的原理,支持数据查询,增加,修改,删除(包括批量删除)。   index.html &lt;!DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Layui......

    2018-09-14
    19930
  • PHP实现相关文章推荐功能

      实现相关文章推荐功能通常需要使用更高级的推荐系统算法,对于查询到的相关文章,需要计算它们与当前文章的相似度。相似度可以根据文章的内容、标题、标签等属性进行计算。可以使用文本相似度算法(如余弦相似度、Jaccard相似度等)或基于内容的推荐算法来计算相似度。   假设有一个包含文章信息的数据库表 articles: CREATE TABLE articles ( id INT PRIMARY KEY, title VA......

    2021-05-24
    17410
  • ThinkPHP数据软删除及数据恢复功能

      ThinkPHP的软删除不是真正删除数据库数据,而是通过标记字段(如delete_time)记录删除状态,查询时自动过滤delete_time字段已标记删除的数据,支持数据恢复和真实删除,相当于为项目加了一个回收站功能,以避免数据被误删。   软删除依赖模型操作,不支持原生查询,需要数据表有删除标记字段(默认delete_time,类型:datetime/timestamp,允许null),需要引入ThinkPHP内置的SoftDe......

    2022-01-27
    10700