作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的网站上有一个小缩略图列表(“t1.jpg”、“t2.jpg”、“t3.jpg”...),我想创建在居中对话框中显示的代码图像的全尺寸版本。如何做到这一点?
例如,当我单击 t1.jpg 时,我想在中心框中看到一个 big1.jpg 图像。动态地。我不想在加载页面时加载所有图像。这一定是良好的性能。
有人可以给我一些建议吗?谢谢。
最佳答案
这是一个非常简单的方法 - Darkbox Gallery 的简化版本:
基本上,您将大图像 src
存储在 data-pop
属性中。
单击此类 data-pop
元素时会调用弹出窗口。
CSS 非常简单,甚至 jQuery 也不应该太复杂 - 除了计算当前窗口大小以定义弹出窗口的背景图像应该是 CSS3 contain
还是 auto
- 其中“auto”用于较小的图像(因此它们不会缩放):
/* POP BOX */
;(function() {
var $pop = $("#pop");
$(document).on("click", "[data-pop]", function() {
var popSrc= $(this).data("pop"),
docW= Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
docH= Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
$pop.addClass("visible loading").css({backgroundImage:"none"});
$("<img/>").on("load", function() {
var bigger = (this.width > docW || this.height > docH)
$pop.removeClass("loading").css({
backgroundSize: bigger ? "contain" : "auto",
backgroundImage: "url(" + this.src + ")"
});
}).attr("src", popSrc);
});
$("#popClose").on("click", function() {
$pop.removeClass("visible loading");
});
}());
/*
POP BOX
*/
#pop {
position: fixed;
z-index: 999999;
color: #fff;
background: rgba(0, 0, 0, 0.6) none no-repeat 50% 50%;
box-shadow: 0 0 0 24px rgba(0, 0, 0, 0.6);
left: 24px;
top: 24px;
right: 24px;
bottom: 24px;
transition: 0.3s;
visibility: hidden;
opacity: 0;
}
#pop.loading:after {
content: "Loading...";
position: absolute;
top: 50%;
left: 44%;
}
#pop.visible {
visibility: visible;
opacity: 1;
}
#popClose {
cursor: pointer;
position: absolute;
top: 0px;
right: 0px;
font-size: 2em;
}
<!-- POP BOX -->
<div id="pop"><a id="popClose">×</a></div>
<!-- USE EXAMPLE -->
<img src="http://placehold.it/50x50/0bf" data-pop="http://placehold.it/860x590/0bf" alt="" />
<img src="http://placehold.it/50x50/f0b" data-pop="http://placehold.it/590x860/f0b" alt="" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
关于jquery - 如何在 jQuery 中放大缩略图中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575061/
我是一名优秀的程序员,十分优秀!