<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>简单实现图片预览功能</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
</head>
<style>
.imgDolage {
width: 100%;
height: 100%;
background: rgba(000, 000, 000, .7);
position: fixed;
top: 0;
left: 0;
bottom: 0;
z-index: 12;
display: flex;
justify-content: center;
align-items: center;
overflow: auto;
}
.imagesBody {
border: 5px solid #fff;
cursor: pointer;
height: 90%;
}
.dis {
display: none !important;
}
.img-small {
width: 300px;
height: 180px;
border: 5px solid #333;
}
</style>
<body>
<img class="img-small" src="https://cn.vuejs.org/images/logo.svg" onclick="imgShow()">
<div class="imgDolage dis">
<img class="imagesBody" src="" alt="">
</div>
</body>
<script>
function imgShow() {
// 总是指向事件绑定的元素,而 Event.target 则是事件触发的元素。
var is = event.currentTarget
$('.imgDolage').removeClass('dis')
$('.imgDolage img').attr('src', is.getAttribute('src'))
}
let ActiveImages = false
$(".imgDolage").click(function (e) {
let _con = $('.imagesBody'); // 设置目标区域
if (!_con.is(e.target) && _con.has(e.target).length === 0) {
// 点击图片之外的区域,收起预览
$('.imgDolage').addClass('dis')
ActiveImages = false
} else {
// 点击图片:放大缩小
if (ActiveImages) {
_con.css('top', '5%')
_con.css('height', '90%')
ActiveImages = false
} else {
_con.css('top', '0%')
_con.css('height', 'auto')
ActiveImages = true
}
}
});
</script>
</html>
简单实现图片预览功能
最新推荐文章于 2024-05-16 11:32:42 发布