<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Think Vitamin &#187; jQuery</title>
	<atom:link href="http://thinkvitamin.com/category/dev/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkvitamin.com</link>
	<description>The Web Practitioner&#039;s Blog</description>
	<lastBuildDate>Thu, 09 Feb 2012 16:41:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Scrolling Made Fun</title>
		<link>http://thinkvitamin.com/design/scrolling-made-fun/</link>
		<comments>http://thinkvitamin.com/design/scrolling-made-fun/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 20:00:31 +0000</pubDate>
		<dc:creator>Mat Helme</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=18304</guid>
		<description><![CDATA[Just when you thought scrolling your web page was getting boring. Scrollorama has stepped the scroll game up with this remarkable jQuery Plugin. Scrollorama allows you to manipulate text when you scroll the page. You can do everything from Transitions to Zoom to Parallax. Check out the Scrollorama site to view some great examples and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://johnpolacek.github.com/scrollorama/"><img src="http://i.imgur.com/Ff5DF.jpg" alt="Scrollorama" /></a></p>
<p>Just when you thought scrolling your web page was getting boring. <a href="http://johnpolacek.github.com/scrollorama/">Scrollorama</a> has stepped the scroll game up with this remarkable jQuery Plugin. <a href="http://johnpolacek.github.com/scrollorama/">Scrollorama</a> allows you to manipulate text when you scroll the page. You can do everything from Transitions to Zoom to Parallax. Check out the <a href="http://johnpolacek.github.com/scrollorama/">Scrollorama</a> site to view some great examples and the plugin&#8217;s documentation.</p>
<p>This Plugin is great for landing pages and highly interactive web applications. Like CSS3 transitions, use your animations sparingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/design/scrolling-made-fun/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Responsive Video Embeds with FitVids.js</title>
		<link>http://thinkvitamin.com/design/responsive-video-embeds-with-fitvids-js/</link>
		<comments>http://thinkvitamin.com/design/responsive-video-embeds-with-fitvids-js/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 13:00:24 +0000</pubDate>
		<dc:creator>Nick Pettit</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=16161</guid>
		<description><![CDATA[My buddy Chris Coyer got together with a few of his friends from Paravel and created a wonderous new jQuery plugin called FitVids.js FitVids.js allows for Flash video embeds to work in a responsive layout. Typically, this is pretty difficult to achieve; often the video will get cut off, or it will have the incorrect [...]]]></description>
			<content:encoded><![CDATA[<p>My buddy <a href="http://twitter.com/chriscoyier">Chris Coyer</a> got together with a few of his friends from <a href="http://paravelinc.com/">Paravel</a> and created a wonderous new jQuery plugin called <a href="http://fitvidsjs.com/">FitVids.js</a></p>
<p><a href="http://fitvidsjs.com/"><img src="http://i.imgur.com/xCx46.png"></a></p>
<p>FitVids.js allows for Flash video embeds to work in a responsive layout. Typically, this is pretty difficult to achieve; often the video will get cut off, or it will have the incorrect aspect ratio. With FitVids.js, all of those problems fade away! Check out the video below to see FitVids.js in action.</p>
<p><object width="704" height="396"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=28523422&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=28523422&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="704" height="396"></embed></object></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/design/responsive-video-embeds-with-fitvids-js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Free Video: jQuery Custom Animations</title>
		<link>http://thinkvitamin.com/code/jquery/free-video-jquery-custom-animations/</link>
		<comments>http://thinkvitamin.com/code/jquery/free-video-jquery-custom-animations/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 16:06:40 +0000</pubDate>
		<dc:creator>Jim Hoskins</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=15677</guid>
		<description><![CDATA[In this 6 minute video, we look at how to create your own custom animations using the .animate() method. This video is from Think Vitamin Membership, a high-quality video training site, curated by us at Carsonified and Think Vitamin, with hundreds of short videos on topics like &#8230; Accessibility CSS3 Design Django HTML &#38; CSS HTML5 [...]]]></description>
			<content:encoded><![CDATA[<p>In this <a href="http://membership.thinkvitamin.com/library/jquery/animation/custom-animation-part-1?cid=106">6 minute video</a>, we look at how to create your own custom animations using the .animate() method. </p>
<p><a href="http://membership.thinkvitamin.com/library/jquery/animation/custom-animation-part-1?cid=106"><img src="http://i.imgur.com/RiioB.png" /></a></p>
<p>This video is from <a href="http://membership.thinkvitamin.com/?cid=106">Think Vitamin Membership</a>, a high-quality video training site, curated by us at Carsonified and Think Vitamin, with hundreds of short videos on topics like &#8230;</p>
<ul>
<li><a href="http://membership.thinkvitamin.com/library/accessibility/?cid=106">Accessibility</a></li>
<li><a href="http://membership.thinkvitamin.com/library/css3/?cid=106">CSS3</a></li>
<li><a href="http://membership.thinkvitamin.com/library/design/?cid=106">Design</a></li>
<li><a href="http://membership.thinkvitamin.com/library/design/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/django/?cid=106">Django</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">HTML &amp; CSS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html5/?cid=106">HTML5</a></li>
<li><a href="http://membership.thinkvitamin.com/library/javascript/?cid=106">JavaScript</a></li>
<li><a href="http://membership.thinkvitamin.com/library/jquery/?cid=106">jQuery</a></li>
<li><a href="http://membership.thinkvitamin.com/library/nosql/?cid=106">NoSQL</a></li>
<li><a href="http://membership.thinkvitamin.com/library/php/?cid=106">PHP</a></li>
<li><a href="https://membership.thinkvitamin.com/library/responsive-web-design/?cid=106">Responsive Web Design</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby/?cid=106">Ruby</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby-on-rails/?cid=106">Ruby on Rails</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">SASS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ux/?cid=106">UX</a></li>
<li><a href="http://membership.thinkvitamin.com/library/version-control?cid=106">Version Control</a></li>
<li><a href="http://membership.thinkvitamin.com/library/wordpress?cid=106">WordPress Theme Design</a></li>
</ul>
<p>New videos are added every week, so it&#8217;s a great way to stay up-to-date on all the latest technology and methods. Browse the entire <a href="http://membership.thinkvitamin.com/library/?cid=106">library of videos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/jquery/free-video-jquery-custom-animations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Quick Tips: Easy jQuery Documentation and Responsive Scalable Headlines</title>
		<link>http://thinkvitamin.com/design/typography/quick-tips-easy-jquery-documentation-and-responsive-scalable-headlines/</link>
		<comments>http://thinkvitamin.com/design/typography/quick-tips-easy-jquery-documentation-and-responsive-scalable-headlines/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 00:31:47 +0000</pubDate>
		<dc:creator>Ryan Carson</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Typography]]></category>
		<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=14309</guid>
		<description><![CDATA[Scalable Headlines for your responsive layout by @allison_house If you want scalable headlines on your fluid or responsive layout, look no further than FitText. It’s a jQuery plugin that makes big type flexible, forcing it to fill the width of the containing parent element. Easy jQuery documentation by @commondream It&#8217;s impossible to remember every available method [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://img.skitch.com/20110610-mndqutmtss7drrnn9xj6wp4r4t.png" alt="Screengrab of the red site for FitText" /></p>
<h3>Scalable Headlines for your responsive layout</h3>
<p>by @<a href="http://twitter.com/allison_house">allison_house</a></p>
<p>If you want scalable headlines on your fluid or responsive layout, look no further than <a href="http://fittextjs.com/">FitText</a>. It’s a jQuery plugin that makes big type flexible, forcing it to fill the width of the containing parent element.</p>
<h3>Easy jQuery documentation</h3>
<p>by @<a href="http://twitter.com/commondream">commondream</a></p>
<p><a href="http://twitter.com/commondream"></a>It&#8217;s impossible to remember every available method in jQuery, so when I&#8217;m working on front end code using jQuery I&#8217;m usually digging through their documentation as well. Instead of using the jQuery site, though, I browse jQuery&#8217;s documentation on <a href="http://jqapi.com/">jqapi.com</a>. It&#8217;s a site that format&#8217;s jQuery&#8217;s documentation much more cleanly and provides a search that&#8217;s really easy to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/design/typography/quick-tips-easy-jquery-documentation-and-responsive-scalable-headlines/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Handlebars.js Part 3: Tips and Tricks</title>
		<link>http://thinkvitamin.com/code/handlebars-js-part-3-tips-and-tricks/</link>
		<comments>http://thinkvitamin.com/code/handlebars-js-part-3-tips-and-tricks/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 12:54:58 +0000</pubDate>
		<dc:creator>Alan Johnson</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[HTML and XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=13351</guid>
		<description><![CDATA[So we&#8217;re about done learning about Handlebars.js, but I&#8217;ve got a few examples of tricks I&#8217;ve found while using Handlebars that I figured I would share. If you haven&#8217;t read them yet, I&#8217;d highly recommend reading Part 1 and Part 2 of the series on Handlebars before you dive into this post. The debug Helper [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://thinkvitamin.com/wp-content/uploads/2011/03/handlebars.png" alt="" title="handlebars" class="alignnone size-full wp-image-12905" /></p>
<p>So we&#8217;re about done learning about Handlebars.js, but I&#8217;ve got a few examples of tricks I&#8217;ve found while using Handlebars that I figured I would share. If you haven&#8217;t read them yet, I&#8217;d highly recommend reading <a href="http://thinkvitamin.com/code/getting-started-with-handlebars-js/">Part 1</a> and <a href="http://thinkvitamin.com/code/handlebars-js-part-2-partials-and-helpers/">Part 2</a> of the series on Handlebars before you dive into this post.<br />
<span id="more-13351"></span></p>
<h3>The <code>debug</code> Helper</h3>
<p>It can be easy at times to get confused about where you are in the stack in a Handlebars.js template. I usually keep a <code>debug</code> helper around to help me figure that out.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">Handlebars.<span style="color: #660066;">registerHelper</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;debug&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>optionalValue<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Current Context&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;====================&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>optionalValue<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;====================&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span>optionalValue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>You could then use that helper in any template like:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>debug<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>or like:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span>debug someValue<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>and you&#8217;ll see output in the JavaScript console letting you know what&#8217;s going on:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">Current Context
====================
email: &quot;alan@test.com&quot;
first_name: &quot;Alan&quot;
last_name: &quot;Johnson&quot;
member_since: &quot;Mar 25, 2011&quot;
phone: &quot;1234567890&quot;
stripeClass: &quot;even&quot;
__proto__: Object
Value
====================
Alan</pre></td></tr></table></div>

<h3>A jQuery Plugin</h3>
<p>It tends to be a pretty regular pattern with Handlebars to compile a template, process it with some data, and then fill a DOM element with the results. Here&#8217;s a quick jQuery plugin that does all of that for you:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;What's Up?&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;div id=&quot;content&quot;&gt;
      This is where the content goes!
    &lt;/div&gt;
    &lt;script id=&quot;template&quot; type=&quot;text/handlebars&quot;&gt;
      Hello, {{name}}!
    &lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
    &lt;script src=&quot;handlebars-0.9.0.pre.5.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
      (function($) {
        var compiled = {};
        $.fn.handlebars = function(template, data) {
          if (template instanceof jQuery) {
            template = $(template).html();
          }
&nbsp;
          compiled[template] = Handlebars.compile(template);
          this.html(compiled[template](data));
        };
      })(jQuery);
&nbsp;
      $('#content').handlebars($('#template'), { name: &quot;Alan&quot; });
    &lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<h3>Updating More Than Just The Template Area</h3>
<p>A lot of dynamic applications tend to have a layout that generally stays the same regardless of the template you&#8217;re displaying, and then a content area that shows the template that you&#8217;re looking at. Maybe there&#8217;s a sidebar with some navigation in it that generally stays the same, but each time you update the main content area you also need to update the title on the page. It&#8217;s pretty easy to cheat a bit with Handlebars to make that work. Handlebars helpers are allowed to not return anything, in which case they won&#8217;t add anything to the template output. You can use a helper that doesn&#8217;t return anything to update other parts of the page!</p>
<p>Imagine a site that has a structure something like this:</p>
<p><img src="http://thinkvitamin.com/wp-content/uploads/2011/04/Untitleddrawing.png" alt="Sample App Layout" title="Sample App Layout" width="705" height="529" class="alignnone size-full wp-image-13354" /></p>
<p>And maybe the markup looks like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;body&gt;
  &lt;h1&gt;Title&lt;/h1&gt;
  &lt;div id=&quot;nav-sidebar&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;Links&lt;/li&gt;
      &lt;li&gt;Go&lt;/li&gt;
      &lt;li&gt;Here&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div id=&quot;content&quot;&gt;
  	Content goes here!
  &lt;/div&gt;
&lt;/body&gt;</pre></td></tr></table></div>

<p>Here&#8217;s a quick helper that will let you update the <code>h1</code> for the title each time you apply content to the main content area:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">Handlebars.<span style="color: #660066;">registerHelper</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;title&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>fn<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'h1'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>fn<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>And finally, a template that uses the helper:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">  {{#title}}Details for {{name}}{{/title}}
&nbsp;
  &lt;div class=&quot;user-details&quot;&gt;
    ...user details template stuff goes here...
  &lt;/div&gt;</pre></td></tr></table></div>

<p>When the template above is run, it will call the title helper, but since the title helper just returns an empty string, it won&#8217;t add anything to the template output. It will, though, use jQuery to update the <code>h1</code> element for the page&#8217;s title.</p>
<h3>Wrapping Up</h3>
<p>I think this about wraps up the series on Handlebars.js. It&#8217;s been fun to share Handlebars.js with everyone, and to hear about the apps you&#8217;re writing with Handlebars.js. Please let me know in the comments if there&#8217;s anything else relating to Handlebars.js that you&#8217;d be interested in hearing about, or if you have any questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/handlebars-js-part-3-tips-and-tricks/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Yahoo Query Language jQuery Tutorial</title>
		<link>http://thinkvitamin.com/code/yahoo-query-language-jquery-tutorial/</link>
		<comments>http://thinkvitamin.com/code/yahoo-query-language-jquery-tutorial/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 09:28:28 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=12338</guid>
		<description><![CDATA[In this 9 minute video we look at how to use YQL&#8217;s JSONP capabilities to make web service calls directly from the browser, with no need to use your web server as a proxy. We look at how to use the most basic JSONP techniques, and how to write your own convenience methods for jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>In this <a href="http://membership.thinkvitamin.com/library/tools/yql/javascriptjquery-example" title="Tools: YQL: JavaScript/jQuery Example // Think Vitamin Membership">9 minute video</a> we look at how to use YQL&#8217;s JSONP capabilities to make web service calls directly from the browser, with no need to use your web server as a proxy. We look at how to use the most basic JSONP techniques, and how to write your own convenience methods for jQuery to make executing YQL queries a snap. </p>
<p><a href="http://membership.thinkvitamin.com/library/tools/yql/javascriptjquery-example" title="Tools: YQL: JavaScript/jQuery Example // Think Vitamin Membership"><img src="https://img.skitch.com/20110221-d5a57hb9xcnk2jpeu7hm3ggn9k.jpg" /></a></p>
<p>This video is from <a href="http://membership.thinkvitamin.com/?cid=106">Think Vitamin Membership</a>, a high-quality video training site, curated by us at Carsonified and Think Vitamin, with hundreds of short videos on topics like &#8230;</p>
<ul>
<li><a href="http://membership.thinkvitamin.com/library/accessibility/?cid=106">Accessibility</a></li>
<li><a href="http://membership.thinkvitamin.com/library/css3/?cid=106">CSS3</a></li>
<li><a href="http://membership.thinkvitamin.com/library/design/?cid=106">Design</a></li>
<li><a href="http://membership.thinkvitamin.com/library/design/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/django/?cid=106">Django</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">HTML &amp; CSS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html5/?cid=106">HTML5</a></li>
<li><a href="http://membership.thinkvitamin.com/library/javascript/?cid=106">JavaScript</a></li>
<li><a href="http://membership.thinkvitamin.com/library/jquery/?cid=106">jQuery</a></li>
<li><a href="http://membership.thinkvitamin.com/library/nosql/?cid=106">NoSQL</a></li>
<li><a href="http://membership.thinkvitamin.com/library/php/?cid=106">PHP</a></li>
<li><a href="https://membership.thinkvitamin.com/library/responsive-web-design/?cid=106">Responsive Web Design</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby/?cid=106">Ruby</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby-on-rails/?cid=106">Ruby on Rails</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">SASS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ux/?cid=106">UX</a></li>
<li><a href="http://membership.thinkvitamin.com/library/version-control?cid=106">Version Control</a></li>
<li><a href="http://membership.thinkvitamin.com/library/wordpress?cid=106">WordPress Theme Design</a></li>
</ul>
<p>10 new videos are added every week, so it&#8217;s a great way to stay up-to-date on all the latest technology and methods. Browse the entire <a href="http://membership.thinkvitamin.com/library/?cid=106">library of videos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/yahoo-query-language-jquery-tutorial/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>jQuery Animation Tutorial</title>
		<link>http://thinkvitamin.com/code/jquery-animation-tutorial/</link>
		<comments>http://thinkvitamin.com/code/jquery-animation-tutorial/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 16:00:40 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=11519</guid>
		<description><![CDATA[In this 6 minute video we look at how to create your own custom animations using the jQuery .animate() method. This video is from Think Vitamin Membership, a high-quality video training site, curated by us at Carsonified and Think Vitamin, with hundreds of short videos on topics like &#8230; Accessibility CSS3 Design Django HTML &#38; CSS [...]]]></description>
			<content:encoded><![CDATA[<p>In this <a href="http://membership.thinkvitamin.com/library/jquery/animation/custom-animation-part-1">6 minute video</a> we look at how to create your own custom animations using the jQuery .animate() method.</p>
<p><a href="http://membership.thinkvitamin.com/library/jquery/animation/custom-animation-part-1"><img src="https://img.skitch.com/20110117-kp4yykmrrc219u6m3ej127tx3p.jpg" alt="" /></a></p>
<p>This video is from <a href="http://membership.thinkvitamin.com/?cid=106">Think Vitamin Membership</a>, a high-quality video training site, curated by us at Carsonified and Think Vitamin, with hundreds of short videos on topics like &#8230;</p>
<ul>
<li><a href="http://membership.thinkvitamin.com/library/accessibility/?cid=106">Accessibility</a></li>
<li><a href="http://membership.thinkvitamin.com/library/css3/?cid=106">CSS3</a></li>
<li><a href="http://membership.thinkvitamin.com/library/design/?cid=106">Design</a></li>
<li><a href="http://membership.thinkvitamin.com/library/design/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/django/?cid=106">Django</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">HTML &amp; CSS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html5/?cid=106">HTML5</a></li>
<li><a href="http://membership.thinkvitamin.com/library/javascript/?cid=106">JavaScript</a></li>
<li><a href="http://membership.thinkvitamin.com/library/jquery/?cid=106">jQuery</a></li>
<li><a href="http://membership.thinkvitamin.com/library/nosql/?cid=106">NoSQL</a></li>
<li><a href="http://membership.thinkvitamin.com/library/php/?cid=106">PHP</a></li>
<li><a href="https://membership.thinkvitamin.com/library/responsive-web-design/?cid=106">Responsive Web Design</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby/?cid=106">Ruby</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby-on-rails/?cid=106">Ruby on Rails</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">SASS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ux/?cid=106">UX</a></li>
<li><a href="http://membership.thinkvitamin.com/library/version-control?cid=106">Version Control</a></li>
<li><a href="http://membership.thinkvitamin.com/library/wordpress?cid=106">WordPress Theme Design</a></li>
</ul>
<p>10 new videos are added every week, so it&#8217;s a great way to stay up-to-date on all the latest technology and methods. Browse the entire <a href="http://membership.thinkvitamin.com/library/?cid=106">library of videos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/jquery-animation-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Events Tutorial</title>
		<link>http://thinkvitamin.com/code/jquery/jquery-events-tutorial/</link>
		<comments>http://thinkvitamin.com/code/jquery/jquery-events-tutorial/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 08:35:10 +0000</pubDate>
		<dc:creator>Ryan Carson</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=10613</guid>
		<description><![CDATA[In this 5-minute jQuery Events video tutorial, we take a look at how jQuery makes handling events a breeze. This video is from Think Vitamin Membership, a high-quality video training site, curated by us at Carsonified and Think Vitamin, with hundreds of short videos on topics like &#8230; Accessibility CSS3 Design Django HTML &#38; CSS HTML5 JavaScript jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>In this 5-minute <a href="http://membership.thinkvitamin.com/library/jquery/getting-started/events-part-1?cid=106">jQuery Events video tutorial</a>, we take a look at how jQuery makes handling events a breeze.</p>
<p><a href="http://membership.thinkvitamin.com/library/jquery/getting-started/events-part-1?cid=106"><img src="http://img.skitch.com/20101209-kj5yadjngess4u9qmkgpp9ktc8.jpg" alt="Screengrab of video teaching jQuery Events" /></a></p>
<p>This video is from <a href="http://membership.thinkvitamin.com/?cid=106">Think Vitamin Membership</a>, a high-quality video training site, curated by us at Carsonified and Think Vitamin, with hundreds of short videos on topics like &#8230;</p>
<ul>
<li><a href="http://membership.thinkvitamin.com/library/accessibility/?cid=106">Accessibility</a></li>
<li><a href="http://membership.thinkvitamin.com/library/accessibility/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/css3/?cid=106">CSS3</a></li>
<li><a href="http://membership.thinkvitamin.com/library/css3/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/design/?cid=106">Design</a></li>
<li><a href="http://membership.thinkvitamin.com/library/design/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/django/?cid=106">Django</a></li>
<li><a href="http://membership.thinkvitamin.com/library/django/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">HTML &amp; CSS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/html5/?cid=106">HTML5</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html5/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/javascript/?cid=106">JavaScript</a></li>
<li><a href="http://membership.thinkvitamin.com/library/javascript/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/jquery/?cid=106">jQuery</a></li>
<li><a href="http://membership.thinkvitamin.com/library/jquery/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/nosql/?cid=106">NoSQL</a></li>
<li><a href="http://membership.thinkvitamin.com/library/nosql/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/php/?cid=106">PHP</a></li>
<li><a href="http://membership.thinkvitamin.com/library/php/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/ruby/?cid=106">Ruby</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/ruby-on-rails/?cid=106">Ruby on Rails</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ruby-on-rails/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106">SASS</a></li>
<li><a href="http://membership.thinkvitamin.com/library/html-css/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/ux/?cid=106">UX</a></li>
<li><a href="http://membership.thinkvitamin.com/library/ux/?cid=106"></a><a href="http://membership.thinkvitamin.com/library/version-control?cid=106">Version Control</a></li>
<li><a href="http://membership.thinkvitamin.com/library/wordpress?cid=106">WordPress Theme Design</a></li>
</ul>
<p>10 new videos are added every week, so it&#8217;s a great way to stay up-to-date on all the latest technology and methods. Browse the entire <a href="http://membership.thinkvitamin.com/library/?cid=106">library of videos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/jquery/jquery-events-tutorial/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Slides.js &#8211; New jQuery Slideshow</title>
		<link>http://thinkvitamin.com/code/slides-js-new-jquery-slideshow/</link>
		<comments>http://thinkvitamin.com/code/slides-js-new-jquery-slideshow/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 14:51:15 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=10138</guid>
		<description><![CDATA[Slides is a new simple slideshow plugin for jQuery including features like looping, auto play, fade or slide transition effects, crossfading, image preloading, auto generated pagination and more. If you have any other slideshow recommendations please let us know in the comments.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.slidesjs.com/">Slides</a> is a new simple slideshow plugin for jQuery including features like looping, auto play, fade or slide transition effects, crossfading, image preloading, auto generated pagination and more. </p>
<p><a href="http://www.slidesjs.com/"><img src="http://thinkvitamin.com/wp-content/uploads/2010/11/slidejs.jpg" alt="" title="slidejs" /></a></p>
<p>If you have any other slideshow recommendations please let us know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/slides-js-new-jquery-slideshow/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>jQuery: Custom Animation Part 1  [Video Tutorial]</title>
		<link>http://thinkvitamin.com/code/jquery-custom-animation-part-1/</link>
		<comments>http://thinkvitamin.com/code/jquery-custom-animation-part-1/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 14:34:11 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=9352</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object width="705" height="421"><param name="movie" value="http://www.youtube.com/v/XcH5yT1y8QQ?fs=1&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/XcH5yT1y8QQ?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="705" height="421"></embed></object><span id="more-9352"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/jquery-custom-animation-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery Animation Part 1 [Video Tutorial]</title>
		<link>http://thinkvitamin.com/code/jquery-animation-part-1-video-tutorial/</link>
		<comments>http://thinkvitamin.com/code/jquery-animation-part-1-video-tutorial/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 15:26:46 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=6709</guid>
		<description><![CDATA[Today our free helping from the Think Vitamin Membership video library looks at jQuery Animation. In part 1 of this series Jim will show you how to get started with &#8220;show and hide&#8221; animations and lead you on to more advanced techniques.]]></description>
			<content:encoded><![CDATA[<p>Today our free helping from the <a href="http://membership.thinkvitamin.com/">Think Vitamin Membership</a> video library looks at <a href="http://membership.thinkvitamin.com/library/jquery/animation/effects-part-1">jQuery Animation</a>.</p>
<p>In part 1 of this series Jim will show you how to get started with &#8220;show and hide&#8221; animations and lead you on to more advanced techniques. </p>
<p><!-- Start of Brightcove Player --></p>
<div style="display:none">
</div>
<p><!--<br />
By use of this code snippet, I agree to the Brightcove Publisher T and C<br />
found at https://accounts.brightcove.com/en/terms-and-conditions/.<br />
--></p>
<p><script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script></p>
<p><object id="myExperience96953906001" class="BrightcoveExperience"><param name="bgcolor" value="#FFFFFF" /><param name="width" value="705" /><param name="height" value="388" /><param name="playerID" value="89176682001" /><param name="playerKey" value="AQ%2E%2E,AAAAFEediwk%2E,2euW9ZlTxZAx4lLOZ1DtKcbmqEvxwq5q" /><param name="isVid" value="true" /><param name="isUI" value="true" /><param name="dynamicStreaming" value="true" /><param name="@videoPlayer" value="96953906001" /></object></p>
<p><!--<br />
This script tag will cause the Brightcove Players defined above it to be created as soon<br />
as the line is read by the browser. If you wish to have the player instantiated only after<br />
the rest of the HTML is processed and the page load is complete, remove the line.<br />
--><br />
<script type="text/javascript">brightcove.createExperiences();</script></p>
<p><!-- End of Brightcove Player --></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/jquery-animation-part-1-video-tutorial/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Around the Web: Design is History, jQuery, &amp; Experience</title>
		<link>http://thinkvitamin.com/design/around-the-web-design-is-history-jquery-experience/</link>
		<comments>http://thinkvitamin.com/design/around-the-web-design-is-history-jquery-experience/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 18:00:02 +0000</pubDate>
		<dc:creator>Chrissie Brodigan</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://thinkvitamin.com/?p=6667</guid>
		<description><![CDATA[Hey there! It&#8217;s Monday, so this roundup is devoted to all things web design (ux, photo, illustration, art, graphics, CSS, jQuery, tutorials, and more). Some links are newsworthy, some retweeted across Twitter, and others just meet our “awesomeness” requirement, and regardless we hope you’ll enjoy them. Without further delay: Design the Experience (via Drawar) jQuery, [...]]]></description>
			<content:encoded><![CDATA[<p>Hey there! It&#8217;s Monday, so this roundup is devoted to all things web design (ux, photo, illustration, art, graphics, CSS, jQuery, tutorials, and more). Some links are newsworthy, some retweeted across Twitter, and others just meet our “awesomeness” requirement, and regardless we hope you’ll enjoy them. Without further delay:</p>
<ul>
<li><a href="http://www.drawar.com/articles/design-the-experience" target="_blank">Design the Experience</a> (via Drawar)</li>
<li><a href="http://msdn.microsoft.com/en-us/scriptjunkie/ff848255.aspx" target="_blank">jQuery, A Designer&#8217;s Perspective</a> (via Script Junkie &amp; <a href="http://twitter.com/emilylewis/" target="_blank">@emilylewis</a>)</li>
<li>Super shareworthy!<a href="http://www.designishistory.com/this-site/" target="_blank"> Design Is History,</a> a teaching tool for young designers, part of <a href="http://www.dangerdom.com/" target="_blank">Dominic Flask&#8217;s</a> graduate thesis &#8220;</li>
<li><a href="http://www.mcsweeneys.net/2010/7/13miller.html" target="_blank">&#8220;Tweet&#8221; </a>by Oyl Miller (via McSweeny&#8217;s)</li>
<li><a href="http://lifehacker.com/5585737/a-bettery-way-to-ask-people-to-be-creative" target="_blank">A Better Way to Ask People to be Creative</a> (via Lifehacker)</li>
</ul>
<div><em>Wildcard:</em> Paul Graham&#8217;s latest essay, <a href="http://www.paulgraham.com/selfindulgence.html" target="_blank">How to Lose Time &amp; Money</a></div>
<p>Best, Chrissie (<a href="http://twitter.com/tenaciouscb" target="_blank">@tenaciouscb</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/design/around-the-web-design-is-history-jquery-experience/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Getting Started with jQuery [Video Tutorial]</title>
		<link>http://thinkvitamin.com/code/getting-started-with-jquery-video-tutorial/</link>
		<comments>http://thinkvitamin.com/code/getting-started-with-jquery-video-tutorial/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 13:15:15 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://carsonified.com/?p=6462</guid>
		<description><![CDATA[Today&#8217;s free helping from the Think Vitamin Membership video library looks at how to use jQuery. In this 6 and a half minute video, Jim looks at what jQuery is and how to get it running in your page, explores the different types of source files available, and runs some simple code to test jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s free helping from the <a href="http://membership.thinkvitamin.com/">Think Vitamin Membership</a> video library looks at how to use <a href="http://membership.thinkvitamin.com/library/jquery/getting-started/introduction">jQuery</a>. </p>
<p>In this 6 and a half minute video, Jim looks at what jQuery is and how to get it running in your page, explores the different types of source files available, and runs some simple code to test jQuery out. </p>
<p><!-- Start of Brightcove Player --></p>
<div style="display:none">
</div>
<p><!--<br />
By use of this code snippet, I agree to the Brightcove Publisher T and C<br />
found at https://accounts.brightcove.com/en/terms-and-conditions/.<br />
--></p>
<p><script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script></p>
<p><object id="myExperience90191332001" class="BrightcoveExperience"><param name="bgcolor" value="#FFFFFF" /><param name="width" value="705" /><param name="height" value="388" /><param name="playerID" value="89176682001" /><param name="playerKey" value="AQ%2E%2E,AAAAFEediwk%2E,2euW9ZlTxZAx4lLOZ1DtKcbmqEvxwq5q" /><param name="isVid" value="true" /><param name="isUI" value="true" /><param name="dynamicStreaming" value="true" /><param name="@videoPlayer" value="90191332001" /></object></p>
<p><!--<br />
This script tag will cause the Brightcove Players defined above it to be created as soon<br />
as the line is read by the browser. If you wish to have the player instantiated only after<br />
the rest of the HTML is processed and the page load is complete, remove the line.<br />
--><br />
<script type="text/javascript">brightcove.createExperiences();</script></p>
<p><!-- End of Brightcove Player --></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/getting-started-with-jquery-video-tutorial/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to Use jQuery Selectors [Tutorial Video]</title>
		<link>http://thinkvitamin.com/code/how-to-use-jquery-selectors-tutorial-video/</link>
		<comments>http://thinkvitamin.com/code/how-to-use-jquery-selectors-tutorial-video/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 07:10:47 +0000</pubDate>
		<dc:creator>Ryan Carson</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://carsonified.com/?p=6105</guid>
		<description><![CDATA[We&#8217;ve decided to release one more video from the Think Vitamin Membership Training Library for you guys :) It&#8217;s launching next week, so get ready! If you missed the Advanced CSS3 Box-Shadow video, feel free to check it out as well (the feedback has been amazing &#8211; everyone seems to love them). Here is a [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve decided to release one more video from the <a href="http://membership.thinkvitamin.com">Think Vitamin Membership</a> Training Library for you guys :) It&#8217;s launching next week, so get ready!</p>
<p>If you missed the <a href="http://carsonified.com/blog/design/css3-design/advanced-css3-box-shadow-techniques">Advanced CSS3 Box-Shadow</a> video, feel free to check it out as well (the feedback has been amazing &#8211; everyone seems to love them).</p>
<p><img src="http://img.skitch.com/20100602-r5j3yt989s7nacfy46ktuw52wi.png" alt="Freeze frame from the intro of the video, showing a vitamins around the Think Vitamin Membership logo" /></p>
<p>Here is a seven minute video that will teach you how to use jQuery Selectors on your site. We will be adding 70+ videos like this <em>per month</em> to the Think Vitamin Membership Training Course Library. You can get access to all the videos for less than $1 per day.</p>
<p>The next 10 people to signup at <a href="http://membership.thinkvitamin.com">membership.thinkvitamin.com</a> will receive 50% off their first month. Yippee! :)</p>
<ul>
<li>View in HD</li>
<li>View on iPhone or Android</li>
<li>View on iPad</li>
</ul>
<p><img src="http://img.skitch.com/20100602-mhd1dcamsrf92rbni1dk5j4e9r.png" alt="screengrab from jQuery Selector video" /></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/how-to-use-jquery-selectors-tutorial-video/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>John Resig on Advanced Javascript to Improve your Web App</title>
		<link>http://thinkvitamin.com/code/john-resig-on-advanced-javascript-to-improve-your-web-app/</link>
		<comments>http://thinkvitamin.com/code/john-resig-on-advanced-javascript-to-improve-your-web-app/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 10:54:29 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://carsonified.com/?p=5394</guid>
		<description><![CDATA[In February 2010 John Resig, the creator and lead developer of the jQuery JavaScript library, spoke at the annual Future of Web Apps Miami conference. During this 25 minute talk John outlines many of the new features and ideas behind jQuery 1.4. A full transcript is available below. Watch this and other videos directly on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://carsonified.com/?administer_redirect_7=http://futureofwebapps.com/dublin-2010/?utm_source=thinkvitamin&amp;utm_medium=banner&amp;utm_campaign=geoplanet"><img class=" alignnone" title="Future of Web Apps Dublin 2010" src="http://carsonified.com/wp-content/themes/carsonified/img/adverts/fowa_dublin_2010_side.jpg" alt="Future of Web Apps Dublin 2010" width="470" height="60" /></a></p>
<p>In February 2010 <a href="http://ejohn.org/">John Resig</a>, the creator and lead developer of the <a href="http://jquery.com">jQuery JavaScript library</a>, spoke at the annual <a href="http://futureofwebapps.com">Future of Web Apps</a> Miami conference. During this 25 minute talk John outlines many of the new features and ideas behind jQuery 1.4. A full transcript is available below.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="470" height="264" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10593806&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="470" height="264" src="http://vimeo.com/moogaloop.swf?clip_id=10593806&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/channels/carsonifiedtv">Watch this and other videos directly on our Vimeo Channel</a><br />
<span id="more-5394"></span></p>
<h3>Transcript</h3>
<p>Thanks. I want to thank everyone for having me here today. I really appreciate it. I wanted to talk about a couple of things today, mostly around jQuery itself, but hopefully generic enough that in case you’re not using jQuery at least it will still be applicable to your web apps.</p>
<p>There are a couple of techniques I want to look at that hopefully all of you encounter when developing web applications. You always want to improve the performance of your JavaScript code. You always want to improve the accessibility, and you want to make your code simpler. Finally, you want to make the design process much easier.</p>
<p>When it comes to performance, there are a number of things in JavaScript, three of which are fairly easy, but especially so in jQuery. One is event delegation. Event delegation is a technique that routes around the traditional method of binding events. What I mean by that is typically when you attach a click handler to an element, you’re attaching a click to every single element that you want to attach to. This can be really costly. If you have a table with a couple of thousand table cells in it, that is going to be a lot of click handlers to attach.</p>
<p>Event delegation is whenever you attach a handler to some parent element up the tree, for example you attach it to the table itself rather than each individual table cell, and this takes advantage of the browser’s native event bubbling. What that means is when the user clicks on the table cell, the event will bubble up the tree, up to the table, and you can now handle the even there. That’s event delegation.</p>
<p>In this way, you only have to attach one event to the document, instead of a couple of thousand. It’s much faster and scales much better. jQuery provides a couple of methods for handling this; one is called [“dotlive”]. Another one is one that we just added the other day called “the delegate” method. What I think is really interesting about delegation is, in addition to it being much faster, it works in all current and all future elements as well. Even though there are only a thousand table cells to the document at the moment, if you add another thousand, it will continue to work on those as well. You don’t have to attach new handlers to handle them.</p>
<p>The delegate method is one that we just added the other day. This one embodies delegation at its very core. This is the exact example I was talking about. You’re attaching a click event to a core element, a root element such as the table. Then you’re watching for any (in this case) hovers over any table cell. It’s a very simple piece of code, and it gets you exactly what you want in the end.</p>
<p>Live events is a slightly different way of writing and doing delegation, but the nice thing is it works and appears to work in the same exact way as event binding does. You get to use the same syntax. You can use a selector, and then you can attach events directly to it, or seemingly directly to it. In the background, jQuery routes around and makes sure that it goes in all the right places.</p>
<p>For example, here we have these menus that when you mouse over, it does a little animation to toggle out the sub menu. The nice thing is if we add new menu, the animation will also work on the new one we just added. In this way, it’s live. It will continue to work with both current and future elements on the page.</p>
<p>Another technique is something you don’t necessarily have to do yourself, but it’s something that jQuery internalizes. It’s the ability of storing HTML fragments in DOM fragments. What this means is if you’re generating a piece of HTML on jQuery, an HTML string, we’re taking that and converting it to a number of DOM nodes, and sticking that in a DOM fragment.</p>
<p>What I mean by that is the DOM has this concept of, amongst other things, a document fragment. This fragment is sort of a very lightweight container for holding DOM nodes. You can put them in; it acts as a sort of collection. In this case, it’s a very simplified version of what we’re doing in jQuery core, which is if you want to take that HTML snippet and turn it into something held in a document fragment, we take it and enter HTML to generate some nodes. We extract those nodes back out and stick it in a fragment.</p>
<p>What’s interesting about a fragment is that you can perform operations using a fragment and they’re incredibly fast. What I mean by that is you can insert in an entire fragment into a document, but when you insert it, you’re not inserting the fragment itself but the nodes contained within the fragment. In this way, it’s very fast. We got some big speed ups by switching our code to this.</p>
<p>Also, we can now cache those fragments. If we have an HTML string that is coming in, and we’re generating a fragment out at the end, we can cache that result; we can cache the string to the fragment. We can use that and save having to regenerate that entire fragment again, and again. In this way, jQuery internalizes this and handles all that immediately.</p>
<p>Another technique that is good for performance, and is much larger than jQuery itself, is loading your JavaScript library from a CDN. A CDN is short for Content Delivery Network and what that effectively translates into is a bunch of geo-position datacenters around the globe. Not all of us have the finances to build a whole bunch of datacenters all around, but there are a number of great services that handle this. Amazon CloudFront is one of them. We use EdgeCast in jQuery, and MediaTemple is hosting EdgeCast. Additionally, many of the popular JavaScript libraries are also hosted by Google and Microsoft. They host them on their private CDNs as well.</p>
<p>What is really nice about the CDNs, in addition to being geo-positioned, is that the files are automatically minified and gzipped. Minifying and gzipping your JavaScript is the best way to serve your JavaScript code, absolutely. The very first step you should do when pushing JavaScript code into production is to run it through a minifier first. A typical minifier is like the recently released Google Closure or [0:49:21?], or tools like that. Those strip out all the white space, all the comments, all that stuff, and reduce your code down to the smallest possible code you can send to the browser.</p>
<p>Additionally, gzipping is something you can configure in your web server and this will compress your code even further. In the case of jQuery, we started out at just over 150K with raw script, but when we actually transmitted down, we were only sending about 20K with the code, since it’s been minified and gzipped along the way. This is a huge speed up and obviously, this is a big difference in the amount of data that we have to transmit. It saves us bandwidth and it loads faster for the users.</p>
<p>For improving accessibility, a lot of what can be done is working in a very unobtrusive manner. In this way, this is a generic technique that works in all of your JavaScripting, which is that when you override the way that a browser typically does something, for example submitting a form or clicking a link, you can then go through and implement your own functionality. This is effectively unobtrusive scripting. You’re taking something that works already, in a browser, and you layer on your own functionality.</p>
<p>jQuery makes this really easy in addition to providing techniques for handling that, but all your JavaScripts in jQuery code can be encapsulated in the “document ready event”. This event fires the instant your document is ready to be manipulated and traversed. This is very useful because, almost always, this event will fire before the page is visible to the user. You can get in there and make changes to the page, and change how it’s going to display. Then the user will see that modified result.</p>
<p>Probably the most basic example of doing unobtrusive scripting is overriding all links that are going to be clicked, and when they’re clicked we’re going to load the URL into the page itself. The central line here is “return false”, and in jQuery that is telling the browser to prevent the normal click action and we’re going to override it and do something else instead. In this case, clicking this link would normally take us to a different page, but now we click it instead and we load in that page and inject it into our document. In this case, loading and injecting is done with the jQuery load method.</p>
<p>One technique that can serve really well here is that jQuery provides an additional header in every single Ajax request that occurs. It’s called the “x requested with header”, so if you see in your code &#8211; this is a PHP snippet here, but it will be similar in any other language it uses. If you see that this header exists, you can then adapt your content to be displayed in a different manner. Maybe you’ll display in an XML or JSON or what have you. A better technique might be, if you want to load in an HTML fragment, is to strip off the header and footer of your page. That way you can dynamically request your page and only grab the inner contents. You can grab that and then inject it into your page.</p>
<p>One alternative to that is this additional trick in jQuery, which is a load method that I showed before; you can load in a file that you specify and grab the HTML contents from that file and inject it into a page. If you’ll note there, on the end, just after the file there is an H2. That is requesting the HTML file, serializing it into a DOM structure, and then searching and looking for all the H2 elements. This is really useful because you can then grab and load in chunks of a remote HTML document, and inject it into your site, without ever doing any server-side manipulation. In this way, as a front-end developer, you have an incredible amount of control over the content that you can grab and load to your page. I love this trick because I don’t ever have to touch the server in this case. It’s great.</p>
<p>Reducing complexity, at least in jQuery land, all relates to enhancing that relationship around the DOM element. jQuery provides a number of tools for making it easier to communicate through a DOM element. I’ll show you what I mean.</p>
<p>jQuery provide an API called the Data API. It provides this data method that you can use, to both access and set values on a DOM element. What’s interesting about this and what makes this different from accessing and getting DOM attributes, is that when you access and set DOM attributes, they’re visible; they’re permanently attached to the element itself, but what we’re doing in jQuery is we actually create a separate data store and store that separately, away from the element. Any time you set or get data on that element, you’re actually setting it in our data store. It’s very fast.</p>
<p>There are a lot of advantages to that. In jQuery, we use this central data store to store all the events that we bind to an element. Instead of attaching the handlers directly to the element itself, we store it in our separate data store. The nice thing about this is we can manage all the garbage collection issues surrounding Internet Explorer. What’s good about this is we have all our data in this separate store, and when the element is removed, we can handle that and clean up all the data we have there. In that way, you will be recapturing all the memory that is being used, every single time, instead of there being nasty memory leaks shooting all around, as want to happen in Internet Explorer.</p>
<p>Another cool thing we have implemented is if you set or get a data value, we trigger an event. You can override this event and implement new functionality. If you’re writing a plug-in where you’re looking for a specific value to be set or get, you can override that and implement your own values that should be set or get. This could be really cool. Then you use the Data API of setting and getting values for your plug-in.</p>
<p>This comes up to custom events. Custom events &#8211; what’s interesting in jQuery is we have the typical way of binding and triggering events, and it’s 100% identical to doing your own custom events, so if you have an event that is the name of your plug-in, or in this case my plug-in, it doesn’t matter; jQuery handles that identically and it works identically everywhere.</p>
<p>What’s nice about this is you can create and trigger your own events and use it as a way of communicating around the document. This is a bit different from the typical way in which you would see it triggered in a document, in that it’s not going to be triggered by a click; this is something you have to trigger manually. One thing that we have that is layered on top of this is the concept of event name spaces. Event name spaces allow you to, for example, attach a click or focus, but scoped within a particular name. In this case, we have a click that is within the scope within the name of a particular plug-in. What’s cool about this is you can then unbind all of the events that were bounded by a particular plug-in.</p>
<p>This is important because otherwise, the plug-in would have to maintain a list of all the handlers that is bound to any given element at any given time. That is very costly and something that we don’t want plug-in authors to have to worry about. This is something that you can handle completely just by giving all your handlers names.</p>
<p>In the end, what’s great is you can create these custom events as a way of communicating. The really nice thing about custom events in general is that it is a way of communicating from one-to-many, meaning that if you want to send a message, for example “remove”, you want to tell these DOM elements to remove, whenever that may occur; there could be any number of actions on the other end waiting to occur, based upon that trigger.</p>
<p>For example, here we have two different plug-ins that are both watching for a “remove” event to occur. They’ll both be triggered when the trigger runs. But, when you run the trigger, you don’t have to know that there are events actually bound. There could be zero events bound. There could be ten events bound. There could be any number and in that way it provides a very graceful way of coding. You can just trigger these events to occur, and it will just gracefully happen in your document.</p>
<p>jQuery also provides a way of doing what are called “special” events. These work at a more core, fundamental level compared to custom events. Special events are actually a complete way of implementing an event at a very core level. For example, if you want to simulate &#8211; at least in jQuery core, we use it to simulate the “submit” and “change” events in Internet Explorer. In Internet Explorer, those events are rather broken. We also use it to implement “mouse hunter”, “mouse leave”, “focus in” and “focus out” in all the other browsers.</p>
<p>Just to show you an example of what it takes, this is the total code to implement the focus in and focus out events in all browsers, except for IE. It’s actually very little code and it’s overriding the normal behavior so instead of attaching the handler to the document, we do it in a slightly different way.</p>
<p>One plug-in, for example, that makes use of this is a plug-in I wrote last night called “Hot Keys” where you can bind a key down, or a key up, or key press, and you can give a key combination. For example, when the key down one occurs on Ctrl A, do something. In this case, we’re returning false and that will prevent you from doing Ctrl A on the document, selecting everything presumably. You could also say Ctrl A and space Meta A to prevent on an Apple keyboard. This is the sort of thing you can do with special events.</p>
<p>A nice thing is being able to go in and simplify your design. What we provide in the jQuery project for that is jQuery UI. jQuery UI is a set of components and set of widgets that you can use, you can drop into your application, and they will just work. We designed them in a way that they’re not only easy to use but they have a really good API.</p>
<p>On top of that, they’re all themeable and customizable. I’ll show you an example here. You can completely customize them to the style of your website. This is the jQuery UI ThemeRoller. We can sort of see a selection here of jQuery UI components. For example, we have an accordion, a tabs widget, slider, date picker, dialog, progress bar, etc. These are all in jQuery UI core.</p>
<p>You can go in and you can actually start to customize that and load in other themes. We have a number of prebuilt themes. You can load in this orange-ish style. We can try this grayish style. There are different ones we have prebuilt, but what’s nice about this is you can go in and you can customize each of these things completely to your own desires.</p>
<p>If we didn’t like this particular header background and we wanted something different, we could go in and adapt the color to exactly what we wanted to see. Instead of this dark gray or something, maybe we want something much brighter. It will take that color, and actually generate all the CSS and all the images needed to view this theme, and give it to you in a single, nice, compressed CSS file right to the image file. And, it will work in all browsers, including IE6. We have all the alpha transparencies and everything already done.</p>
<p>I love this personally, because dealing with CSS cross-browser issues is absolutely the last thing I want to do. This is some way to route around that, that we’ve already taken care of all those problems and we’ve implemented in a very slick way. One cool thing about this is, for example, there is a number of jQuery plug-ins out there that are already themeable using the ThemeRoller, ones beyond jQuery UI.</p>
<p>For example, this is a jQuery plug-in called jqGrid. Since jqGrid is themeable with ThemeRoller, you can then load this tool called the ThemeRoller bookmarklet. I don’t remember the full name of it. You get this little panel, the same as what you would see in the ThemeRoller page. You can layer it on top of any page just using ThemeRoller. They’re using this bluish theme but let’s say we wanted a grid but we didn’t want that bluish theme; we wanted one that is more orange-ish. You can click it, load that theme dynamically and you can see how it will look, right inside the website. You can get there, tweak it to your heart’s content; you can tweak the header, colors, and everything. That will just work. That is something I find to be really cool.</p>
<p>What are we working on? In the jQuery project there are a few things we’re working on at the moment. We’re working on a better dynamic script loader that will do all sorts of dependency management. We’re working on a new templating engine so hopefully both of those will be coming up in new releases. We’re also working on a rewrite of the Ajax module, to become more extensible. And, perhaps the largest is that we’re working on good mobile support.</p>
<p>We want to make sure that not only is jQuery the best library for doing desktop web applications, but we want to make sure that same code base is the best library for doing mobile applications. To get there, we’re going to be testing against a whole bunch of mobile browsers on a number of different devices. I have a bunch of devices at home that I have set up and I’m already starting to go through them. We’re going to make sure that jQuery is going to work, not only in normal IE6, IE7, IE8, Opera, all the browsers, but it’s going to work in mobile IE, mobile Safari, Opera, all those mobile browsers, at least the ones that are feasible to implement jQuery on. This is something that we’re working on and we hope to make some very good progress here, very soon. There is some more information about the jQuery project if you have any questions, and I think I’m out of time but thank you all for having me today.</p>
<h3>Q + A</h3>
<p><strong>Ryan:</strong> Thank you very much. While we do the switchover we probably have about a minute for a question. Are there any questions for John?</p>
<p><strong>Q:</strong> Will jQuery support internationalization?</p>
<p><strong>John:</strong> jQuery core probably won’t but we already do some of that for jQuery UI. I think we’ve been talking about moving the validation plug-in, for example, into jQuery UI. The validation plug-in handles a lot of that stuff, especially number formatting. That is something, that and the addition of something like get text replacement that you can use for translating chunks of strings is another thing I’ve seen requested. Again, I don’t think either of those would be in jQuery core so much as probably jQuery UI. Most of those things typically relate to building a UI component, not a jQuery UI component, but a UI component in general.</p>
<p><strong>Ryan:</strong> We probably have time for another one.</p>
<p><strong>Q:</strong> The need to support Internet Explorer 6 and some of those older browsers, how much of that is holding back jQuery, and one day when you can get away from that, how much more capability do you think it will bring to jQuery?</p>
<p><strong>John:</strong> If we dropped support for IE6 today, absolutely nothing would change, at least for jQuery core. jQuery UI might be able to benefit more. The JavaScript engine and the DOM engine in their export did not change between 6 and 7. That is a bit of a lie. They did change. They introduced two bugs in IE7. It’s really frustrating. In our case, it would be better to drop IE7 support than IE6. The reality is that from my perspective, IE6 is the same as IE7. IE7 is shipping in IE8. IE8 is going to be around for a very long time. There is no reason to drop any of these.</p>
<p>You asked how much is this holding us back? At least for jQuery core, not &#8211; obviously we have to deal around all these browser issues, but it’s not degrading the performance of the code. We make sure, at the very least, that the code that we’re shipping is going to perform the best it can, regardless. You don’t have to worry about that. I think that’s the primary concern, does it affect my performance, if so, kill it with fire. The other one is can I save some bandwidth by extracting that. Obviously, we could save some file size by removal of that code, not a massive amount, but maybe a couple K. Again, I don’t think it’s holding us back.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/john-resig-on-advanced-javascript-to-improve-your-web-app/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Karl Swedberg on jQuery</title>
		<link>http://thinkvitamin.com/code/karl-swedberg-on-jquery/</link>
		<comments>http://thinkvitamin.com/code/karl-swedberg-on-jquery/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 10:31:57 +0000</pubDate>
		<dc:creator>Keir Whitaker</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://carsonified.com/?p=3605</guid>
		<description><![CDATA[Next up in our series of short interviews is Karl Swedberg. Karl is the principal author at Learning jQuery and regularly presents and blogs about JavaScript and jQuery. Editor’s Note: Karl will be hosting a workshop on &#8220;jQuery for Designers&#8221; at The Future of Web Design New York on November 16-17 2009. You can buy [...]]]></description>
			<content:encoded><![CDATA[<p>Next up in our series of short interviews is <a href="http://www.karlswedberg.com/">Karl Swedberg</a>. Karl is the principal author at <a href="http://www.learningjquery.com">Learning jQuery</a> and regularly presents and blogs about JavaScript and jQuery.</p>
<p><em><strong>Editor’s Note:</strong> Karl will be hosting a workshop on &#8220;jQuery for Designers&#8221; at <a href="http://events.carsonified.com/fowd/2009/nyc">The Future of Web Design New York</a> on November 16-17 2009. You can <a href="http://www.amiando.com/fowdnyc2009.html">buy your ticket online now</a>.<br />
</em></p>
<p><strong>For designers that might not of heard of it, what is JQuery?</strong></p>
<p><a href="http://jquery.com/">jQuery</a> is a tool to help designers and developers add interactive elements to their web pages. At the risk of oversimplifying, jQuery&#8217;s core feature is a set of commands that enable you to (a) find, or create, elements on a page and (b) do something with them. It&#8217;s JavaScript that lets designers and developers avoid the hassles of JavaScript. And since it&#8217;s JavaScript, it can do all sorts of stuff without forcing a page refresh.<span id="more-3605"></span></p>
<p><strong>In your opinion why is JQuery relevant to designers?</strong></p>
<p>JavaScript in general adds another dimension to design, and jQuery makes that other dimension easier to achieve. For designers who are familiar with CSS, writing simple jQuery scripts will feel quite familiar. For designers with Flash experience, jQuery provides a standards-based, non-proprietary, open-source alternative for creating some of the same kinds of effects and interactions as is often done with Flash.</p>
<p><strong>For those considering your workshop at The Future of Web Deisgn New York, what kind of things will you be covering?</strong></p>
<p>I&#8217;ll give a quick overview of the jQuery library, and then we&#8217;ll look at some practical ways to progressively enhance web sites for better user experiences. I&#8217;ll show some techniques for using jQuery to fill in the gaps where CSS, or at least some browsers&#8217; handling of CSS, falls short. We&#8217;ll discuss how to put animations to good use and how to avoid their abuse. And we&#8217;ll examine a few cool plugins and see how to take advantage of their power and flexibility.</p>
<p><strong>There are a number of really useful plugins available for JQuery. What are the must haves for every designer?</strong></p>
<p>It depends on the needs of the site and often the demands of the client as well. One that I find myself using quite a bit is the <a href="http://malsup.com/jquery/cycle/">Cycle Plugin</a> by Mike Alsup. At its most basic, it&#8217;s a slideshow widget that shows images one at a time with a nice transition effect between them. But the plugin is incredibly powerful and gives you the ability to do all sorts of things not just with images but with written content too. It&#8217;s particularly nice where a lot of information needs to fit in a small space.</p>
<p>I&#8217;ve also begun using the jQuery UI plugin suite quite a bit lately. It makes creating rich user interaction such as drag and drop really easy. Its components are great, too; I&#8217;ve used the dialog, tabs, and datepicker in a number of projects.<br />
<strong><br />
What do you think is the Future of Web Design?</strong></p>
<p>You mean other than a really cool conference, right? I&#8217;m afraid I&#8217;d end up looking like an idiot if I tried to predict the future of any technology. In some ways I suppose the future is going to look all too familiar until we can get rid of the albatross of certain legacy browsers. Still, it&#8217;s exciting to see what&#8217;s going on right now with the newer, better browsers, and I&#8217;m hopeful that some of the cutting edge stuff will take root and see more widespread adoption.</p>
<p>The Webkit team is doing amazing things with CSS animations and tapping into hardware graphics to make stunning visual effects. Firefox, Safari, and Chrome have been leapfrogging each other with better and better JavaScript engines &#8212; and JavaScript libraries have been tapping into the increased power and performance. We&#8217;re seeing more and more use of HTML5 elements such as canvas, audio, and video. Typography on the web is poised to get a whole lot better as progress is being made with font embedding, both on the technical side and the legal side. One thing I can be sure of is that the future of web design is going to surprise me.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkvitamin.com/code/karl-swedberg-on-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.579 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-10 03:04:26 -->

