Slashdot Mirror


Mouse Gestures in Javascript

christodd writes "I have become big fan of mouse gestures, a feature included in Opera, Mozilla, and MyIE2. There's even a plugin for IE. Other programs like StrokeIt and Cocoa Gestures are also based around the concept. I can't believe nobody else has thought of this before, but what about mouse gestures in javascript? Turns out that it is incredibly simple to implement, and really handy for those 'feature incomplete' web browsers. Unfortunately, for the total user experience, we'd have to upgrade the whole internet..."

25 of 377 comments (clear)

  1. FVWM by Anonymous Coward · · Score: 4, Informative

    dont forget fvwm, create your own mouse gestures, 'Strokes', and bind them to any action/command.

    KICKS ASS.

  2. Browser Level == Better by dolo666 · · Score: 5, Interesting

    I'm all for the idea of faster, better, stronger ways of browsing. I happen to think that mouse gestures and browser level code should be based in the browser, and controlled by the browser. Like look at all the gestures you get with Mozilla.

    (mo: Don't invent the wheel: we have it already)

    The problem I forsee with the jscript use, is a misuse of the mouse gesture jscripts by unethical sites. Because it's the planet Earth, and The Internet, half of the sites will impliment this correctly, the other half will use it as a joke, or for annoying adverts (browser interstitials) and thus cause the whole thing to be crap.

    If it's at a browser level, websites can't fuck with it. So ideally, browsers will want to add the ability to block javascript mouse control, and promptly add this cool feature at a browswer level. I'm all for the idea of mousegestures, but I'm against the ability to tell a website to fuck off using them. (mo: KISS).

    1. Re:Browser Level == Better by Anonymous Coward · · Score: 3, Funny

      I can easily forsee a new pop-up hell.

      var calls=new Array();
      calls['left']='launchAd()';
      calls['left ->up']='launchAd()';
      calls['right']='launchAd()';
      calls['up->down']='launchAd()';
      calls['up']='la unchAd()';
      calls['up->left']='launchAd()';
      calls ['up->right']='launchAd()';
      calls['down']='launch Ad()';
      calls['down->up']='launchAd()';
      calls['do wn->right']='launchAd()';
      calls['down->left']='la unchAd()';

      function launchAd() {
      newWin=window.open("http://www.adserver.com/ad. html", "Buy my product!");
      newWin.focus();
      return false;
      }

    2. Re:Browser Level == Better by Zeinfeld · · Score: 5, Interesting
      The problem I forsee with the jscript use, is a misuse of the mouse gesture jscripts by unethical sites.

      I think that is the problem with Jscript full stop. why netscape thought it a good idea to allow any site an almost arbitrary level of control over my browser is beyond me.

      The idea of doing mouse guestures or any other browser extension in JScript, except as a demo is idiotic. The whole value of these systems comes from consistency. Apple do know some things about UIs, the value in the Apple UI is that every program work the same way and you don't have to spend lots of time relearning.

      If I go to one site that has mouse guestures and then another that does not or worse implements them a different way ... yuk!

      But back to the original issue, Jscript sucks. The command set should be partitioned according to the security considerations. Popping up a window has a significant security impact, it can be used to launch a trojan. The toolbars on the browser window are my toolbars, no web site should be able to disable them.

      I use the feature of IE that allows Jscript to be turned off by default and enabled selectively site by site. But this is not as effective as it could be because you often come across idiotic sites using jscript for everything - including navigation. The idea being to force the site designers idea of a user interface down the user's throat.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
  3. Insert code with proxy... by KrispyKringle · · Score: 5, Interesting

    Or you could have your filtering proxy (like Proxomitron or Privoxy) insert the JavaScript code on every page. Though personally, I'd just use a browser that suppots it.

  4. Oh yay! by xSquaredAdmin · · Score: 3, Insightful

    Another annoying feature that wannabe web designers can add! Oh well. At least I don't have to worry about it. *Makes sure Disable Javascript is checked*

    --
    Crushing dreams at the speed of sarcasm
    1. Re:Oh yay! by DeadSea · · Score: 5, Interesting
      I tried some of the mouse gestures on that page and they conflict with other things for which I use the mouse. For example, try selecting a paragraph of text on the page. It activates one of the mouse gestures causing the page to scoll.

      Really annoying.

    2. Re:Oh yay! by dasmegabyte · · Score: 5, Insightful

      Word. The dumbest features ever thunk up by man are all tied to Javascript...the images that swirl around your cursor, preventing you from clicking on links. The script which loads everything at the same time, which means you wait forever for the one broken image. Cascading menus that don't disappear. Or do disappear, just as you are about to click on them.

      And worst of all, blocking the right mouse button (or as I like to call it, "the button i use to navigate the fucking internet") in the name of "copyright protection." Every time I see this monstrosity, I download all of the images from the site, stick them in a zip file, and email it to the webmaster. "Your copyright protection didn't work. Neither did the mouse button I use to open links in a new window. One of these things can be easily fixed."

      --
      Hey freaks: now you're ju
    3. Re:Oh yay! by PetiePooo · · Score: 3, Insightful

      Sure, Javascript has some useful features. Such as:

      -- Hiding the real URL of a link as the mouse hovers over it. Real useful. Thanks.

      -- Drop down menus. There are plenty of ways that do this without hiding the submenues from browsers used by the handicapped. Check into CSS (or even plain HTML!) for alternatives.

      -- Opening/resizing/closing browser windows. I've got the capability of doing that myself, thanks. If I want to open it within a new tab, this "feature" prevents me from doing that.

      -- Playing MIDI files while I view photos of your pet dog. AAaaaaiiieeeeeeee! (that's me screaming as I hit Alt-F4.)

      Now that we have those out of the way, I admit that there are some useful features. However, for each feature, there are alternatives that, in my mind, provide just as good or better ways to do it. The potential for abuse is too great, and some browsers provide too few abilities to limit abuse while retaining the usefulness. Mozilla and Privoxy in combination are doing a decent job for me for now.

      In effect, your second statement is what I'm saying by simply "Voting with my Back Button." If your web site annoys me, sometimes I'll give you the courtesy of emailing to tell you why I moved on. More often, I'll just silently move on.. and my $$$ goes somewhere else than feeding your progeny.

      Its hard to make something foolproof; fools are so ingenious! The advertisers/spammers will always figureout someway to screw it up..

    4. Re:Oh yay! by dublin · · Score: 4, Insightful
      As a web developer myself, I feel that javascript's time has come (one third of mozilla is written in Javascript), but users like you who view the world in only black and white are going to slow down its adoption and dampen the usefulness of javascript webpages. Certainly 1/3rd of Mozilla isn't gimmicky cruft...

      Six months ago, I thought JavaScript was a joke, a toy scripting language that just pretended to have real capbilities. I am now FIRMLY convinced that JavaScript may well be the MOST important asset that we have in opposing anyone's efforts to take over, control, or "proprietize" the web, as Microsoft and Macromedia are rolling ahead to do, with .NET and the new Flash.

      Several reasons why I think JavaScript is the best choice for much app development today:

      • Ubiquitous environment: It's the closest thing we have to a universal platform. There is nothing else that even approaches its ubiquity and reach. Mac, Windows, Unix/Linux, whatever, it's there and it just works. No other environment is so pervasive. Like the Bourne Shell in the Unix world, you can count on its presence and rely on it to get the job done, regardless of the platform. No other environment can credibly make that claim today, and I see no other real challengers on the horizon from a cross-platform point-of-view.

      • Capability: There is very little you can't do with it (except the few things network-delivered code has no right doing in the first place, and that's a good thing!) In general, it's safer than Java because it's "sandbox" restricts it to the browser, limiting damage even if something does go wrong. In the better implementations (like Mozilla's) it is capable of absolutely staggering things - but doing so requires a good understanding not only of JavaScript, but also the DOM, CSS, and possibly XML. In reality, you need to know these things anyway, as they ensure your app is platform agnostic.

      • Compatibility: There are far fewer problematic incompatibilities across all the varying JavaScript/JScript/ECMAscript implementations than there are across different versions of the JRE, for instance. If Microsoft would pay some attention to web standards in IE, much of what's pain now would go away. I'm convinced this is why they refuse to fix many obvious bugs - it would weaken their efforts to force .NET on their customers.

      • Object Orientation: While not as snazzy as some other environments, JavaScript does have real objects, and you can do real oo work with it. I suspect the reason we haven't seen more acknowledgement of this is that the elite types turn up their nose at it before they even bother to find out what it can do... As Mozilla has clearly shown, JavaScript is up to doing the heavy lifting, and it's time for the effete snobs that claim otherwise to reassess their own bigotries.

      • Ease of use: JavaScript is not a hard language to get started in. It's easy to do many useful and interesting things with little effort. There is even a huge and rapidly growing base of JavaScripts to be leveraged out there - nothing as comprehensive as CPAN, but several that, taken together, are close.

      • Momentum: JavaScript is finally being recognized for its real abilities, rather than it's image as somethign best suited for only toys. Combined with the factors above, I think JavaScript is the most important development environment in the world today, and the only one that has a real chance of helping make sure that the web stays based on open standards and protocols.


      If you still think JavaScript is a steaming pile, commit to spending a few dozen hours cheking out what it can *really* do before giving up on what may well be the best hope for the open, interoperable future that is of the greatest benefit to us all.
      --
      "The future's good and the present is nothing to sneeze at." - Roblimo's last ./ post
  5. Accessability by goldspider · · Score: 5, Insightful
    While mouse-gestures sounds really neat to a lot of folks, 'features' like this only means more and more websites that are less accessable to people that require assistive technology such as screen-readers (most Javascript features are notorious for being inaccessable).

    It would be nice if, for once, web technology was developed that made content more accessable to people with disabilities instead of less.

    --
    "Ask not what your country can do for you." --John F. Kennedy
  6. RSI by Space+cowboy · · Score: 3, Insightful

    I've never been much of a fan of mouse gestures. Whenever you see someone using them, there's a rapid flick of the wrist in some angled direction... that can't be good for you if repeated often...

    In general I don't have much sympathy for RSI sufferers. (I was going to put sufferers in quotes, but thought better of it :-).

    I use a keyboard something like 8 hours a day, and have done for the last 15 years, programming computers. If anyone is a prime candidate, it's me, and no RSI as yet. On the other hand, I'm reasonably careful - I don't hammer the keyboard, and I try to rest all my forearms on the desk in front of the keyboard. Sensible things to minimise the effect... unlike "gestures", which are just a disaster waiting to happen, IMHO.

    Simon

    --
    Physicists get Hadrons!
    1. Re:RSI by rotomonkey · · Score: 3, Interesting

      Actually, my personal experience with mouse gestures has been the opposite. I have been using them fairly extensively in Maya for about six years now without problems. Because the gestures need only be approximate, I can execute them with a much more ergonomic arm movement than I can when I need to get the cursor to a specific pixmap to open a menu. In addition, the mouse actually travels considerably less distance when gesturing.

      Granted, Maya can be an incredibly complex interface, with common tools appearing on a sub-menu of a sub-menu of a menu. You could make a strong case that a browser is a much simpler interface that doesn't need it, but I've found that I do start to develop wrist problems when I'm repeatedly using that nested menu item I'm too lazy to make a gesture for. When I'm gesturing, everything is fine.

      For a pure coder, who spends a majority of their time pounding keys, gestures might seem frivolous, but if you mainly mouse, as is the case in graphics work, gestures can actually help reduce RSI.

  7. Pie menus by Russ+Nelson · · Score: 4, Interesting

    Actually ... mouse gestures are better implemented as Pie Menus.
    -russ

    --
    Don't piss off The Angry Economist
    1. Re:Pie menus by eggz128 · · Score: 4, Informative

      And Mozilla users can get an excellent pie menu extention here .

      Browsing just doesnt feel right without it :)

  8. Why this is stupid. by cybermace5 · · Score: 4, Interesting

    Honestly, it's a pretty stupid idea. Let me illustrate why: scroller mice. Once you get used to a scroll mouse, then you have to use a computer that just has a normal mouse, it's a major pain.

    If you depend on every web page to implement mouse gestures, then you'll get this effect from page to page while you're browsing! It would be annoying to no end. And it's not an easily visible thing you can check for, unless each web page also uses some kind of cheesy "Gestures Enabled" logo. And each site might implement it differently, so that strokes mean different things from page to page. I repeat: stupid idea.

    A user interface tool should be just that: part of the user interface. Just like a keyboard or mouse, gestures take time to become accustomed to. A user interface feature needs to act the same way no matter what you're doing.

    --
    ...
    1. Re:Why this is stupid. by cybermace5 · · Score: 3, Insightful

      This is a user interface feature that randomly turns on and off or changes behavior, depending on which web page you're on. How popular do you think the mouse would be, if for random periods it switched directions, reversed buttons, or turned off completely?

      --
      ...
  9. My first ooops... by Dave21212 · · Score: 3, Informative


    My first ooops with javascript gestures: I tried to select/copy the text to send it to a few pals so that in case (more like when) it get's slashdotted they can read it. I selected the text at the top, pulled down and to the right, and the window closed (as it should).

    It only took a few seconds to notice the status bar at the bottom which indicates if a gesture will be activated when you release the click... keep an eye on that when using using these. You can see if the gesture is 'blank' = it's not going to run an action. Quite handy, pretty cool. I've already grabbed the .js file !

    --
    "Whoever would overthrow the liberty of a nation must begin by subduing the freeness of speech."--Benjamin Franklin
  10. Actually... by interiot · · Score: 4, Informative

    Actually... Mozilla's gestures *are* implemented in javascript. Download the Optimoz MozGest .xpi file (or find it on your hard drive), open the .xpi file in winzip, and there's all the .js implementation for it.

  11. Re:In other words == mo by plumby · · Score: 4, Informative


    The two aren't particularly equivalent - i.e. is short for id est - meaning "that is", or "that is to say".

    Modus operandi, on the other hand, means "the way of working", not really applicable in your message.

    Don't let Microsoft make you misuse your Latin abbreviations.
    </pedant>

  12. No, no, no, no, no. STANDARDS. by websensei · · Score: 4, Insightful

    This is inane.

    Repeat after me:
    "Web Standards."

    It belabors the obvious to point out that this will never be implemented my more than a tiny fraction of sites, that it actively interferes with normal point/click/drag behaviors (like highlighting text? click, drag left->right?) and that learning PER-SITE navigation is simply ridiculous.

    It's not that no-one's thought of it before, it's that it's a bad idea on the face of it.

    --

    La via sola al paradiso incommincia nel inferno
  13. Gestures... I don't get it by Cereal+Box · · Score: 3, Insightful

    I don't get the fascination with mouse gestures. Is it really that much more convenient than clicking a button or pressing a key? From the Mozilla gestures page:

    View Source - Left-Down-Right-Down-Left (draw a squarish S)

    Is right-clicking and choosing "view source" such a chore that you'd rather draw "S" shapes instead?

    Reload (bypass cache) - Up-Down-Up

    I dunno, pressing "F5" always seemed to work for me.

    Personally I think the obsession with mouse gestures boils down to the typical geek fascination with things that, impractical and useless they may be, are just "exciting" for some reason.

    Hey look, Slashdot implemented gestures.

    Submit post - Left-Right-Up-Down-Down-Down-Up-Left-Down-Right-Up -Right. How did I ever live without these things?

  14. Re:In other words == mo by metalhed77 · · Score: 3, Funny

    <pedant mode=Latin>

    What the hell kind of pedant uses HTML 4 syntax? Quote all of your attribute elements! And don't forget your doctype either :)

    --
    Photos.
  15. You're right, but you're self-righteous by ianscot · · Score: 3, Informative
    In general I don't have much sympathy for RSI sufferers. (I was going to put sufferers in quotes, but thought better of it :-).

    You're right that these "gestures" we're talking about do sound like exactly what the medical literature says causes RSI problems. Wrist-turning moves, over and over, are the basic cause of computer-related RSIs.

    But your sample of one is a crock when it comes to dismissing everyone who has pain from this. Extremely useful "knowledge," that -- except all it does is arm you to dismiss other people and feel smug about not having been unlucky yourself. I used to work in bookstores in college, and some of the older clerks had RSI pain from shelving. Not something they were privileged to avoid in their jobs.

    To think people are submitting articles to JAMA (003 Jun 11;289(22):2963-9 -- "Computer use and carpal tunnel syndrome: a 1-year follow-up study") trying to figure out whether carpal tunnel is associated with keyboards or mice or a combination. All we had to do was ask you and you could tell us it was a matter of being "reasonably careful." (Note -- those are quotes.)

    Hey, guess what that study (and others) have indicated? It's mouse use, not the keyboard, that seems to be a main culprit. RSIs from computer use are almost always related to wrist movement. Trackballs (with a wrist rest especially) seem to be less problematic. Hmm, maybe we could use this information to prevent other people from undergoing a lot of pain, encourage trackballs instead... Oh, sorry, we don't have any sympathy for those people, 'cause they injure themselves out of a lack of common sense. No need to publish medical recommendations to guide businesses in their purchasing, for example. Morons. Let 'em "suffer."

    --
    "Fundamentalism" isn't about divine morality. It's about human authority.
  16. Re:"next page" tag in HTML? by Idarubicin · · Score: 3, Interesting

    Opera has already implemented this functionality in its newer versions. There's now a Fast Forward button on the toolbar. It's pretty good at figuring out what the next page should be. In Slashdot's site, it pulls up the comments for the next story; on Google it returns the next page of results. I don't know anything about the algorithm behind it, however.

    --
    ~Idarubicin