spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / dhtml / column37
Developer News
OpenOffice 3.2 Lands Amid Critical Changes
Red Hat, IBM Firmly in KVM Virtualization Camp
Red Hat Talks Up Open Source Cloud Plans

Logo

DHTML in GreatEqualizer.com, I:
Building A Great DHTML Chaser



Welcome to the first article of my series on www.GreatEqualizer.com.

In this article, I discuss the implementation of the DHTML "chaser" panel that follows you around as you scroll in the courses section of the website. To see what I mean, go to the search page enter some general criteria, and click "search." See how the panel on the right follows you around as you scroll...? In this article, I'll actually show you two ways to get that effect, one that's easy and one that's more compatible on a variety of platforms. We'll also delve into animation theory, some trigonometry, and simple object oriented programming. So get out some graph paper and a pen - this is where it gets fun .

To start, we should decide what makes a chaser good and what makes it terrible. The most aggravating chasers I've seen were set up so that they were constantly trying to stay exactly in step with the scroll position of the window - an impossible task. Since they cannot possibly stay perfectly in step with the browser window, what you get is an annoyingly jagged animation that makes people leave in a hurry. The problem is caused by the fact that the maximum frame rate that JavaScript can attain in a Web browser is relatively low. This number varies with each operating system (see an excellent article pertaining to this here on DHTML Lab), but on no operating system is it fast enough to keep up with the average user's scrolling.

How do we get past this problem? We can't. However, we can turn the problem into a feature by modifying the effect we try to achieve. We accept that the chaser will always lag behind the scrolling action of the window, and instead seek only to smooth and normalize that motion.

Here is a simple algorithm that gets the desired effect:

  1. Record the current distance the window has scrolled added to the distance you want it to maintain from the top of the window frame.

  2. Record the difference between the number derived in step 1 and the chaser's current position.

  3. Calculate the amount to move the chaser, by multiplying the number from step 2 by some constant positive fraction.

  4. Decrement the chaser's current position by the number derived in step 3.

  5. Go to step 1.

Before I show you the script, I need to explain one little-known JavaScript trick I use frequently - object literals.


Produced by Aaron Boodman and


The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers

webref The latest from WebReference.com Browse >
Installing and Using Meeplace, the Business Review CMS · Sending an HTML and Plain Text E-newsletter with ASP.NET, Part 2 · Create Multilingual Web Sites with Windows Unicode Fonts
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
MySql View Technique for Grouping Crosstab Column Data · Why You Need a Mobile Web Site · Tame Web Marketing with Social Media Management

All Rights Reserved. Legal Notices.
Revised: Sept 19, 2000

URL: http://www.webreference.com/dhtml/column37/3.html