Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Implementing something fun with JavaScript

From: WordPress 3: Creating and Editing Custom Themes

Video: Implementing something fun with JavaScript

We are now going to cover adding some custom JavaScript to our theme. So in order to do that, we are going to have to have some custom JavaScript files that we link out to of our own creation in our theme. So I'm going to open up our whole project here. We have our whole theme opened up as a TextMate project. You can see we have this JavaScript folder. It is just an empty folder sitting there in our theme and that's where we are going to put any JavaScript files that are specific to this theme. So I'm going to put a new one in there,. We'll just call it widgetcorp.js.

Implementing something fun with JavaScript

We are now going to cover adding some custom JavaScript to our theme. So in order to do that, we are going to have to have some custom JavaScript files that we link out to of our own creation in our theme. So I'm going to open up our whole project here. We have our whole theme opened up as a TextMate project. You can see we have this JavaScript folder. It is just an empty folder sitting there in our theme and that's where we are going to put any JavaScript files that are specific to this theme. So I'm going to put a new one in there,. We'll just call it widgetcorp.js.

So Widget Corp just being the name of this website and it's a kind of symbolic to us saying that this is a JavaScript file that we intend to load on every page of this site, whereas if we're going to write a JavaScript file that was just for the blog, say for example, we would probably call it blog.js. We are just inventing this name here. And this is going to be where we can write our own custom JavaScript that we will do with this theme. We need to load it though; we need to make sure that this JavaScript file is called. We can do that in our header.php file. Now I know we have just covered enqueuing scripts, which is a great way to go, and we are enqueuing jQuery.

So let's take a peek at functions.php quick to ensure that yes we are indeed enqueuing the script of jQuery. So in our header.php file that's going to get enqueued right here at this line. Now this JavaScript that we are going to write is going to be dependent on jQuery, so we need to load our script after this. Now if we were to just make a mistake and load it up here, our JavaScript isn't going to run correctly. So do take note of where this wp-head function is and load your custom scripts after it.

So we will say script and we're just going to need a source and we will close that script tag. Now what's that source going to be? It's in our template file, so we will go ahead and steal this little function right here where we linked out to our custom store.css. That's just giving us the URL of where our template lives on our server. We'll plunk that in here and then say /js/widgetcorp.js. So we will save that and we will reload this homepage and we are going to take a look at the source just to make sure that that worked properly.

So here is jQuery being loaded and then underneath that here this is where our widgetcorp.js file is being loaded. So that's going to work great for us. We could test quick, we could do something like-- let's see. A lot of jQuery starts like this. We'll wrap it in this, which means when the DOM is ready. We could do something dramatic like we will target the body tag and make its background red.

Just to prove to ourselves that this JavaScript is working. And wow! It's that ever red and working, so we will remove that for now because it definitely is working. What we are going to be doing is adding a span element to each one of these anchor links in our navigation, because in our style.css file we already have some CSS written to take care of that. So it gives it this special background image and it gives it some absolute positioning and you'll see what it does in a minute styling-wise.

So if we target every single link, which we can do with CSS selectors and JavaScript, like in our navigation all anchor links, like we could use this in CSS to style that, just a CSS selector, and say append, just put inside a span, and we will say inside that span is just a space character. Now as soon as we do that, because we have styling ready for it, it's going to append these little spans. So each of these little ribbon like things that look like they're sitting underneath this page are just because we have put that extra span there.

So that's pretty neat. Now each one of these ribbon things here in the sidebar also have and those of a class of date, so we can select multiple things in jQuery by just going like this, date. And we will reload that. Now each one of those has that as well. So it's a kind of a neat little effect. What we are going to be going for here though is kind of a grow-shrink effect as you scroll over these and we are going to do that and we are going to use a plug-in to help us do it. It's called the hoverFlow plugin, so just google hoverFlow and it will come right up and it solves a little animation problem in jQuery.

So just to cover that really quickly, this is what they're calling The Problem. You see if I scroll over these and then move my mouse away it queues up those animations and they keep going for ever and ever. The alternative is to use the Stop command but then they don't complete their animations. This hoverFlow plugin allows nice, smooth animations no matter what happens here. So it's a free download. I am going to click this button here and download this hoverFlow plugin to our Desktop. I'm going to minimize this stuff for a minute and I'm going to put this JavaScript file that we just downloaded from them into the JavaScript folder where our custom JavaScript file is. So let me drag that in here.

Now we have access to that as well. So in our header.php file as part of our theme, we loaded up our custom script but we are going to use this plug-in now, so just before our own script, we are going to load that. It's called jquery.hoverflow.min.js and I switch them around again. The whole point was to load the plug- in first, so we will do that. Now we have access to this hoverFlow function and it works like this.

Again, we are going to target all anchor links in our navigation and when you hover over it, this is the effect and we run our function. Now the e there represents the event that happened, which is going to be a Mouse Enter event. We are going to want something to happen and what we want to happen is something to this, which this refers to the anchor link that we just rolled over. We are going to do a number of things. We are going to use hoverFlow. We're going to give it the event type.

That's required for hoverFlow. We are going to tell it that we want to animate something. So when we hover in, we want to extend the width a bit. So we are going to say we want to extend the width to about 230 pixels, we want you to take 200 milliseconds to run that animation and while you're in there, we want to make sure that the overflow is visible. Then we are going to find that span, which is that little part that sticked out with the shadow, so we're going to find the span and we are going to use hoverFlow on it as well.

We are going to make it shorter than it normally is, so we are going to give a width of 15 and want you to take 200 milliseconds to complete that as well. Now the Hover function has a callback event. So we can do something like this. function. We will give it e again. That's the event. So this is going to run when your mouse out of something. This is the code that we want to run when our mouse enters an area and this is the code that we want to run when our mouse leaves the area. So I am going to copy this code and paste it in here and we want this to return to what it was before, which is about 215 pixels. We want the span to return to what it was before, which is about 20 pixels.

So if we save that and go back out to the web, we should notice a nice animation effect working on our header, so that as we roll over this, this area grows, the span gets shorter. As we move out, things kind of return to normal. So that's the effect that we are going for, capable, and we wrote it all by ourselves using our own custom JavaScript.

Show transcript

This video is part of

Image for WordPress 3: Creating and Editing Custom Themes
WordPress 3: Creating and Editing Custom Themes

40 video lessons · 51145 viewers

Chris Coyier
Author

 
Expand all | Collapse all
  1. 6m 44s
    1. Welcome
      1m 19s
    2. Using the exercise files
      5m 25s
  2. 40m 42s
    1. Reviewing the client spec and deciding on WordPress
      6m 50s
    2. Reviewing assets and resources and creating a mood board
      8m 41s
    3. Building a home page mockup
      11m 26s
    4. Finishing the home page
      12m 27s
    5. Planning the rest of the site
      1m 18s
  3. 1h 8m
    1. Starting with a base project
      3m 6s
    2. Writing HTML code for the home page
      12m 7s
    3. Starting the CSS: Creating the header and basic style structure
      11m 28s
    4. Styling the Navigation panel
      10m 59s
    5. Styling the sidebar
      7m 55s
    6. Styling the home page, pt. 1
      8m 20s
    7. Styling the home page, pt. 2
      8m 17s
    8. Finishing the CSS
      3m 14s
    9. Moving on: One page is enough
      2m 43s
  4. 1h 56m
    1. Setting up WordPress and MAMP on a Mac
      6m 7s
    2. Setting up WordPress and WAMP on a Windows computer
      5m 38s
    3. Modifying important settings
      6m 26s
    4. Starting with a blank theme template
      4m 35s
    5. Introducing template file structure
      4m 55s
    6. Breaking up the HTML
      9m 53s
    7. Building the sidebar
      3m 54s
    8. Building the navigation
      7m 20s
    9. Showing one recent post
      4m 1s
    10. Fetching external content
      8m 23s
    11. Creating a custom home page
      3m 30s
    12. Introducing custom fields
      5m 23s
    13. Creating custom product pages
      9m 52s
    14. Creating custom category pages
      15m 39s
    15. Creating the blog home page
      5m 39s
    16. Creating a single blog entry page
      4m 15s
    17. Implementing comments
      5m 57s
    18. Finishing the home page
      4m 45s
  5. 34m 17s
    1. Will this work with WordPress?
      3m 10s
    2. Using JavaScript in themes the right way
      8m 35s
    3. Implementing something fun with JavaScript
      7m 53s
    4. Introducing plug-ins
      6m 31s
    5. Setting up security
      8m 8s
  6. 2m 7s
    1. Goodbye
      2m 7s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed WordPress 3: Creating and Editing Custom Themes.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.