summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorMarkerov <mark.taiwan@gmail.com>2014-10-27 16:49:17 +0800
committerczaks <marcin@6irc.net>2016-05-05 12:05:45 +0200
commita723ff8e66e88f0e98b893275b8f7b1bbc990514 (patch)
tree050927917cb4b2c120c9c6fa0b5bcc211eeb8685 /js
parent26130c43eaaa660c292ecbf5cbc99f34a5f07be1 (diff)
Display inline image when it starts loading,
Rewrote inline-expanding.js to display full image as soon as it starts loading. Modified expand-all-images.js to work with the new change Moved max-width to style.css
Diffstat (limited to 'js')
-rw-r--r--js/expand-all-images.js2
-rw-r--r--js/inline-expanding.js51
2 files changed, 30 insertions, 23 deletions
diff --git a/js/expand-all-images.js b/js/expand-all-images.js
index 5545045c..82ea6340 100644
--- a/js/expand-all-images.js
+++ b/js/expand-all-images.js
@@ -34,7 +34,7 @@ onready(function(){
$('div#shrink-all-images a')
.text(_('Shrink all images'))
.click(function(){
- $('a img.post-image').each(function() {
+ $('a img.full-image').each(function() {
if ($(this).parent()[0].dataset.expanded)
$(this).parent().click();
});
diff --git a/js/inline-expanding.js b/js/inline-expanding.js
index 4d0cb03d..6692e8a1 100644
--- a/js/inline-expanding.js
+++ b/js/inline-expanding.js
@@ -18,13 +18,23 @@ onready(function(){
for (var i = 0; i < link.length; i++) {
if (typeof link[i] == "object" && link[i].childNodes && typeof link[i].childNodes[0] !== 'undefined' && link[i].childNodes[0].src && link[i].childNodes[0].className.match(/post-image/) && !link[i].className.match(/file/)) {
- link[i].childNodes[0].style.maxWidth = '98%';
link[i].onclick = function(e) {
+ var img;
+ var loadImage = function(img, thumb) {
+ if (img.naturalWidth) {
+ thumb.style.display = 'none';
+ img.style.display = '';
+ }
+ else {
+ return thumb.parentNode.timeout = setTimeout(loadImage, 30, img, thumb);
+ }
+ };
+
if (this.childNodes[0].className == 'hidden')
return false;
- if (e.which == 2 || e.metaKey)
+ if (e.which == 2 || e.ctrlKey) //open in new tab
return true;
- if (!this.dataset.src) {
+ if (!this.dataset.expanded) {
this.parentNode.removeAttribute('style');
this.dataset.expanded = 'true';
@@ -33,29 +43,26 @@ onready(function(){
this.childNodes[0].style.display = 'block';
}
- this.dataset.src= this.childNodes[0].src;
- this.dataset.width = this.childNodes[0].style.width;
- this.dataset.height = this.childNodes[0].style.height;
-
-
- this.childNodes[0].src = this.href;
- this.childNodes[0].style.width = 'auto';
- this.childNodes[0].style.height = 'auto';
this.childNodes[0].style.opacity = '0.4';
this.childNodes[0].style.filter = 'alpha(opacity=40)';
- this.childNodes[0].onload = function() {
- this.style.opacity = '';
- delete this.style.filter;
- }
+
+ img = document.createElement('img');
+ img.className = 'full-image';
+ img.setAttribute('src', this.href);
+ img.setAttribute('alt', 'Fullsized image');
+ img.style.display = 'none';
+ this.appendChild(img);
+
+ this.timeout = loadImage(img, this.childNodes[0]);
} else {
+ clearTimeout(this.timeout);
if (~this.parentNode.className.indexOf('multifile'))
this.parentNode.style.width = (parseInt(this.dataset.width)+40)+'px';
- this.childNodes[0].src = this.dataset.src;
- this.childNodes[0].style.width = this.dataset.width;
- this.childNodes[0].style.height = this.dataset.height;
+
+ this.childNodes[0].style.opacity = '';
+ this.childNodes[0].style.display = '';
+ this.removeChild(this.childNodes[1]);
delete this.dataset.expanded;
- delete this.dataset.src;
- delete this.childNodes[0].style.opacity;
delete this.childNodes[0].style.filter;
if (localStorage.no_animated_gif === 'true' && typeof unanimate_gif === 'function') {
@@ -63,10 +70,10 @@ onready(function(){
}
}
return false;
- }
+ };
}
}
- }
+ };
if (window.jQuery) {
$('div[id^="thread_"]').each(inline_expand_post);