Issue #49, add scrollstop event support and use it to optimize document page image loading
This commit is contained in:
72
mayan/apps/main/static/packages/jquery.scrollstop.js
Normal file
72
mayan/apps/main/static/packages/jquery.scrollstop.js
Normal file
@@ -0,0 +1,72 @@
|
||||
/* http://james.padolsey.com/javascript/special-scroll-events-for-jquery/ */
|
||||
|
||||
(function(){
|
||||
|
||||
var special = jQuery.event.special,
|
||||
uid1 = "D" + (+new Date()),
|
||||
uid2 = "D" + (+new Date() + 1);
|
||||
|
||||
special.scrollstart = {
|
||||
setup: function() {
|
||||
|
||||
var timer,
|
||||
handler = function(evt) {
|
||||
|
||||
var _self = this,
|
||||
_args = arguments;
|
||||
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
} else {
|
||||
evt.type = "scrollstart";
|
||||
jQuery.event.dispatch.apply(_self, _args);
|
||||
}
|
||||
|
||||
timer = setTimeout( function(){
|
||||
timer = null;
|
||||
}, special.scrollstop.latency);
|
||||
|
||||
};
|
||||
|
||||
jQuery(this).bind("scroll", handler).data(uid1, handler);
|
||||
|
||||
},
|
||||
teardown: function(){
|
||||
jQuery(this).unbind( "scroll", jQuery(this).data(uid1) );
|
||||
}
|
||||
};
|
||||
|
||||
special.scrollstop = {
|
||||
latency: 300,
|
||||
setup: function() {
|
||||
|
||||
var timer,
|
||||
handler = function(evt) {
|
||||
|
||||
var _self = this,
|
||||
_args = arguments;
|
||||
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
|
||||
timer = setTimeout( function(){
|
||||
|
||||
timer = null;
|
||||
evt.type = "scrollstop";
|
||||
jQuery.event.dispatch.apply(_self, _args);
|
||||
|
||||
|
||||
}, special.scrollstop.latency);
|
||||
|
||||
};
|
||||
|
||||
jQuery(this).bind("scroll", handler).data(uid2, handler);
|
||||
|
||||
},
|
||||
teardown: function() {
|
||||
jQuery(this).unbind( "scroll", jQuery(this).data(uid2) );
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
@@ -116,6 +116,7 @@
|
||||
{% block web_theme_javascript %}
|
||||
<script type="text/javascript" src="{% static 'packages/jquery.scrollview.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'packages/jquery_lazyload-master/jquery.lazyload.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'packages/jquery.scrollstop.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'packages/fancyapps-fancyBox-18d1712/source/jquery.fancybox.pack.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'packages/fancyapps-fancyBox-18d1712/lib/jquery.mousewheel-3.0.6.pack.js' %}"></script>
|
||||
|
||||
@@ -242,10 +243,10 @@
|
||||
|
||||
$('img.lazy-load-carousel').lazyload({
|
||||
container: $(".carousel-container"),
|
||||
|
||||
appear: function(elements_left, settings) {
|
||||
load_document_image($(this));
|
||||
}
|
||||
},
|
||||
event: 'scrollstop'
|
||||
});
|
||||
|
||||
$('img.lazy-load-interactive').lazyload({
|
||||
|
||||
Reference in New Issue
Block a user