Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

May 29 2013


6 jQuery Plugins for Scrolling Effects

Advertise here with BSA

Last week we showcased a collection of websites that take scrolling to the next level. The designers of these sites used the need to scroll as an opportunity to engage the user with various effects based on the pages scroll position. So for this post, we’ve gathered some jQuery plugins that will help you incorporate this into your next project.

jQuery Scroll Path

jQuery Scroll Path is a plugin for defining custom scroll paths. It uses canvas flavored syntax to draw lines and arcs.

6 jQuery Plugins for Scrolling Effects


The jQuery plugin for supercool scroll animation.

6 jQuery Plugins for Scrolling Effects


6 jQuery Plugins for Scrolling Effects


6 jQuery Plugins for Scrolling Effects

Cool Kitten

6 jQuery Plugins for Scrolling Effects
6 jQuery Plugins for Scrolling Effects


Sticky is a jQuery plugin that gives you the ability to make any element on your page always stay visible.

6 jQuery Plugins for Scrolling Effects

Tags: Tools jquery

May 06 2013


16 Beautiful jQuery Pagination Plugins

Here, we are presenting a collection of some useful and free to use jQuery pagination plugins for you that you can integrate on your website in order to split pages and posts into several pages. These pagination plugins make pagination easy for the website developers. These plugins are designed for you so that website pagination will no longer be a tough task for you. With these plugins, you can divide the data into multiple pages once it is loaded into the page. Furthermore, server side pagination allows you to extract necessary amount of data and then loaded on the page.

In this post, you will find a list of some useful jQuery pagination plugins that allow you to create proper pagination setups for your website. We hope that you will find this collection useful for you. Feel free to share your opinions with us via comment section below. Have fun.

Extreme Makeover: jPaginator CSS3 Edition

( Demo | Download )

jPaginate: A Fancy jQuery Pagination Plugin

( Demo | Download )

jQuery Quick Pagination

( Demo | Download )

Pajinate – A jQuery Pagination Plugin

( Demo | Download )


( Demo | Download )

Easy Paginate jQuery plugin for pagination

( Demo | Download )


( Demo | Download )

Sweet Pages: A jQuery Pagination Solution

( Demo | Download )

jQuery Pagination Plugin

( Demo | Download )


( Demo | Download )

jQuery Pagination Plugin: Smart Paginator

( Demo | Download )

Easy pagination with jQuery and Ajax

( Demo | Download )

jPaginate – jQuery Pagination System Plugin

( Demo | Download )

jQuery Pagination revised

( Demo | Download )

Pagination with jQuery, MySQL and PHP.

( Demo | Download )

AJAX Pagination using jQuery and PHP with Animation

( Demo | Download )

Sponsored post

April 16 2013


5 jQuery Plugins to Breathe Life into your Texts

jquerytexteffekte_slidingletters-w550 Texts are primarily made for reading. Yet, at least sometimes, we want them to be apparent, eye-catching. A set of jQuery plugins provide possibilities to animate texts in various ways. We have come up with five of the best of them.

April 12 2013


Sidr for jQuery: Modern Sidebar Navigation with an Edge

Project's Homepage

We all came to love the so-called panel menu, or more correct off-canvas-menu, which saw a dramatic rise in popularity alongside the equally dramatic rise in popularity of smartphones and mobile clients in general. It’s getting hard to find one smartphone app that isn’t equipped with a navigation that slides in at swipe or tap. If my memory does not betray me, it was Facebook’s app that first made use of an off-canvas-menu. A while ago we introduced you to jPanelMenu for jQuery, with which you can create a Facebook-like experience in any app. Our newest contestant, Sidr, is even more able…

March 29 2013


Building Windows Store Applications With jQuery 2.0

With the release of Windows 8, Microsoft introduced Windows Store applications, which can be authored using traditional web languages that leverage the underlying engines powering Internet Explorer 10. This means that jQuery 2.0, engineered to work best in modern browsers, is right at home in a Windows Store application!

Understanding Context

Windows Store applications, unlike the web, have two different contexts known as Local, and Web. Due to the access that code in the local context has to the Windows Runtime APIs, a new security model was needed.

For best results, you will be downloading jQuery and loading it in the local context. Attempting to load from a remote location (such as a CDN) will result in a message along the lines of an “app can’t load remote web content in the local context.”

Understanding "Unsafe" Code

DOM manipulation is one of the biggest changes that you'll encounter using jQuery in a Windows Store application as opposed to a browser.

On the web, it's not uncommon to add an element to a form just by passing a string of HTML into jQuery's .append() method:

$("#form").append("<input name='foo' value='bar' />");

Within a Windows Store application, which has easy access to the user's machine, the stakes are much higher, and a lot of what you may be used to doing will require some reconsideration. The above is considered unsafe because of the name attribute. There are many other elements, attributes, protocols and more that are considered unsafe.

For an exhaustive list of what is considered safe and unsafe, see Making HTML safer: details for toStaticHTML.

This doesn't mean that you cannot programmatically populate a container with dynamic items; you just have to take a slightly different approach. For instance, you could use jQuery to create the input element, itself, rather than passing it along in a string:

$("<input>", { name: "foo", value: "bar" }).appendTo("#form");

In the above example, you create an input element using jQuery's html, attributes signature. This demonstrates to the security model that you are in full control of the element, it's attributes, and their corresponding values. This pattern works equally well in the browser also, being present in jQuery since version 1.4.

Sanitizing Potentially Unsafe Content

When receiving content from a remote endpoint, it is wise to clean it up before dropping it into your DOM. There are a few ways in which you can do this using helper functions, such as toStaticHTML, which removes all dynamic items from a string.

Suppose you wished to request a string of markup from a remote service that included a greeting to our current user. It's entirely possible that this service could have been tampered with, and what actually comes back to our application is more than you are expecting.

In the following code, you see that a hidden form field has attached itself to the response.

<h1>Hello, Dave.</h1><input name='id' value='a528af' type='hidden' />

Injecting this into a form could be disastrous. As such, you should first pass it through toStaticHTML to cleanse it of any elements, attributes, or values that could be used to manipulate form data, or perform otherwise non-approved actions.


When the method sees our markup for the input element, it will identify and remove the dynamic name attribute, preventing any unexpected data from entering a form submission. For a more granular look into what does and does not survive the toStaticHTML method, take a look at Making HTML safer: details for toStaticHTML.

When You Know Best

There will inevitably be times when you need to do something that appears to be unsafe. For instance, you may wish to use a chunk of HTML as a template to build new elements. In these instances, Microsoft has provided a few methods you can use when necessary, and when you are positively sure what you are doing is not putting the user at risk.

On the global MSApp object in your Windows Store application, there exists the execUnsafeLocalFunction function, and it does exactly what it suggests: permits you to execute an unsafe function on a case-by-case basis. Perhaps you wish to add an input field for editing a user's name, our code may look very similar to the last example:

<h1>Hello, <input name="id" value="Dave" /><h1>

We could assign this to the innerHTML property via an anonymous function:

MSApp.execUnsafeLocalFunction(function () {

Within the scope of the function, you are able to step out of the security model and perform an otherwise unsafe operation without being second-guessed by the environment. It should be fairly obvious why you should use this method sparingly.

A couple utility methods also exist in your Windows Store application under WinJS.Utilities for doing similar assignments. Those are setInnerHTMLUnsafe and setOuterHTMLUnsafe. Like execUnsafeLocalFunction, these, too, should be used sparingly, and when you're not taking a chance with data outside of your control.

These utility functions take as their arguments the DOM element you'd like to manipulate, and the string you'd like to assign.

WinJS.Utilities.setInnerHTMLUnsafe( $("#greeting").get(0), response );
WinJS.Utilities.setOuterHTMLUnsafe( $("#greeting").get(0), response );

The difference here is that setInner replaces the innerHTML of the element, whereas setOuter replaces the element itself – think of jQuery's replaceWith method. For both functions, you simply pass in a reference to the DOM element and our desired innerHTML.

A Note on Compatibility

In the last section, you introduced two objects, the MSApp object which houses the execUnsafeLocalFunction function, as well as the WinJS object that houses the two utility functions, setInnerHTMLUnsafe and setOuterHTMLUnsafe.

These objects are present only in the Windows Store application, and not in your browser (unless somebody, or something, created similarly-named objects). If you wish to write code that can work in both a Windows Store environment, as well as in your browser, you will need to check these objects before presuming their existence.

var $greeting = $("#greeting");

if (typeof WinJS !== "undefined" && WinJS.Utilities) {
    WinJS.Utilities.setInnerHTMLUnsafe($greeting.get(0), response);
} else {

In a Windows Store application, the above code will use the WinJS.Utilities method to perform the assignment. When run in an environment where WinJS is unknown, such as in a web browser, the code will perform the assignment via jQuery's .html method.

No More Same-Origin Issues

The power to utilize remote services is part of what makes the web great. In a traditional browser, you have origin issues which gave rise to solutions like JSONP, and ultimately CORS. Because Windows Store applications run on the operating system, origin is irrelevant.

$.ajax("", {
    data: { screen_name: "appendTo" },
    success: function (data) {
        $("<img>", { src: data[0].user.profile_image_url }).appendTo("body");
        $.each(data, function (key, tweet) {

The above grabs all of the latest tweets from the @appendTo account and wraps each in its own paragraph tag, placing the profile image above them. In a Windows Store application, this is possible without having to use a script tag, setting headers, or proxying through a server-side script.

In Conclusion

While this article isn't exhaustive, it does provide the initial momentum you need in order to get up and running quickly with jQuery in Windows Store applications. Have fun!

March 20 2013


Speaking With jQuery’s Core Team Lead: Dave Methvin

Most of us are familiar with the jQuery JavaScript library, and likely use it in at least some of our projects. But how much do we know about the people who tirelessly give their time to maintaining the web’s most popular JavaScript library? I recently had the chance to interview jQuery Core Team leader, Dave Methvin, and discuss how he became involved with the project and where he sees front-end development headed. He’s been a contributor to jQuery since 2006, and is also the President of the jQuery Foundation.


jQuery’s success has made it difficult for us to change anything.

Q Tell us about your professional background. How’d you get into JavaScript?

I started my career as a full-time C programmer doing embedded systems stuff like shipboard navigation, robotics, factory automation, and telecommunications. After that, I moved into computer journalism and wrote a JavaScript column while I was at Windows Magazine. When WinMag closed its doors, I co-founded a startup that built a JavaScript- and HTML-based system utility for Windows thatbasically automated a lot of the advice we used to give in the magazine.

Q Which road led you to jQuery, and when did you join the team?

When I was at the startup, I was looking for a better way to organize the JavaScript and HTML we were writing. I saw John Resig’s 2005 blog post describing what eventually became jQuery. I sent him an email and he replied saying he was setting up a mailing list for interested people.

So suddenly, there is this group of very talented folks discussing the library.

A lot of them are still with the project to this day. This is one of John’s little-known talents and a big reason for jQuery’s early success; he is very inclusive and open to input from everyone.

Q When did John turn the project over to you and why?

Khan Academy

I officially took jQuery Core’s reins in July of 2011, although I had been doing quite a bit of work on it before then. As for why? I think John was looking for his next big challenge, one that he seems to have found at the Khan Academy.

Q Since you’ve become lead developer, how has that affected your views of the direction of the project and the community?

jQuery’s success has made it difficult for us to change anything, even if it’s a change for the better, such as a bug fix or improving consistency of the API. Because about half of all Internet sites use jQuery, we can be pretty sure that any change we make to the library will be a breaking change for someone. Although we do betas, the vast majority of users like to wait until it’s final before trying the new code – meaning we are often flying blind when it comes to knowing the impact of a change.

jQuery Core is a library to simplify the traversal, manipulation, and retrieval of HTML documents.

Q What shifts have you seen in community expectations? What are people asking for?

When jQuery arrived in 2006, web developers knew the browsers’ quirks and were happy to have jQuery get them to the 90 percent mark for cross-browser compatibility. Many of today’s developers never lived in that world and are surprised that jQuery can’t make every little difference disappear across browsers. But there are limits to how well we can work around browser problems; developers need to understand that. Many times, the solution uses a simple fix at the application level, or to use a plugin that addresses some specific rare case.

Q Being an all-volunteer effort, how does the project manage these requests? For example, how are they prioritized?

Bug tracker

Bugs are prioritized by whether they are a regression, their overall impact on the community, their severity, and the complexity of a fix. Most of the non-regression problems are edge cases or browser bugs bleeding through to the jQuery API. Our challenge is to fix these without creating a mass of complex workarounds that most people don’t need, and introducing further bugs in the process.

Q There’s been a bit of sniping at jQuery lately, to the point where some in the community look down at developers that use the library. I think it’s silly and nonsense, especially when other efforts like Backbone and Ember actively promote jQuery as complementary. What’s your take on this?

Since jQuery makes it easy to put some awesome effects together using just a few lines of code and some third-party jQuery plugins, it’s inevitable that non-professionals will try their hand at using it. Sometimes they’ll succeed, and other times they’ll make a big mess that someone needs to come in and clean up. I don’t see any solution to that “problem” other than making jQuery more obtuse so only professional programmers can figure it out. That’s not going to happen.

Q Do you think that some of the dissenters forget the complexities of cross-browser development?

Even if you take out IE 6/7/8 there is a LOT of code in jQuery to smooth out browser bugs and inconsistencies. I was somewhat depressed to see how many of those lines had to remain for jQuery 2.0. It seems that all the browser makers are too busy implementing shiny new features like CSS3 to go back and fix basic functionality. And why should they bother to fix it, since jQuery fixes it and therefore nobody complains to them?

Q Along those same lines, where do you see jQuery fitting in the library ecosystem with so many new frameworks emerging like Angular and Ember?


The MV* frameworks are where DOM libraries were six or seven years ago when jQuery arrived on the scene. There is a lot of diversity in their approach to design, which is a good thing. Most of these frameworks are happy to let jQuery take on the cross-browser DOM issues so they can focus on higher level application design concerns. We’re definitely complementary to their efforts.

I like to joke that “Core ain’t done until UI won’t run.”

Q Where do you see jQuery’s sweetspot?

jQuery Core is a library to simplify the traversal, manipulation, and retrieval of HTML documents. Sometimes people want to push the boundaries and ask why we don’t support SVG, VML or other webbish technologies, but that’s what plugins are for. We want to keep jQuery’s API focused on DOM operations. Going beyond that in the core library would add a lot of bloat that few people need.

Q Can you explain how jQuery fits into the CommonJS/AMD discussion?

jQuery Core has the ability to be used as an AMD-named module and loaded dynamically. In general, named modules are frowned upon, but so many jQuery plugins expect to share a global jQuery object. I am not satisfied with the current state of JavaScript module loading, and I prefer a simple combine-and-minify process for most of the work I do. Still, AMD is popular enough that we wanted jQuery Core to support it so that AMD users can load jQuery from a CDN for example.

Q jQuery 2.0 will focus solely on modern versions of Internet Explorer. Some view this as anti-IE. Can you explain this decision around it and what it means to IE users?

The workarounds for IE 6/7/8 account for more than ten percent of the total jQuery 1.9 library size, and those workarounds also impact performance. There are many places where these workarounds just aren’t needed, such as Windows 8 apps, Chrome and Firefox plugins, PhoneGap/Cordova apps on a specific mobile platform, or node.js programs where a library like Cheerio is used to load jQuery.

That is the primary audience for jQuery 2.0 at the moment; most Internet web sites should continue to support those older versions of IE by using jQuery 1.9.

For example I can’t see the Target or Wal-Mart websites using jQuery 2.0 for at least a few years; IE8 users have money too! Since the two APIs are in sync, it’s possible to use conditional comments to include one or the other for a specific browser, but to be honest, I don’t think it’s worth the effort.

Q The jQuery project encompasses not only jQuery, but jQuery UI, jQuery Mobile and QUnit. When building out the jQuery roadmap, what considerations do you need to make to account for these other efforts?

jQuery Mobile

Since jQuery UI and Mobile depend on Core, we consult them on roadmap issues where needed. Those projects also run their unit tests against our most recent build directly from Github so that we immediately know if we broke something. Still, I like to joke that “Core ain’t done until UI won’t run,” and there is usually a few glitches we find after each release. QUnit is a bit different; we are their client. We sometimes ask them for features, and on occasion, their updates break our unit tests. So we get a taste of our own medicine.

Q jQuery events are no longer jQuery-specific. Would you like to discuss why the project chose this route?

We see the jQuery Conference as a gathering for developers who create web sites and web applications. Some of what they want to know is about jQuery, but we don’t want to stop there. Any good developer should expand their horizons and continue to learn tools and techniques that can help them improve.

Q What are the trends in front-end development that you see and recommend developers to keep an eye on?

Innovations are coming from all directions. The MV* framework wars are likely to yield some much better and faster approaches to develop web apps and sites; no doubt we’ll see some consolidation there, similar to what happened with jQuery.

Responsive design is another big topic, and I hope improvements in CSS and responsive images will make it easier to implement in the coming year.

On that last point, jQuery is working with the standards groups at W3C and ECMA to ensure that the web developers in the trenches are represented when making decisions.

March 14 2013


13 Very Useful jQuery Modal Plugins

In today’s collection, we are presenting for you 13 jQuery Modal plugins. Many websites are using jQuery currently and it is important that one should know what jQuery plugins are available there in order to stay up to date with the latest web design trends. With the help of jQuery plugins, one can keep his website ahead of the crowd.

If you want to show quick information to your users, then jQuery Modal dialog box would be the great option for you. With the help of jQuery Modal dialog boxes, you can show alerts, notices, errors, modal popups, modal windows or dialog. With the help of jQuery modal plugins, you can easily create modal dialog boxes. All of these jQuery modal plugins can easily be integrated into you websites so that you can create cool and visually appealing modal window. So what are you waiting for? Have a look at this collection.

Avgrund Modal

Avgrund is a jQuery plugin for modal boxes and popups. It uses interesting concept showing depth between popup and page. It works in all modern browsers and gracefully degrade in those that do not support CSS transitions and transformations (e.g. in IE 6-9 has standard behavior).


FancyBox is a tool for displaying images, html content and multi-media in a Mac-style “lightbox” that floats overtop of web page.

Simple Modal

SIMPLEMODAL is a small plugin to create modal windows. It can be used to generate alert or confirm messages with few lines of code. Confirm configuration involves the use of callbacks to be applied to affirmative action; it can work in asynchronous mode and retrieve content from external pages or getting the inline content. SIMPLEMODAL is not a lightbox although the possibility to hide parts of its layout may partially make it similar.


Lightview was built to change the way you overlay content on a website.


bPopup is a lightweight jQuery modal popup plugin (only 1.34KB gzipped). It doesn’t create or style your popup but provides you with all the logic like centering, modal overlay, events and more. It gives you a lot of opportunities to customize so it will fit your needs.


Bare bones modal dialog windows.

jQuery SuperBox!

jQuery Superbox! is a script which allows you display windows with the lightbox effect.

Highslide JS

Highslide JS is an image, media and gallery viewer written in JavaScript.


GreyBox can be used to display websites, images and other content in a beautiful way.

Reveal: jQuery Modals Made Easy

Reveal is awesome because it’s easy to implement, is cross-browser compatible with modern browsers (with some graceful degradation of course) and lightweight coming in at only 1.75KB. What that means for you is that it’s fast, sexy and just works. Now let’s see how easy is can be to get Reveal working!

jQuery lightBox plugin

jQuery lightBox plugin is simple, elegant, unobtrusive, no need extra markup and is used to overlay images on the current page through the power and flexibility of jQuery´s selector.

PrettyPhoto is a jQuery lightbox

prettyPhoto is a jQuery lightbox clone. Not only does it support images, it also support for videos, flash, YouTube, iframes and ajax. It’s a full blown media lightbox.


SimpleModal is a lightweight jQuery Plugin which provides a powerful interface for modal dialog development. Think of it as a modal dialog framework. SimpleModal gives you the flexibility to build whatever you can envision, while shielding you from related cross-browser issues inherent with UI development.

September 02 2012


Metro UI CSS: You can have a tiled website too


Microsoft’s new UI, once known by the name of Metro, has caused quite some buzz in the tech world. Meanwhile the name has been dropped, which again caused quite a buzz in the tech world. We don´t know why this was done nor do we know if the next Windows will be a market success. What we know is, that Metro as a design style has its fans. If you are one of them, we have great news for you. Thanks to Metro UI CSS you can give your very own website the same tiled look, the interface of the next generation Windows will have. Go ahead!

Metro UI CSS

Metro UI CSS is actively developed by Sergey Pimenov, who proves generous enough to leave the tool for us to use free of charge under the MIT license. Pimenov not only copied the typical Metro design, but also implemented a variety of effects from the original Microsoft product, for example the fade-in of subtitles on pictures or the switch buttons.

Metro UI CSS: A feature-rich framework

Get your own impression of what Metro UI CSS is capable of by visiting the demo. You’ll find several pages with examples of how pictures, forms, buttons and the typical tiles, bound to substitute the former Windows icons, look and interact.

Metro: Tiles

Ever seen Metro on a tablet? On these devices, Microsoft implemented vertical scrolling as the standard scroll direction. That’s just the way Pimenov implemented it in Metro UI CSS. Using a touch-device you can elegantly scroll through your website. You’re not forced to, though, as mouse scrolling is also supported.

Metro: Buttons

Metro UI CSS: Made with, yes, CSS and JavaScript

Metro UI CSS is not pure CSS, but relies on several JavaScript libraries for advanced functionality. The foundation is, as it often is, jQuery with some complementing plugins and the new superstar Bootstrap. Pimenov wants it mentioned, that he also integrated some of his very own JavaScript functions.

Metro: Pictures

If you like to learn along the guidelines of a thorough documentation, Metro UI CSS is not for you. Because there simply is no documentation. The demo can be downloaded, that’s it.  But it contains all elements for which the Metro style is available and thus should be a good starting point for the first steps to your very own tiled website. Several effects are invoked simply by calling the corresponding classes. You can easily find out by sneaking through the source code. Metro UI CSS needs a modern browser. Microsoft’s own Internet Exploder is supported from version 9 onwards.


August 28 2012


11 Most Useful jQuery Plugins To Enhance Typography

Here we are presenting 11 jQuery plugins for you to improve your typography. With jQuery plugins, you can implement superb things on your website quite easily. In this round up, we have put together some jQuery plugins that will allow you a better control on your website for web typography. We all know that typography is an important element in a web design and achieving a high level of typographic style can make your web design look eve more stunning and attention grabbing.

Here is the complete collection. Browse through this collection and do share your opinion with us via comment section below.


( Demo | Download )


( Demo | Download )

Shuffle Letters

( Demo | Download )


( Demo | Download )


( Demo | Download )

Slab Text

( Demo | Download )


( Demo | Download )

jQisotext: jQuery Text Plugin

( Demo | Download )


( Demo | Download )

3D Flying Text in jQuery

( Demo | Download )

jMetronome: Using jQuery to keep typographic rhythm

( Demo | Download )

August 13 2012


40+ Powerful jQuery Navigation Plugins And Tutorials

In this round up, we are showcasing a wonderful collection of some useful jQuery navigation plugins and tutorials that will definitely help you improve your website visibility and let you spice up your website more effectively. jQuery is a wonderful creation and its plugins have been designed to help you keep your content more organized and interactive for your website users.

Here in this collection, you will discover some handy plugins and useful tutorials that will assist you in your work. We hope that you will like this collection and find it helpful for you. Do let us what you feel about this collection. Let us take a look at this compilation.

A Stylish Navigation Menu With jQuery

( Demo | Download )

Making a Fresh Content Accordion

( Demo | Download )

Create a Slick Tabbed Content Area using CSS & jQuery

( Demo | Download )

Halftone Navigation Menu

( Demo | Download )

A Different Top Navigation

( Demo | Download )

jQuery Tabbed Interface / Tabbed Structure Menu Tutorial

( Demo | Download )

Create a Cool Animated Navigation with CSS and jQuery

( Demo | Download )

Vertical Flyout JavaScript Menu

( Demo | Download )

Use Sprites to Create an Awesomeness-Filled Navigation Menu

( Demo | Download )

How to Make a Smooth Animated Menu with jQuery

( Demo | Download )

Dropdown Menu

( Demo | Download )

Drop down menu with Nested Submenus

( Demo | Download )

Simple jQuery Dropdowns

( Demo | Download )

Create a Cool Animated Menu with jQuery

( Demo | Download )

Mega Vertical

( Demo | Download )


( Demo | Download )

Sweet AJAX Tabs With jQuery 1.4 & CSS3

( Demo | Download )

Building a Better Blogroll

( Demo | Download )

Fancy Sliding Form with jQuery

( Demo | Download )

Little Boxes with jQuery

( Demo | Download )

AutoSprites – A jQuery Menu Plugin

( Demo | Download )

Creating a Floating HTML Menu Using jQuery and CSS

( Demo | Download )

CSS3 multicolor menu

( Demo | Download )

Using jQuery for Background Image Animations

( Demo | Download )

Coda-Slider 2.0

( Demo | Download )

Creating CSS3 Dropdown Menu

( Demo | Download )

Creating a CSS3 Dropdown Menu

( Demo | Download )

Vertical Scroll Menu with jQuery Tutorial

( Demo | Download )

Slide Subnav Plugin

( Demo | Download )

jQuery Listmenu

( Demo | Download )

Easy to Style jQuery Drop Down Menu Tutorial

( Demo | Download )

How To Create A Keypress Navigation Using jQuery

( Demo | Download )

StyleSelect Menu

( Demo | Download )

Sliding Jquery Menu

( Demo | Download )

Outside the Box Navigation with jQuery

( Demo | Download )

‘Mootools Homepage’ Inspired Navigation Effect Using jQuery

( Demo | Download )

Beautiful Slide Out Navigation

( Demo | Download )

Puffer Fish Navigation

( Demo | Download )

jQuery Horizontal Tooltips menu tutorials

( Demo | Download )

Image Hover Move

( Demo | Download )

Awesome Cufonized Flyout Menu

( Demo | Download )

MultiColor Animated DropDown Menu

( Demo | Download )

Create a Good Looking Floating Menu with jQuery Easing

( Demo | Download )

jQuery Flipping Menu Tutorial

( Demo | Download )

August 06 2012


July 16 2012


Ultimate Collection Of Fresh jQuery Plugins And Tutorials

jQuery has become one of the most accepted JavaScript library that has been used all over the world. For this reason, many people all around the world are interested in learning this wonderful creation of the technology. Tutorials is the best thing on the internet to learn from. This time, we are specifically presenting some fresh tutorials that were recently released. These tutorials will cover different aspects of jQuery that you can use to make your creation even more powerful and interactive.

Here is the complete list of fresh jQuery tutorials for you. We hope that you will find this collection helpful for you and will learn loads of interesting and useful techniques from them. Enjoy looking into this collection and have more fun using them in your work.

Create a Beautiful Password Strength Meter

( Demo | Download )

Growing Thumbnails Portfolio

( Demo | Download )

Create a Sticky Navigation Header Using jQuery Waypoints

( Demo | Download )

Swatch Box with CSS3 and jQuery

( Demo | Download )

Fullscreen Slit Slider with jQuery and CSS3

( Demo | Download )

How to Create an Video Player in jQuery, HTML5 & CSS3

( Demo | Download )

Orman Clark’s Vertical Navigation Menu: The CSS3 Version

( Demo | Download )

Page Transitions with CSS3

( Demo | Download )

How to Create a Slider Plugin with jQuery

( Demo | Download )

CSS3 Breadcrumbs

( Demo | Download )

Create A Minimal Single Page Portfolio With HTML5/CSS3

( Demo | Download )

CSS3 Animated Tooltips

( Demo | Download )

Curving Text with CSS3 and jQuery

( Demo | Download )

Timeline Portfolio

( Demo | Download )

Making a Page Flip Magazine with turn.js

( Demo | Download )

Making an Impressive Product Showcase with CSS3

( Demo | Download )

Apple-like Login Form with CSS 3D Transforms

( Demo | Download )

CSS3 Multilevel Menu with Transition and Animation

( Demo | Download )

Change Image on Click with jQuery

( Demo | Download )

How to Create a CSS3-Only Tab Control Using the :target Selector

( Demo | Download )

How to Code a jQuery Rolodex-Style Countdown Ticker

( Demo | Download )

Building an E-mail Request Invite Form with jQuery

( Demo | Download )

Interactive Menu with CSS3 & jQuery

( Demo | Download )

Create an Audio Player in HTML5 & CSS3

( Demo | Download )

Responsive Horizontal Layout

( Demo | Download )

Accdordion with CSS3

( Demo | Download )

How to Create Login Form with CSS3 and jQuery

( Demo | Download )

Animated Web Banners with CSS3

( Demo | Download )

Slideshow with Jmpress

( Demo | Download )

Create Calendar using jQuery and CSS3

( Demo | Download )

Login and Registration Form with Html5 and CSS3

( Demo | Download )

Filter Functionality with CSS

( Demo | Download )

How to Create an Image Slider using jQuery and CSS3

( Demo | Download )

Pretty Simple Content Slider with jQuery and CSS3

( Demo | Download )

Parallax Contenet Slider with jQuery

( Demo | Download )

How to Create an Upload Form using jQuery and PHP

( Demo | Download )


We hope that you will find this collection of useful tutorials helpful for you. These jQuery tutorials are designed to help you use jQuery more proficiently and effectively. Without any further ado, here we are presenting the complete list of some fresh jQuery tutorials that were released in 2012. Enjoy!

April 24 2012


Visual LightBox Giveaway: 5 Commercial Licenses for Unlimited Websites

This is the link to the original article creator of this site, if this message appears to another site than 1stwebdesigner - Graphic and Web Design Blog - 1stwebdesigner is a design blog dedicated to bloggers, freelancers, web-developers and designers. Topics focus on web design and inspirational articles. it has been stolen, please visit original source then!

Visual LightBox is a jQuery Image Gallery with beautiful Lightbox-style overlay effect and a lot of nice gallery templates. Visual LightBox comes with drag&drop GUI wizard for Mac and Windows to create your gallery in just a couple of clicks – without coding or image editing.

For this week, Visual LightBox is giving away 5 commercial licences of their elegant image gallery slider with a nifty lightbox-style effect. Perfect for photographers, graphic designers, and just about any artists out there looking for beautiful ways to present their works!

The Giveaway

Visual LightBox includes several templates that you can choose from, depending on your mood or taste. See below for three of the latest additions.

In Action

See demo here!

And of course like everything else, it has a free version that you can try right now. Download the free version now!

Behind the Scenes

Below is a screenshot of how Visual LightBox works behind the scenes. As you can see, it is only a matter of adding the images you want to use for the image slider, totally without requiring you to code!

Key Features:

  • GUI wizard for Mac and Windows – no coding
  • Beautiful templates and effects
  • Slideshow with autostart option
  • jQuery powered
  • Degrades gracefully when Javascript is off
  • Search engine friendly
  • Clean and valid markup
  • Cross-browser compatibility
  • Flickr, PhotoBucket, Picasa support
  • Automatic thumbnail creation
  • Visual insert-to-page
  • Built-in FTP
  • Sort, rotate, resize images
  • Translated to 31 languages

How to Win:

  • Comment below on what you think about this product – use your real email so that we can contact you in case you win!
  • Like, Tweet, and +1!

Winners will be selected using and will be announced exactly a week from now.

Good luck!

April 09 2012


Techniques for Test-Driving Your JavaScript: New on Premium

In this hands-on Premium screencast, from scratch, we’ll use test-driven development to build a jQuery plugin. Along the way, we’ll take advantage of Grunt, QUnit, and GitHub to build, test, and distribute our plugin, respectively. If the idea of testing in JavaScript is still foreign to you, you won’t find a better introduction!

Become a Tuts+ Premium member to watch this 45 minute screencast, as well as hundreds of other advanced videos, tutorials, and courses.

You’ll Learn How to:

  • Use Ben Alman’s Grunt build tool to expedite the process of generating and building new plugins
  • Take a test-driven approach to creating jQuery plugins – using QUnit
  • Distribute code in seconds with GitHub

Of course, you’re likely to pick up a variety of other neat tips and tricks along the way!

Tuts+ Premium

The recently re-launched Tuts+ Premium is a service that provides top-tier training in a variety of creative fields. Whether you prefer books, visual training, or in depth tutorials, we have you covered. While we unfortunately can’t afford to provide the service for free, it’s only $19 a month – less than you’d spend on dinner.

I hope you’ll consider checking it out! In addition to learning a huge variety of new skills, it’s also a fantastic way to say thank you to Nettuts+.

April 05 2012


Build a Contacts Manager Using Backbone.js: Part 5

Welcome back to the Building a content viewer with Backbone series. Over the first four parts, we looked at almost every major component that ships with the latest version of Backbone including models, controllers, views and routers.

In this part of the tutorial, we’re going to hook our application up to a web server so that we can store our contacts in a database. We won’t be looking at LocalStorage; this is a popular means of persisting the data that Backbone apps use, but the fact is there are already a number of excellent tutorials available on this subject.

Getting Started

We’ll need a webserver and a database for this part of the tutorial. I use Microsoft’s VWD as an editor, which ships with a built-in web server and works well with MSSQL server, so this is what we’ll be using. In truth, it doesn’t really matter which stack you decide to go with.

Installing and configuring either of these technologies (VWD and MSSQL server) is beyond the scope of this tutorial, but it’s relatively straight-forward to do and there are plenty of good guides out there.

Once installed, you’ll want to set up a new database containing a table to store the data in. The table columns should mirror the different properties our models use, so there should be a name column, an address column, etc. The table can be populated with the example data we’ve used throughout the series so far.

One column that should appear in our new table, but which we haven’t used in our local test data is an id, which should be unique to each row in the table. For ease of use, you probably want to set this to auto-increment when the data is added to the table.

Backbone Sync

In order to communicate with the server, Backbone gives us the Sync module; this is the only major module that we haven’t used yet and so understanding it will complete our knowledge of the fundamentals of the framework.

Calling the sync() method results in a request being made to the server; by default, it assumes either jQuery or Zepto is in use and delegates the request to whichever of them is present to actually perform. It also assumes a RESTful interface is awaiting on the back-end so by default makes use of POST, PUT, GET, DELETE HTTP methods. As we’ve seen, Backbone can be configured to fall back to old-school GET and POST methods with additional headers which specify the intended action.

As well as being able to call sync() directly, models and collections also have methods that can be used to communicate with the server; models have the destroy(), fetch(), parse() and save() methods, and collections have fetch() and parse(). The destroy() fetch() and sync() methods all defer to sync() whether being used with models or collections. The parse() method, called automatically whenever data is returned by the server, is by default a simple no-op which just returns the response from the server, but can be overridden if we wish to pre-process the response before consuming it.

Page Load Caveat

The way model data is bootstrapped into the page will vary depending on the back-end technology being used.

The Backbone documentation for the fetch() method (of a collection) states that this method should not be used on the initial page load to request the required models from the server. It goes on to elaborate in the FAQ section that a page should have the required modules already available to the page on load to avoid the initial AJAX request.

This is a great idea and while we don’t explicitly have to follow the advice, doing so will make our application just a little bit snappier, and that can only be a good thing.

The way model data is bootstrapped into the page will vary depending on the back-end technology being used. We’re going to be using .net in this example, so one way of doing this would be to dynamically create a <script> element containing the required model data, and inject it into the page. To do this we’ll need to convert our index.html file to index.aspx instead (we’ll also need an index.aspx.cs code-behind or class file too). But doing this raises a new issue.

Using Underscore Microtemplates in an ASPX Page

We can lift the ‘Mustache-style’ example straight off of the Underscore documentation page.

The problem with Underscore templates is that they use <%= to specify placeholders in the template that are replaced with actual data when the template is consumed. This is the same syntax that ASPX pages use to run dynamic .Net code within HTML tags. The Underscore templates that we’ve used in this example so far prevent the ASPX page from running correctly and instead it displays a server error.

Fortunately there are several ways around this problem, the simplest way being to change the syntax used to specify the placeholders used in the templates. Underscore exposes the templateSettings property for this very purpose, allowing us to easy specify a regular expression used to match the symbols we wish to use. We can lift the ‘Mustache-style’ example straight off of the Underscore documentation page in fact; at the start of our app.js file (within the very outer function) we can just add the following code:

_.templateSettings = {
    interpolate: /{{(.+?)}}/g

All this does is supply a new regular expression to the interpolate method, which allows us to use the alternative syntax {{ property }} instead of <%= property %>. We should also at this point go through the templates and change all of the original template tags to use the new syntax.

Although this is not something we’ve used in our templates so far, there are also additional symbols that Underscore can use. We can evaluate JavaScript using <% and can escape data using <%-. If we wish to use these in our templates and have replaced the interpolate property, we should also configure the evaluate and escape Underscore properties as well.

Bootstrapping the Model Data

We can now think about delivering the model data that is stored in a database to our page when the page is initially rendered. We can easily do this be adding a simple method to the class file for our ASPX page that reads the records from the database and creates a list of objects where each object represents a single contact. We can then serialise the list into a JavaScript array and inject it into the page. As long as the array has the same format as the dummy array we used in the first four parts of this tutorial, we won’t have to change our front-end code.

As a placeholder for the array, we can just add a new <script> element to the body of the page, directly before the reference to app.js, which calls the method in the code-behind:

    var contacts = <%= getData() %>

The actual logic in the code-behind that performs the database read and list serialisation could vary wildly depending on the implementation, and is somewhat beyond the scope of this tutorial – we’re more interested in getting that initial payload on the page than we are about how we actually get it. Feel free to check out the class file in the accompanying code download for probably the quickest and easiest, but by no means the best, way to do it.

At this point, we should be able to remove the contacts array that held our dummy data from app.js, run the page (through the built-in WVD webserver, or IIS) and see exactly the same page, with almost the same functionality, as we saw at the end of part 4. Yay!

Syncing Our App With the Server

In this example, I’ve used a .net 4.0 ASMX file to handle the requests from the front-end. In order for the back-end to see the data sent to it, we should configure the emulateHTTP and emulateJSON Backbone properties. Add the following lines of code directly after where we changed Underscore’s template syntax:

Backbone.emulateHTTP = true;
Backbone.emulateJSON = true;

Whether or not you’ll need to configure these properties when building a Backbone app for real depends entirely on the back-end technology you choose to work with.

So, our application could modify the data in several ways; it could change the attributes of a contact that already exists, it could add an entirely new contact, or it could delete a contact that already exists.

The logic to do all of these things on the front-end already exists, but now that a server is involved, the behaviour of the page has already changed. Although the page will render as it did before, if we try to delete a contact, Backbone will throw an error complaining that a url has not been defined. The reason for this is because we used the destroy() method in the deleteContact() method of our ContactView class.

Let’s look at how to restore the delete functionality. The first thing we should do then is define a url attribute for our models. Add the property to the Contact class that defines an individual model:

url: function () {
    return "/ContactManager.asmx/ManageContact?id=" + this.get("id");

We specify a function as the value of the url property, which returns the URL that should be used to make the requests to. In this example, we can use an asmx web service file to handle the requests. We also add the name of our web method (ManageContact) and add the id of the model as a query string parameter.

Now if we delete one of the contacts when we run the page a POST request is made to the web service. An X-HTTP-Method-Override header is added to the request which specifies that the intended HTTP method was DELETE. We can use this in our web service logic to determine what action to take on the database.

Next we can update the saveEdits() method of the ContactView class so that it notifies the web service when a contact is edited; change the line of code that uses the set() method so that it appears like this:


All we do is chain the save() method on to the set() method. The save() method delegates to the sync() method which makes a POST request to the server. As before the id of the model is sent as a query string and an X-HTTP-Method-Override is used to specify the intended PUT method. This time however, the Content-Type header is set to application/x-www-form-urlencoded (if we didn’t configure the emulateJSON property it would be application/json) and the model data is sent as a form data, which we can use to make whatever changes are necessary.

All that is left to do on the front-end is to update the addContact() method of the DirectoryView class. Previously in this method we had an if statement that checked the type of the model being added to see if the select menu needed to be updated. We should now change that if statement so that it appears as follows:

if (_.indexOf(this.getTypes(), formData.type) === -1) {


We’ve trimmed the if statement down to remove the else condition, making the code a bit tidier. We’ve also removed the add() method and added the create() method in its place. The create() method will actually add the new model to the collection automatically without us manually creating a new instance of our model’s class, and it will also make a request to the server, once again delegating to sync().

This time the X-HTTP-Method-Override header does not need to be set, because POST is the method that we would use were the request being made to a RESTful interface anyway. As with the save() method, the model data passed to the create() method is delivered to the server as form data.

As with the server-side code used at the start of this part of the tutorial to bootstrap the initial model data into our app, the code used to process and handle the requests made by Backbone is beyond the scope of the tutorial. We’re interested only in the front-end here. As before, the Web service used for this demo is included in the code archive and is fully commented, so check it out if you’re interested. I’ve also included a database backup, which you should be able to restore in order to get going with the demo data.


In this part of the tutorial, we looked at some of the methods we can use which delegate to Backbone’s sync() method in order to communicate with a back-end that can persist the changes made using the front-end of the application.

We saw how Backbone by default makes RESTful requests to a specified URL and how we can configure it in order to work with legacy servers that do not operate on REST principles. We also looked at some of the methods that delegate to sync() in order to communicate with the server. Specifically, we covered the remove(), save() and create() methods and looked at what is sent to the server and how.

We also looked at how easy it is to change the symbols that Underscore uses in order to interpolate data into a template. This now concludes the Contact Manager tutorial; while there are many more features we could add to the application, we have now covered the basics of what it takes to build a fully-functional application using the excellent Backbone.js. Thanks for reading.

March 26 2012


AJAX User Table Management in CodeIgniter: New on Premium

Learn how to use CodeIgniter and the jQuery library to create a slick, AJAX-utilizing management page for a typical “Users” table, and discover some of the awesome features of jQuery UI.

This Tuts+ Premium exclusive tutorial will guide you through the process of creating a slick, AJAX-utilizing management page for a typical “Users” table in a MySQL database. We will cover a range of topics, in both CodeIgniter and jQuery, including creating and using Models, Controllers and Views, the Form Validation class, and jQuery UI.


Tuts+ Premium

The recently re-launched Tuts+ Premium is a service that provides top-tier training in a variety of creative fields. Whether you prefer books, visual training, or in depth tutorials, we have you covered. While we unfortunately can’t afford to provide the service for free, it’s only $19 a month – less than you’d spend on dinner.

I hope you’ll consider checking it out! In addition to learning a huge variety of new skills, it’s also a fantastic way to say thank you to Nettuts+.


March 22 2012


Build a Contacts Manager Using Backbone.js: Part 4

In part three of this series, we saw how easy it is to add and remove models from our collection, and keep the page updated in sync with the changes. In this part, we’re going to look at editing existing model data.

Getting Started

We’ll start out by adding another simple button to the template, which will enable editing of its data:

<button class="edit">Edit</button>

As we are adding this button to our existing template, we can also add an entirely new template that can be used to render an editable form in which the model data can be changed. It’s very similar to the exiting template, and can be added to the page after the existing template:

<script id="contactEditTemplate" type="text/template">
<form action="#">
    <input type="file" value="<%= photo %>" />
    <input class="name" value="<%= name %>" />
    <input id="type" type="hidden" value="<%= type %>" />
    <input class="address" value="<%= address %>" />
    <input class="tel" value="<%= tel %>" />
    <input class="email" value="<%= email %>" />
    <button class="save">Save</button>
    <button class="cancel">Cancel</button>

The new template consists mostly of <input> elements that expose the editable data. We don’t need to worry about labels for the elements, but instead use the data from the model as the default values of each input. Note that we’re using a hidden form field to store the type attribute of the model, we’ll use this to set the value of a <select> that we need to add using our script instead of having the template render it.

Next we can bind some event handlers for the new buttons we’ve added; update the events object in the ContactView class so that it contains the following new bindings:

"click button.edit": "editContact",
"change select.type": "addType",
"click": "saveEdits",
"click button.cancel": "cancelEdit"

Don’t forget to add the trailing comma to the end of the existing binding! These are very similar to the bindings we’ve used before; each key:value pair simply specifies an event to listen for and a selector to match the element that triggers the event as the key, and the event handler to execute on detection of the event as the value.

Switching a Contact Into Edit Mode

In the same way that we stored a reference to the template function under the template property of our ContactView class, we should also store a reference to the template function that we’ll use to switch the contact into edit mode. Add editTemplate directly after the template property:

editTemplate: _.template($("#contactEditTemplate").html()),

Now we can add the event handlers themselves, which should also go into the ContactView class after the existing deleteContact() method. First, we’ll add the editContact() method:

editContact: function () {

    var newOpt = $("<option/>", {
        html: "<em>Add new...</em>",
        value: "addType"
    }), = directory.createSelect().addClass("type")


We start out by rendering our new editTemplate that we added to the page using Underscore’s template() method in the same way that we added each contact using the standard display template.

In order to make editing the type of contact easier we can render a select box that lets the user switch easily between existing types, but we also want to cater for the possibility that the user may want to add a new type. To allow for this, we’ll create a special option for the select box with the text Add new... and a value of addType.

We then create the new <select> element using the createSelect() method of our master view, which if you recall from the last part in this tutorial will return a <select> element containing an <option> for each unique type in the collection. We give it a class name, and to get the <select> element to show the existing type of the contact being edited we set its value to the value of the hidden <input> we added in our template. We then insert the new <select> after the <input> for the contact’s name. The new select element is added as a property of the view instance so that we can interact with it easily.

Once we’ve added the <select> element for the contact’s type, we can then remove the hidden field so that it doesn’t interfere with saving the edit, which we’ll look at shortly.

At this point, we should now be able to click the edit button in any of our contacts and have the contents of that contact converted into a form:

Adding a New Type

One of the event bindings we added was for the change event of the type select box, so we can add a handler which replaces the <select> box with a standard <input> element:

if ( === "addType") {;

    $("<input />", {
        "class": "type"

When the <select> element’s value changes we first check whether its value is addType and if so, we remove the element from the page and create a new <input> element to replace it. We then insert the new element using jQuery’s insertAfter() method and focus it ready for text entry.

Updating the Model

Next we can add the handler that will take the changes made in the edit form and update the data in the model. Add the saveEdits() method directly after the editContact() method that we just added:

saveEdits: function (e) {

    var formData = {},
        prev = this.model.previousAttributes();

    $("form").find(":input").add(".photo").each(function () {

        var el = $(this);
        formData[el.attr("class")] = el.val();

    if ( === "") {



    if ( === "/img/placeholder.png") {

    _.each(contacts, function (contact) {
        if (_.isEqual(contact, prev)) {
            contacts.splice(_.indexOf(contacts, contact), 1, formData);

First of all, we create an empty element to store the data that has been entered into the form, and also store a copy of the previousAttributes of the model that belongs to the view we’re working with. The previousAttributes property of models is a data store that Backbone maintains for us so that we can easily see what an attribute’s previous attribute data was.

We then get each input element from the form using a combination of jQuery’s find() method and the :input filter, which gives us all of the form fields. We don’t want the cancel or save <button> elements though, so we remove them from the selection using jQuery’s not() method.

Once we have our collection of fields, we iterate over them using jQuery’s each() method and for each item in the collection, we add a new key to our formData object using the current item’s class, and a new value using the current item’s value.

When we convert the editable contact back into a normal contact, we don’t want to lose the default photo if a new photo has not been chosen. To make sure we don’t lose the default photo, we can delete the photo property from our formData object if its value is blank.

Backbone models have a setter method that can be used to set any attribute.

Backbone models have a setter method that can be used to set any attribute. In order to update the model’s data we just call its set() method passing in the formData object that we have prepared. Once this is done we call the view’s render() method and our newly updated model will be rendered back to the page, with any updated information from the form.

As we have done previously, we need to update the data stored in our original contacts array so that filtering the view doesn’t lost any changes we have made. We do this in a very similar way as before, first checking whether the photo property has the default value and removing it if so, and then using a combination of Underscore’s each() and isEqaul() methods to find the item in the contacts array that has changed. This is where we use the previousAttributes that we saved earlier; we can’t use the current model anymore because its attributes have just been updated.

We use the native JavaScript’s splice() function to update the contacts array. As before, we obtain the index of the item to update using Underscore’s indexOf() method as the first argument to splice() and set the function to update a single item using the second argument. This time we supply our formData object as the third argument. When splice() receives three (or more) arguments, the third argument is the data to replace the data that has just been removed.

Cancelling the Edit

We have one button left that we need to add a handler for – the cancel button. This method will be very simple and will just switch the contact back into non-edit mode, using the original data from the model. Add this method after the saveEdits() method:

cancelEdit: function () {

That’s all we need to do! We already have a method that takes a model and renders it as a view on the page, so we simply call this method and the original model data will be used to recreate the original contact. This is useful because even if someone changes the data in the form fields while the contact is in edit mode, when the cancel button is clicked, these changes will be lost.


In this part of the tutorial we’ve looked at how we can update the data of an existing model rather than creating a whole new model. To do this we essentially just need to call a model’s set() method and pass in the new attributes that we wish to set.

As with Backbone however, we’ve only covered a small fraction of what these libraries provide, there is so more that we can use when building complex applications on the front-end.

As we saw however, we also need to think about how we can change the view to allow the visitor to enter the data that will be set as the new attributes. In this example, we achieved this by creating another template to handle rendering a form pre-filled with the existing attribute data which the user can overtype to change.

Over the course of this series, we’ve looked at all of the major components of Backbone including Models, Collections, Views and Routers and Events. We’ve also looked at some of the methods and properties provided by Backbone that we can use to interact with the different constructs to produce an integrated, functioning application, albeit a basic one.

As well as learning some Backbone basics, one of the most important aspects of the tutorial was in how the application is structured, with all of our code organised in a logical and consistent way. Applications written in this style can be much easier to return to and maintain on the long-term. Much of our functionality was event driven, either in response to the actions of the visitor in the form of UI event handlers, but some were also driven by changes to the collection and triggered manually at the appropriate point in our code.

We’ve also looked at some of the utilities provided by Underscore which has given us easy ways to work with the objects and array that form the foundation of our application. As with Backbone however, we’ve only covered a small fraction of what these libraries provide, there is so more that we can use when building complex applications on the front-end.


How to Create a Helpful Plugin With Twitter Anywhere

Twitter Anywhere is a “one-script-include” solution from Twitter to bring the power of their communication platform to your website. We’ll be building a small jQuery script that utilizes Twitter Anywhere for your users.

Step 1: Registering Your Application

The first step in the Twitter Anywhere process is to create an application. The registration can be found here. The only field that might cause any level of confusion is the Callback URL. This is to be used when Twitter authenticates the user; it specifies where on your site you want to send the authenticated user back to. For most smaller applications, your website’s homepage will likely be sufficient, however, for larger applications, you may want to direct the user back to an area that serves appropriate content for authenticated users.

One important setting worth noting is the Application Type. Now this won’t appear in the Application creation process, but will be available by going to your apps, finding your new application, clicking the Settings tab next to Details, and changing the radio button from “Read Only” to “Read and Write” in the Application Type sections.

To be honest, it’s embarrassing for me to admit how much time went by, while debugging, before I decided to look here!

Step 2: What’s the Script Going to Do?

Using Twitter Anywhere, we’re going to concentrate today on the Tweet Box feature. The Tweet Box provides excellent transparency between your website and Twitter, allowing users to tweet directly to their account without leaving your website, and, more importantly, continuing to interact with your content.

The jQuery script we’re going to write today could easily be adapted into a jQuery or WordPress plugin. The script will detect the user highlighting a piece of text in say, your blog post, and display a “Tweet this” button. Once the user clicks this button, the script will take the highlighted text and call the Tweet Box function from Twitter Anywhere, inserting the highlighted text as the tweet body.

The user can then either leave the tweet as it is – with a link back to the page they’re on – or they can edit any part of it before tweeting.

Security is vital here; the slightest bit of misuse, and the user will revoke access in their settings – and not likely return to give your application a second chance. So, always give the user a preview of exactly what will be posted to their account; it’s generally a good practice to make them press the button before processing the tweet.

Tweeting Direct Image Links

The script will also allow for the user to click on any of your images, and achieve the same Tweet Box effect. In this particular instance, the tweet will reference the direct URL to the image.

Step 3: Setting Up the JavaScript Files

<script src=""></script>
<script src=""></script>
<script src="[API-KEY]&v=1"></script>
<script src="http://path-to-script/copybot/script.js"></script>

As you can see above, we need to include a few JavaScript files to make our plugin function correctly.

  • We’ll be using jQuery for its ease of use and nice selector engine.
  • We’ll use jQuery UI for basic user interaction; when the Tweet Box pops up, we can allow the user to drag it around with their mouse.
  • The next JavaScript include is the Twitter Anywhere file itself. Luckily for us, it’s fairly lightweight, coming in at just over 7KB. As you can see, you’ll need to supply your API key, which can be found in the Settings of the App page from earlier in this article.
  • The last file is our own script; this will hold all of our jQuery code and Tweet Box function calls.

Step 4: Beginning Our Code



We’ll start in our JavaScript file by containing everything within jQuery’s document ready method. Everything in here will fire after the DOM has fully loaded, saving us from any potential errors.

function getSelectionText() {
    var text = "";

    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    return text;

The above piece of code will allow you to grab the highlighted text from the user once they have selected it. This code is a fairly standard function, and can be found (and documented) all over the internet.


We can then begin to interact with the user with a mouse up event. In this particular page of HTML, I have created a div with a class of ‘post‘. For the tutorial, we are simply targeting this div so that the code doesn’t run every time the user mouses up on the page. Once the user mouses up within this div, we will display a button to the user that allows them to tweet the highlighted text.


This method uses jQuery UI to allow the user to drag the Tweet Box around at their leisure. We don’t pass any options to it as the default functionality will suffice for what we’re doing.

		var text = getSelectionText();

		if(text != ''){
			twttr.anywhere(function (T) {
			      height: 100,
			      width: 400,
			      defaultContent: '"' + $.trim(text) + '" - ' + document.title + ' - ' + window.location.href




Here is where the meat of our plugin’s functionality will take place. On click of the “Tweet This” button, we will begin by emptying the contents of the Tweet Box. This allows the user to highlight a different piece of text and tweet that instead.

The next line will declare a variable to hold the user’s selected text from our function call. We then do a quick check to determine if the user actually selected any text, and proceed with our Tweet Box initialization.

From the official documentation:

“The @anywhere JavaScript file establishes a single global object (twttr). To use @anywhere, call the anywhere method, and pass in a callback. The callback will receive an instance of the Twitter API Client (named “T” by convention) as its only argument. All @anywhere features are available as members of the Twitter API Client.”

This means that you can call any of these methods on the Twitter API Client (“T”): Auto-linkification of Twitter usernames, Hovercards, Follow buttons, Tweet Box, User login & signup. Your application can make multiple calls to the ‘anywhere‘ method, so don’t be afraid about limiting the functionality of your site!

As you can see, we then target “#tbox“, to be filled with Twitter’s Tweet Box feature. As you might have noticed, if you work with jQuery, it uses similar CSS selectors when querying the DOM.

If we were to call .tweetBox(); without any options, then the Tweet Box would take it properties from the defaults outlined in the Documentation. We use the defaultContent property to insert the user’s selected text into a Tweet, along with the current page title and location. We use jQuery’s $.trim function to get rid of any unwanted whitespace from the user’s selection, which would cost them characters in their Tweet.

We can then display the created Tweet Box to the user, ready for them to approve and tweet!

Step 5: Tweeting Image URLs

	var url = $(this).attr('src');

	twttr.anywhere(function (T) {

	      height: 100,
	      width: 400,
	      defaultContent: 'Check out this image: ' + url




The code above provides the user with the ability to tweet a direct image URL to their account. We set up the Tweet Box exactly as before but, we use the ‘src‘ of the ‘img‘ element this time as the dynamic variable instead of highlighted text.
This could easily be adapted for HTML5 videos, if you desire to target them instead of images.

A Bit Little Housekeeping


The above code simply allows the user to get rid of the Tweet Box after they have tweeted or if they change their mind about tweeting. We empty the div element ready for the next selected text or image URL.

Step 6: Possible Use Cases

This sort of functionality would lend itself perfectly to a blog.

Having this code adapted into a WordPress plugin would allow users to tweet quotes from your articles, increasing exposure and spreading your content across the internet.

The image URL tweeting would fit nicely on a photography or web design portfolio site where the user can tweet your pieces of work. Or, this script could be turned into a properly formed jQuery plugin for use on any website; static; CMS driven or Tumblr – the possibilities are endless.

Final Thoughts

The Twitter Anywhere platform is a fantastic way to layer Twitter functionality onto your site.

The Twitter Anywhere platform is a fantastic way to layer Twitter functionality onto your site. From personal experience, I think it is just that: a layer. I wouldn’t feel comfortable building an entire application with it. The documentation is rather slim, and the first thing you may notice when using it yourself is how much potential it has, how much functionality could be in there, and how it’s partially lacking right now.

For example, currently, you can retrieve a user’s Favorites count – just the count, no content. This extra functionality would make Twitter Anywhere stand up level with the Server Side REST API that exists already, powering very complex, vast applications.

Good luck with this platform and try to find an interesting use case for some of its easy-to-implement features! In the meantime, check out the demo Copybot. Thanks for reading!

March 21 2012


Extensive Collection Of jQuery Drag And Drop Plugins

jQuery allows you to create stylish yet user friendly websites that are not only pleasing to the eye but also are very lightweight and load quite quickly. This is the reason why jQuery has a special place in the field of web development. jQuery is getting better day by day thanks to the jQuery community that continuously share awesome plugins. At the moment, we are sharing with your some extraordinarily amazing jQuery plugins for drag and drop feature.

With these plugins, you will allow your visitors to personalize the website and its tools according to their needs; and in this way you provide them with loads of customization option that every user simply love! We hope that you will like this collection and find these plugins helpful for you.

jQuery mb.containerPlus

( Demo | Download )

This is a useful plug in to build full featured and fully skinnable containers. The container can be set to draggable, resizable, collapsable and minimizable.

jQuery Reel Plugin

( Demo | Download )

Reel is a jQuery plugin which takes an image tag and makes it a live “projection” of pre-built animation frames sequence. Its aim is to provide a 360° view of something or someplace. Great alternative to widely used Flash and Java techniques.


( Demo | Download )

CropZoom is a plugin that let you select an area of an image and then crop it. whit this tool you also will be able to zoom in or to zoom out, to drag and also rotate an image.


( Demo | Download )

A jquery special event plugin that makes the task of adding complex drag interactions, to any element, simple and powerful.

jQuery TextAreaResizer plugin

( Demo | Download )

This project allows the user to extend the textarea element/area within the web page whenever they feel.


( Demo | Download )

ppDrag is a Drag&Drop plugin for jQuery, which mimics the interface of jQuery UI’s Draggable. Currently supported is a small subset of its options, but the implementation is different (ppDrag focuses on performance).

jQuery Resizable and Draggable

( Demo | Download )

In this tutorial, we will show you how to do Resizing and Dragging of a DIV using jQuery UI. I will show you the demo of a DIV, which can be resized by pulling up the edges and also dragged here and there.

jQuery UI multiple draggable plugin

( Demo | Download )

The jQuery multiple draggable plugin is an extension to the jQuery UI Draggable plugin. This plugin extends the current functionality to allow for elements to be grouped and dragged as a group. The aim of the plugin is to include all of the current functionality listed in the options.


( Demo | Download )

With this plugin you can resize rectangle with content easily.

Drag To Share

( Demo | Download )

We’ve all seen the brilliant functionality on Mashable where news stories and interesting articles can be shared to social networking sites; the functionality is driven by the images accompanying the articles; you click and hold on an image and can then drag it into a toolbar to share it. It’s brilliant and intuitive, and in this article I’m going to show you how we can replicate this behavior with jQuery and jQuery UI.

Jquery Iviewer

( Demo | Download )

JQuery.iviewer is an jquery ui widget representing image viewer component used to load and view image with ability to zoom image and to drag it with mouse in container.

How to Mimic the iGoogle Interface

( Demo | Download )

In this tutorial, we will show you how to create a customizable interface with widgets. The finished product will be a sleek and unobtrusively coded iGoogle-like interface, which has plenty of potential applications!

Drag’n Drop With jQuery And PHP

( Demo | Download )

Drag’n drop generally looks hard-to-apply but it is definitely not by using JavaScript frameworks. Here is, how it is done by using jQuery & jQuery UI.


( Demo | Download )

The jQuery mapbox() plugin is for creating relatively small scale, zoomable, draggable maps with multiple layers of content. This framework could be applied to games, development plans, or any layout that could benefit from being able to zoom in and pan to get a better view.

Interface plugin for jQuery

( Demo | Download )

Interface is a collection of rich interface components which utilizes the lightweight JavaScript library jQuery. With this components you can build rich client web applications and interfaces with the same simplicity as writing JavaScript with jQuery.


( Demo | Download )

With this plugin you can build a similar effect as in Google maps where you drag contents of a div acting as a viewport.

Table Drag and Drop JQuery plugin

( Demo | Download )

This TableDnD plugin allows the user to reorder rows within a table, for example if they represent an ordered list (tasks by priority for example). Individual rows can be marked as non-draggable and/or non-droppable (so other rows can’t be dropped onto them). Rows can have as many cells as necessary and the cells can contain form elements.


( Demo | Download )

The jQuery UI Draggable plugin makes selected elements draggable by mouse.

Creating a Draggable Sitemap with JQuery

( Demo | Download )

In this tutorial we will be creating a Draggable Sitemap with JQuery.

Drag & Drop with PHP & jQuery

( Demo | Download )

With this plugin you can Drag & Drop anything easily with PHP & jQuery.

Drag & Drop Sortable Lists

( Demo | Download )

Drag & Drop Sortable Lists with JavaScript and CSS

jQuery List DragSort

( Demo | Download )

A javascript file that provides the ability to sort lists using drag and drop. Built on the jQuery framework.

Drag everything in HTML page

( Demo | Download )

Ultra small code to drag everything in HTML pages

jQuery Draggable

( Demo | Download )

Drag and Drop Captcha

( Demo | Download )

Ajax Fancy Captcha is a jQuery plugin that helps you protect your web pages from bots and spammers. We are introducing you to a new, intuitive way of completing “verify humanity” tasks. In order to do that you are asked to drag and drop specified item into a circle.

jQuery: Customizable layout using drag and drop (examples)

( Demo | Download )

Drag and drop items within and between lists. A visual helper is displayed indicating where the item will be positioned if dropped.


( Demo | Download )

jqDnR is a lightweight plugin for jQuery that lets you drag, drop, and resize elements.

Collapsible Drag n Drop

( Demo | Download )

Drag n Drop panels are great to let the user control how he/she wants to see the information as he can arrange various information blocks according to his preference. This type of functionality is often provided by web portals or personal homepage services like iGoogle.


( Demo | Download )

With this plugin you can drag and drop in a easy way.

Draggable Image Boxes Grid

( Demo | Download )

In this tutorial we will create a template with a fullscreen grid of images and content areas. The idea is to have a draggable grid that shows boxes of thumbnails and menu like items. Once clicked, the thumbnail will expand to the full size image and the menu item box will expand to a fullscreen content area.


( Demo | Download )


( Demo | Download )

animaDrag is an ultra lightweight drag and drop plugin that is independent of the jQuery UI framework. AnimaDrag allows draggable items to be eased by jQuery animation, which UI draggables do not allow.

EasyDrag jQuery Plugin

( Demo | Download )

It’s very simple, first you call the easydrag() method as in the old version and then you call the setHandler() method passing to it the id of the element that will act as the handle. The handle MUST be a child element of the content that will be dragged.

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.
No Soup for you

Don't be the product, buy the product!

YES, I want to SOUP ●UP for ...