Posterized_grey_80_normalscottymac

http://twitter.com/scottymac

jQuery Plugin: Excerpt Text + Show More

(function($) {

  $.fn.textExcerpt = function(options) {
    var settings = $.extend({}, $.fn.textExcerpt.defaults, options);

    return this.each(function() {

      var $container = $(this);
      var fullText = $container.text();
      var fullTextLength = fullText.length;
      var excerpt = fullText.substring(0, settings.excerptLength);
      var showMoreText = fullText.substring(settings.excerptLength);

      if (fullTextLength > (settings.excerptLength + settings.fudge)) {

        $container.html(excerpt + ('<span class="tl_show_more_text">' + showMoreText + '</span>'));

        $('<a id="tl_show_more">' + settings.revealLabel + '</a>')
          .appendTo($container)
          .toggle(function() {
            $container.find('span.tl_show_more_text').slideDown();
            $(this).text(settings.hideLabel);
          }, function() {
            $container.find('span.tl_show_more_text').slideUp();
            $(this).text(settings.revealLabel);
          });

        $container.find('span.tl_show_more_text').hide();

      }

    });

  };

  $.fn.textExcerpt.defaults = {
    excerptLength: 700,
    fudge: 100,
    revealLabel: "Show More",
    hideLabel: "Show Less"
  };

})( jQuery );
Reveal More
Added 25 days ago

jQuery Plugin Template

(function($) {
  
  $.fn.pluginName = function(options) {
    var settings = $.extend({}, $.fn.pluginName.defaults, options);

    return this.each(function() {
      //code
    });

  };

  $.fn.pluginName.defaults = {
    defaultName: "default"
  };

})(jQuery);
Reveal More
Added 26 days ago

Re: Support Touch Events?

// Support for touch events?
// This current fails under Chrome 5 because the Chrome team has enabled TouchEvents in the broswer for all devices
// Added check for Chrome; no touch events for you!
// More here: http://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/b20fb37936ea9196
// And here: http://code.google.com/p/chromium/issues/detail?id=36415#c11

function suportsTouchEvents(){
  if(/chrome/.test(navigator.userAgent.toLowerCase())) {
    return false;
  }
  if("createTouch" in document) {
    return true;
  }
  try{
    var event = document.createEvent("TouchEvent");
    return !!event.initTouchEvent;
  }catch(error){
    return false;
  }
}
Reveal More
Added 2 months ago

Support Touch Events?

// Support for touch events?
// This current fails under Chrome 5 because the Chrome team has enabled TouchEvents in the broswer for all devices
// More here: http://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/b20fb37936ea9196
// And here: http://code.google.com/p/chromium/issues/detail?id=36415#c11

function suportsTouchEvents(){
  if("createTouch" in document) {
    return true;
  }
  try{
    var event = document.createEvent("TouchEvent");
    return !!event.initTouchEvent;
  }catch(error){
    return false;
  }
}
Reveal More
Added 3 months ago

Duplicate MySQL DB directly to another

mysqldump --opt --compress --user=USERHERE --password=PWHERE --host=SOURCE.HOST.HERE SOURCE_DB_NAME | 
mysql --user=USERHERE --password=PWHERE --host=TARGET.HOST.HERE -D TARGET_DB_NAME -C TARGET_DB_NAME
Reveal More
Added 4 months ago

jQuery :above-the-fold Selector

// This is currently not playing nice in IE7 -- working on a fix


// $('div:above-the-fold') checks to see if the div is above the fold (of the window)
// $('li:last:above-the-fold(div)') checks to see if the last li is above the fold of the div

$.extend($.expr[':'], {
  "above-the-fold": function(a, i, m) {
    var container = m[3];
    var fold;
    if (typeof container === "undefined") {
      fold = $(window).height() + $(window).scrollTop();
    } else {
      if ($(container).length == 0 || $(container).offset().top == null) return false;
      fold = $(container).offset().top + $(container).height();
    }
    return fold >= $(a).offset().top;
  } 
});
Reveal More
Added 4 months ago

Disallow Text Selection

/* IE, FF/Moz, WebKit, CSS3 */
element.onselectstart = function() { return false; };
element.style.MozUserSelect = 'none';
element.style.WebkitUserSelect = 'none';
element.style.UserSelect = 'none';
Reveal More
Added 8 months ago

CSS Rotation Transform in Webkit

/* Nice little effect (webkit-only) from butterlabel.com */

#box {
  -webkit-box-shadow: 20px 20px 8px rgba(0,0,0,0.2);  
  -webkit-transform: rotate(-2deg);
  -webkit-transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
}

#box:hover {
  -webkit-transform: rotate(0deg);
  -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.8);
}
Reveal More
Added 9 months ago

Re: Re: nginx launchd item for mac os x

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>nginx</string>
<key>Program</key>
<string>/opt/nginx/sbin/nginx</string>
<key>KeepAlive</key>
<true/>
<key>StandardErrorPath</key>
<string>/opt/nginx/logs/error.log</string>
<key>LaunchOnlyOnce</key>
<true/>
</dict>
</plist>
Reveal More
Added 10 months ago

Asynchronous jQuery Image Loader Plugin

(function($) {
  
  $.fn.imageAsync = function(options) {
      var settings = $.extend({}, $.fn.imageAsync.defaults, options);

      return this.each(function() {
        
        if( $(this).attr('src') ) {
          
          var originalImageSrc = $(this).attr('src');
          var imgHeight = $(this + '[height]').attr('height') || settings.h; // bug in firefox: even if img has no height attr, it will come back as 16
          var imgWidth = $(this + '[width]').attr('width') || settings.w;

// bug in Firefox when setting src='' OR removing src attribute which causes a double request for an image
// A better idea would be to set source to a very small, 1x1 gif
                  
          var originalImage = $(this)
            .attr('src','dot-clear-1x1.gif') 
            .wrap('<span class="' + settings.progressClassName + '"></span>')
            .parent('span')
            .css('display','inline-block')
            .width(imgWidth)
            .height(imgHeight);

          var img = new Image();
          $(img)  
            .load(function() { originalImage.replaceWith(this); })
            .error(function() { })
            .attr('src', originalImageSrc)
            .attr('width', imgWidth)
            .attr('height', imgHeight);            
        
        }

     });

  }

  $.fn.imageAsync.defaults = {
		progressClassName: "progress"
	};

})(jQuery);
Reveal More
Added 11 months ago
Post Code