I have been very busy over the past several weeks programming a brand new menu system for Lottery Post. It has become essential to do because the old system was almost unusable on many mobile operating systems — notably Apple's iPhone/iPad (collectively called "iOS") and Android devices.
The old menu system was something I had purchased, and which I have continued to purchase year after year. The company that made the menu has stopped producing meaning updates for at least a year now, because they are apparently working on a new menu system. However, for Lottery Post that meant that new up-and-coming operating systems like iOS and Android were not supported properly.
After an extensive search for a suitable replacement menu system, I came to the conclusion that I would have to write my own menu system. It is not a decision that I took lightly, because it is an extremely difficult thing to do — to make a menu system that works "perfectly" and "identically" on all major browser platforms and operating systems.
I also knew from the get-go that I wanted to have a menu that was able to do a basic sliding animation. That is also something that is extremely difficult to achieve "perfectly" and "identically" on all major browser platforms and operating systems. My goal was to even make it work correctly in IE6, since there are still too many people using that ancient browser. Talk about tricky!
So I programmed and tested and programmed and tested. I THINK I was able to make it "perfect" and "identical" on all major browser platforms and operating systems, but if not, I'm sure I will hear from people who have found a bug.
The menus are built for and tested on the following platforms:
- Internet Explorer (IE) versions 6-9 (yes, through version 9, which had a beta release within the past couple of weeks)
- Google Chrome
- Firefox
- Safari
- Opera
- iOS products (iPhone, iPad, iPod Touch)
- Android devices
I have done testing on Windows 7, Windows XP, and Ubuntu, in addition to the mobile platforms.
The menu system is not only responsible for the main blue menu bar, but for every popup menu that appears throughout the site. For example, if you click on a member name or on a game name you'll see a popup menu. That's the new menu system. EVERY popup menu you see on Lottery Post is part of the new system.
That helped to increase the difficulty for building the new menu. It has to be such a flexible thing to be used in so many different areas, scenarios, and looks.
Some other neat little features of the new menu:
- All members have the ability to turn on a subtle "click" sound that you'll hear every time you select a menu command. It is turned off by default, but you can easily enable it by clicking Board Settings in the Options menu. You'll see a new Audio section, and it's right there. Check the box and then click Save Settings at the bottom.
- The ability to pin and unpin the menu no longer requires the page to refresh. The change is immediate, and the menu snaps into position right away with no impact to the page.
- When the menu is unpinned, it no longer has a delayed "floating" effect, which was pretty annoying. It now uses a rock-solid effect that keeps the menu right at the top of the page without the annoying floating effect.
- The old menu had an annoying habit of disappearing behind graphical effects on the page, such as the main Results page map (www.lotterypost.com/results). The new menu fixes this, and should appear over-top of everything.
Now, you might look at the new menu and think, "It's exactly the same thing, except for a little animation." Yes, that's true, I purposely did not substantially change the way it looks. Programmers will know what I mean when I say that it's very difficult to make something that goes essentially unnoticed. It sounds backwards, but it's true. Every single line of code driving the old menu is gone, replaced by completely new code that I wrote myself. Trust me when I say it is all new.
Overall, I am happy with the result, and I'm considering donating it to the jQuery/JavaScript community as an open source project.
PLEASE, definitely let me know if something in the menu does not work properly. I'm sure there will be some people who say "I hate the animation" or something like that, but I am most interested in hearing about BUGS. I would like it to work perfectly for everyone. (Incidentally, if you're using Windows 98 or Windows ME, or IE 5, or some other ancient technology, please understand that I cannot support those platforms. I have not even tested the menu on those.)
Other Developments
There are several other changes I have implemented this evening as well!
- Many pages, including the home page, should render quicker. I made internal changes to the pages which makes Web browsers display the main content even before all the "background stuff" like scripts load behind the scenes.
- In addition to restructuring several pages, other changes were made to reduce the size of all pages. In some cases there is a big difference, and in other cases it's a small change. But either way, when dealing with a popular Web site like Lottery Post, any shrinking of size helps everyone, because the server doesn't work as hard, and bandwidth is improved.
- Several important command links — such as the Predictions Tools available on state predictions pages — have been changed into more visible buttons. Hopefully this will grow awareness of some powerful features that many people don't notice.
- State prediction pages should render faster and work faster when viewed on slower computers. I was able to greatly reduce the complexity of the page (behind the scenes), which makes it a bit snappier.
- The Worldwide Jackpots page (www.lotterypost.com/jackpots) has dynamically-sortable columns — both ascending and descending orders — with no need for the page to reload each time.
- Added new spell checker to the text editor that works with all Web browsers (not just with IE, like the old one). Click the spell check button to check the spelling, and all misspellings will appear with a squiggly red line under them. Click the word to see a list of possible suggestions.
- Made several tweaks to text editor to work properly with the IE9 beta.