Improve document page image lazy loading. Use font awesome spinner and CSS3 animation.
This commit is contained in:
@@ -70,10 +70,6 @@ body {
|
|||||||
border: 1px solid black;
|
border: 1px solid black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lazy-load-carousel-loaded {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mayan-page-wrapper-interactive {
|
.mayan-page-wrapper-interactive {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
@@ -94,6 +90,27 @@ body {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
img.lazy-load {
|
||||||
|
visibility: hidden;
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.lazy-load-carousel {
|
||||||
|
visibility: hidden;
|
||||||
|
width: 0px;
|
||||||
|
height: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tc {
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tc a {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.img-nolazyload {
|
.img-nolazyload {
|
||||||
border: 1px solid black;
|
border: 1px solid black;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 796 B |
@@ -19,7 +19,6 @@ function set_image_noninteractive(image) {
|
|||||||
function loadDocumentImage(image) {
|
function loadDocumentImage(image) {
|
||||||
$.get(image.attr('data-src'), function(result) {
|
$.get(image.attr('data-src'), function(result) {
|
||||||
image.attr('src', result.data);
|
image.attr('src', result.data);
|
||||||
image.addClass(image.attr('data-post-load-class'));
|
|
||||||
})
|
})
|
||||||
.fail(function() {
|
.fail(function() {
|
||||||
image.parent().parent().html('<span class="fa-stack fa-lg"><i class="fa fa-file-o fa-stack-2x"></i><i class="fa fa-times fa-stack-1x text-danger"></i></span>');
|
image.parent().parent().html('<span class="fa-stack fa-lg"><i class="fa fa-file-o fa-stack-2x"></i><i class="fa fa-times fa-stack-1x text-danger"></i></span>');
|
||||||
@@ -32,6 +31,16 @@ function dismissAlert(element) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
|
$('.lazy-load').on('load', function() {
|
||||||
|
$(this).siblings('.spinner').remove();
|
||||||
|
$(this).removeClass('lazy-load');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.lazy-load-carousel').on('load', function() {
|
||||||
|
$(this).siblings('.spinner').remove();
|
||||||
|
$(this).removeClass('lazy-load-carousel');
|
||||||
|
});
|
||||||
|
|
||||||
resizeFullHeight();
|
resizeFullHeight();
|
||||||
|
|
||||||
$(window).resize(function() {
|
$(window).resize(function() {
|
||||||
@@ -76,11 +85,18 @@ jQuery(document).ready(function() {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
})
|
})
|
||||||
|
|
||||||
$('img.lazy-load').lazyload();
|
$('img.lazy-load').lazyload({
|
||||||
|
appear: function(elements_left, settings) {
|
||||||
|
loadDocumentImage($(this));
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
$('img.lazy-load-carousel').lazyload({
|
$('img.lazy-load-carousel').lazyload({
|
||||||
threshold : 400,
|
appear: function(elements_left, settings) {
|
||||||
|
loadDocumentImage($(this));
|
||||||
|
},
|
||||||
container: $("#carousel-container"),
|
container: $("#carousel-container"),
|
||||||
|
threshold: 400
|
||||||
});
|
});
|
||||||
|
|
||||||
$('th input:checkbox').click(function(e) {
|
$('th input:checkbox').click(function(e) {
|
||||||
|
|||||||
@@ -682,7 +682,6 @@ class DocumentPage(models.Model):
|
|||||||
|
|
||||||
# Set sensible defaults if the argument is not specified or if the
|
# Set sensible defaults if the argument is not specified or if the
|
||||||
# argument is None
|
# argument is None
|
||||||
|
|
||||||
size = kwargs.get('size', setting_display_size.value) or setting_display_size.value
|
size = kwargs.get('size', setting_display_size.value) or setting_display_size.value
|
||||||
rotation = kwargs.get('rotation', DEFAULT_ROTATION) or DEFAULT_ROTATION
|
rotation = kwargs.get('rotation', DEFAULT_ROTATION) or DEFAULT_ROTATION
|
||||||
zoom_level = kwargs.get('zoom', DEFAULT_ZOOM_LEVEL) or DEFAULT_ZOOM_LEVEL
|
zoom_level = kwargs.get('zoom', DEFAULT_ZOOM_LEVEL) or DEFAULT_ZOOM_LEVEL
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ class DocumentPagesCarouselWidget(forms.widgets.Widget):
|
|||||||
fancybox_class='',
|
fancybox_class='',
|
||||||
image_class='lazy-load-carousel',
|
image_class='lazy-load-carousel',
|
||||||
size=setting_display_size.value,
|
size=setting_display_size.value,
|
||||||
post_load_class='lazy-load-carousel-loaded',
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
output.append(
|
output.append(
|
||||||
@@ -85,14 +84,14 @@ def document_link(document):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def document_page_html_widget(document_page, click_view=None, click_view_arguments=None, zoom=DEFAULT_ZOOM_LEVEL, rotation=DEFAULT_ROTATION, gallery_name=None, fancybox_class='fancybox', image_class='lazy-load', title=None, size=setting_thumbnail_size.value, nolazyload=False, post_load_class=None, disable_title_link=False, preview_click_view=None, click_view_querydict=None, click_view_arguments_lazy=None):
|
def document_page_html_widget(document_page, click_view=None, click_view_arguments=None, zoom=DEFAULT_ZOOM_LEVEL, rotation=DEFAULT_ROTATION, gallery_name=None, fancybox_class='fancybox', image_class='lazy-load', title=None, size=setting_thumbnail_size.value, nolazyload=False, disable_title_link=False, preview_click_view=None, click_view_querydict=None, click_view_arguments_lazy=None):
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
alt_text = _('Document page image')
|
alt_text = _('Document page image')
|
||||||
|
|
||||||
if not document_page:
|
if not document_page:
|
||||||
return mark_safe(
|
return mark_safe(
|
||||||
'<span class="fa-stack fa-lg"><i class="fa fa-file-o fa-stack-2x"></i><i class="fa fa-question fa-stack-1x text-danger"></i></span>'
|
'<div class="tc"><span class="fa-stack fa-lg"><i class="fa fa-file-o fa-stack-2x"></i><i class="fa fa-question fa-stack-1x text-danger"></i></span></div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
document = document_page.document
|
document = document_page.document
|
||||||
@@ -167,10 +166,11 @@ def document_page_html_widget(document_page, click_view=None, click_view_argumen
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
result.append(
|
result.append(
|
||||||
|
'<i class="spinner fa fa-spinner fa-pulse fa-3x fa-fw"></i> '
|
||||||
'<img class="thin_border {}" data-original="{}" '
|
'<img class="thin_border {}" data-original="{}" '
|
||||||
'data-post-load-class="{}" src="{}" alt="{}" />'.format(
|
'src="{}" alt="{}" />'.format(
|
||||||
image_class, preview_view, post_load_class,
|
image_class, preview_view,
|
||||||
static('appearance/images/loading.png'), alt_text
|
'', alt_text
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user