replace jquery colorbox with glightbox

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini
2025-12-15 15:07:11 +01:00
parent 26cb84e223
commit 7f69223639
9 changed files with 17 additions and 1217 deletions

View File

@ -15,12 +15,11 @@
<link rel="stylesheet" href="{{ relative_root }}/assets/css/normalize.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" />
<link rel="stylesheet" href="{{ relative_root }}/assets/css/skel-noscript.css?v=2" />
<link rel="stylesheet" href="{{ relative_root }}/assets/css/style.css" />
<link rel="stylesheet" href="{{ relative_root }}/assets/css/style.css?v=2" />
<link rel="stylesheet" href="{{ relative_root }}/assets/css/style-mobile.css?v=2" media="(max-width:699px)"/>
<link rel="stylesheet" href="{{ relative_root }}/assets/css/style-desktop.css?v=2" media="(min-width:700px)" />
<link rel="alternate" title="QEMU Blog (Atom feed)" href="{{ relative_root }}/feed.xml" type="application/atom+xml" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
{% if page.colorbox %}
<script src="{{ relative_root }}/assets/js/jquery.colorbox.js"></script>
<link rel="stylesheet" href="{{ relative_root }}/assets/css/colorbox.css" />
{% if page.glightbox %}
<script src="{{ relative_root }}/assets/js/glightbox.min.js"></script>
<link rel="stylesheet" href="{{ relative_root }}/assets/css/glightbox.min.css" />
{% endif %}

View File

@ -1,5 +1,5 @@
{% for screenshot in site.data.screenshots offset: {{include.offset}} limit: {{include.limit}} %}
<a href="screenshots/{{screenshot.file}}" class="colorbox"
<a href="screenshots/{{screenshot.file}}" class="glightbox"
title="{{screenshot.description}}"
data-title="{% if screenshot.description_md %}{{screenshot.description_md | markdownify | remove: '<p>' | remove: '</p>' | strip_newlines | escape}}{%
else %}{{screenshot.description}}{%endif %}{%

View File

@ -1,70 +0,0 @@
/*
Colorbox Core Style:
The following CSS is consistent between example themes and should not be altered.
*/
#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden; -webkit-transform: translate3d(0,0,0);}
#cboxWrapper {max-width:none;}
#cboxOverlay{position:fixed; width:100%; height:100%;}
#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
#cboxContent{position:relative;}
#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
#cboxTitle{margin:0;}
#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
/*
User Style:
Change the following styles to modify the appearance of Colorbox. They are
ordered & tabbed in a way that represents the nesting of the generated HTML.
*/
#cboxOverlay{background:url(images/overlay.png) repeat 0 0;}
#colorbox{outline:0;}
#cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;}
#cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;}
#cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;}
#cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;}
#cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
#cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
#cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
#cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
#cboxContent{background:#fff; overflow:hidden;}
.cboxIframe{background:#fff;}
#cboxError{padding:50px; border:1px solid #ccc;}
#cboxLoadedContent{margin-bottom:28px;}
#cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
#cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
#cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
#cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
/* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
#cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
/* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
#cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
#cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
#cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
#cboxPrevious:hover{background-position:-75px -25px;}
#cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
#cboxNext:hover{background-position:-50px -25px;}
#cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
#cboxClose:hover{background-position:-25px -25px;}
/*
The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
See: http://jacklmoore.com/notes/ie-transparency-problems/
*/
.cboxIE #cboxTopLeft,
.cboxIE #cboxTopCenter,
.cboxIE #cboxTopRight,
.cboxIE #cboxBottomLeft,
.cboxIE #cboxBottomCenter,
.cboxIE #cboxBottomRight,
.cboxIE #cboxMiddleLeft,
.cboxIE #cboxMiddleRight {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
}

1
assets/css/glightbox.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -85,11 +85,7 @@
{
color: inherit;
font-weight: inherit;
}
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover
{
text-decoration: none;
text-decoration: underline;
}
pre

1
assets/js/glightbox.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
$(function() {
if (('objectFit' in document.documentElement.style) &&
('objectPosition' in document.documentElement.style))
return;
$('#featured .pennant img').each(function() {
var src = this.currentSrc || this.src;
this.style.backgroundImage = 'url("' + src + '")';
// A bit ugly but srcset might override our src attribute otherwise
this.removeAttribute('srcset');
this.src = 'data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'' + this.width + '\' height=\'' + this.height + '\'%3E%3C/svg%3E';
});
});

View File

@ -1,7 +1,7 @@
---
title: QEMU
layout: home
colorbox: True
glightbox: True
---
{% include relative_root.html %}
<!-- Header -->
@ -38,26 +38,16 @@ colorbox: True
{% include screenshot.html offset=3 limit=10 %}
</section>
<script src="{{ relative_root }}/assets/js/object-fit.js"></script>
<script>
window.hasColorBox = false;
$(window).on("load resize", function() {
isMobile = window.innerWidth < 700;
if (isMobile && window.hasColorBox) {
window.hasColorBox = false;
$.colorbox.remove();
} else if (!isMobile && !window.hasColorBox) {
window.hasColorBox = true;
$('.colorbox').colorbox({
'rel': '.colorbox',
'title': function() { return $(this).attr("data-title"); }
});
}
window.addEventListener("load", function() {
GLightbox({touchNavigation: true, loop: true})
});
// make links to images inactive, except through the lightbox
document.querySelectorAll('.glightbox').forEach(function(element) {
element.addEventListener("click", function() {
return false;
});
});
// make links to images inactive, except through the colorbox
$('.colorbox').on("click.random-namespace", function() {
return window.hasColorBox;
})
</script>
</div>