[planet-web] add lazyload support for images within posts
- From: Jeff Waugh <jdub src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [planet-web] add lazyload support for images within posts
- Date: Thu, 17 Sep 2009 16:46:51 +0000 (UTC)
commit ccf198dfa829d7d35f7131e8c11c61253b4e4f81
Author: Jeff Waugh <jdub bethesignal org>
Date: Fri Sep 18 02:45:47 2009 +1000
add lazyload support for images within posts
themes/gnome/index.html.tmpl | 92 +++++++++++++++++++++--------------------
web/jquery.lazyload.min.js | 1 +
2 files changed, 48 insertions(+), 45 deletions(-)
---
diff --git a/themes/gnome/index.html.tmpl b/themes/gnome/index.html.tmpl
index be5e425..28731b0 100644
--- a/themes/gnome/index.html.tmpl
+++ b/themes/gnome/index.html.tmpl
@@ -15,51 +15,8 @@
<link rel="stylesheet" href="http://blogs.gnome.org/wp-content/mu-plugins/bug-links/bug-links.css" type="text/css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
- <script type="text/javascript" src="http://planet.gnome.org/jquery.cookie.min.js"></script>
- <script type="text/javascript">
- function toggleFeeds() {
- $("#feedlist").slideToggle(function() {
- $("#feeds h3").toggleClass("open");
- });
- }
- $(document).ready(function() {
- var hidden = $.cookie("hidden") ? $.cookie("hidden").split(",") : new Array();
- // hide posts by disabled folks
- if (hidden.length > 0) for (i in hidden) {
- $("div." + hidden[i]).hide();
- }
- $("#feeds h3 a").click(function(e) {
- e.preventDefault();
- if ($("#feedlist ul").length == 0) {
- $("#feedlist").load('feeds.html', '', function(r,t,x) {
- $('<input type="checkbox" checked>')
- .change(function() {
- var nick = $(this).parent().attr("class");
- var i = $.inArray(nick, hidden);
- if ($(this).attr("checked")) {
- if (hidden[i]) hidden.splice(i, 1);
- $("div." + nick).show();
- } else {
- if (!hidden[i]) hidden[hidden.length] = nick;
- $("div." + nick).hide();
- }
- $.cookie("hidden", hidden.join(","),
- {expires: 365});
- })
- .prependTo("#feedlist ul li");
- // remove checks from disabled folks
- for (i in hidden) {
- $("#feedlist ul li." + hidden[i] + " input")
- .removeAttr("checked");
- }
- toggleFeeds();
- });
- } else {
- toggleFeeds();
- }
- });
- });
- </script>
+ <script type="text/javascript" src="http://planet.gnome.org/jquery.lazyload.min.js"></script>
+ <script type="text/javascript"><!-- $(function(){ $('.post img').lazyload(); }); --></script>
</head>
<body>
@@ -200,6 +157,51 @@ Hosted by <a href="http://www.redhat.com/">Red Hat</a>.</p>
</div> <!-- /page -->
+ <script type="text/javascript" src="http://planet.gnome.org/jquery.cookie.min.js"></script>
+ <script type="text/javascript">
+ function toggleFeeds() {
+ $("#feedlist").slideToggle(function() {
+ $("#feeds h3").toggleClass("open");
+ });
+ }
+ $(document).ready(function() {
+ var hidden = $.cookie("hidden") ? $.cookie("hidden").split(",") : new Array();
+ // hide posts by disabled folks
+ if (hidden.length > 0) for (i in hidden) {
+ $("div." + hidden[i]).hide();
+ }
+ $("#feeds h3 a").click(function(e) {
+ e.preventDefault();
+ if ($("#feedlist ul").length == 0) {
+ $("#feedlist").load('feeds.html', '', function(r,t,x) {
+ $('<input type="checkbox" checked>')
+ .change(function() {
+ var nick = $(this).parent().attr("class");
+ var i = $.inArray(nick, hidden);
+ if ($(this).attr("checked")) {
+ if (hidden[i]) hidden.splice(i, 1);
+ $("div." + nick).show();
+ } else {
+ if (!hidden[i]) hidden[hidden.length] = nick;
+ $("div." + nick).hide();
+ }
+ $.cookie("hidden", hidden.join(","),
+ {expires: 365});
+ })
+ .prependTo("#feedlist ul li");
+ // remove checks from disabled folks
+ for (i in hidden) {
+ $("#feedlist ul li." + hidden[i] + " input")
+ .removeAttr("checked");
+ }
+ toggleFeeds();
+ });
+ } else {
+ toggleFeeds();
+ }
+ });
+ });
+ </script>
</body>
diff --git a/web/jquery.lazyload.min.js b/web/jquery.lazyload.min.js
new file mode 100644
index 0000000..1193d0c
--- /dev/null
+++ b/web/jquery.lazyload.min.js
@@ -0,0 +1 @@
+(function(a){a.fn.lazyload=function(c){var d={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(c){a.extend(d,c)}var b=this;if("scroll"==d.event){a(d.container).bind("scroll",function(g){var e=0;b.each(function(){if(!a.belowthefold(this,d)&&!a.rightoffold(this,d)){a(this).trigger("appear")}else{if(e++>d.failurelimit){return false}}});var f=a.grep(b,function(h){return !h.loaded});b=a(f)})}return this.each(function(){var e=this;a(e).attr("original",a(e).attr("src"));if("scroll"!=d.event||a.belowthefold(e,d)||a.rightoffold(e,d)){if(d.placeholder){a(e).attr("src",d.placeholder)}else{a(e).removeAttr("src")}e.loaded=false}else{e.loaded=true}a(e).one("appear",function(){if(!this.loaded){a("<img />").bind("load",function(){a(e).hide().attr("src",a(e).attr("original"))[d.effect](d.effectspeed);e.loaded=true}).attr("src",a(e).attr("original"))}});if("scroll"!=d.event){a(e).bind(d.event,function(f){if(!e.loaded){a(e).trigger("appear")}})}})};a.belowthefold=fu
nction(c,d){if(d.container===undefined||d.container===window){var b=a(window).height()+a(window).scrollTop()}else{var b=a(d.container).offset().top+a(d.container).height()}return b<=a(c).offset().top-d.threshold};a.rightoffold=function(c,d){if(d.container===undefined||d.container===window){var b=a(window).width()+a(window).scrollLeft()}else{var b=a(d.container).offset().left+a(d.container).width()}return b<=a(c).offset().left-d.threshold};a.extend(a.expr[":"],{"below-the-fold":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"})})(jQuery);
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]