The easing plug-in doesn't care what property is being animated: $('#side').animate({backgroundPosition: "71px 9px"}, 500, 'easeOutBack');
- Richard On Wed, Dec 30, 2009 at 9:50 AM, t1mmie <t1m...@hotmail.com> wrote: > > Hey Richard, thanks for your reply!! > > Yeah I was aware of the easing plug-in but I didn't think it could be used > in the way I need it? As I am positioning background image..? Please > correct > me if I'm wrong - better yet - show me how? :D > > Thanks again > > > Richard D. Worth-2 wrote: > > > > This can be achieved by using the easing plugin > > > > http://plugins.jquery.com/project/Easing > > > > which is included in the jQuery UI Effects Core. See here for a demo: > > > > http://jquery-ui.googlecode.com/svn/trunk/demos/effect/easing.html > > > > I think the one you're looking for is 'easeOutBack' > > > > - Richard > > > > On Wed, Dec 30, 2009 at 8:37 AM, t1mmie <t1m...@hotmail.com> wrote: > > > >> > >> Hey all. I'll be quite amazed if anyone can help me with this one. I've > >> been > >> scouring the internet trying to find a tutorial on this, but no such > >> luck!! > >> > >> I'm putting together my own little side navigation and I have an affect > >> in > >> my mind that I want to achieve and I'm sort of half-way there. > >> > >> I've thrown together [URL=http://www.webhero.co.uk/help/]a demo, > >> here[/URL] > >> ( http://www.webhero.co.uk/help ) of what I've made so far. > >> > >> I basically want the background to slide up and down depending on what > >> menu > >> the mouse hovers on to, with an easing (or bouncing) effect when you > move > >> over each one. I want the bouncing thing to go both ways, so that if the > >> background is at the bottom and you hover over a link above, the > >> background > >> moves a little past the final result and then back -- so wherever it > >> moves, > >> it bounces or eases a little into place. > >> > >> Another thing to consider is that whatever page the user is on, the > >> little > >> bar will start off and go back to there - so in the demo we're presuming > >> the > >> user is on the 'web design' page. > >> > >> (You'll need to see the demo by now to see what I mean :P) > >> > >> As you can see, I've programmed this to work fine if you're moving your > >> mouse top to bottom, but if you go from bottom to top - you'll see in > the > >> code that I'll need to put some conditional statements around the > >> animations > >> to test whereabouts the background currently is - and that's what I need > >> help with really. Also if anyone has a few tips on how I can shorten > down > >> my > >> javascript code here that would be awesome :) > >> > >> Or, if anyone has a better way of achieving what I'm trying to > altogether > >> then I gratefully welcome anyone's thoughts. > >> > >> It'll be easier to view the source but I'll include the html and JS > here. > >> > >> [code] > >> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" > >> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > >> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > > >> > >> <head> > >> <script > >> src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" > >> type="text/javascript"></script> > >> <script src="js.js" type="text/javascript"></script> > >> <script src="bg.js" type="text/javascript"></script> > >> <script src="png.js" type="text/javascript"></script> > >> > >> <style> > >> #side { > >> min-height:600px; > >> height:600px; > >> width:243px; > >> float:left; > >> background:url(sidebg.jpg) no-repeat #333333; > >> background-position:71px 9px; > >> } > >> > >> #side li, #side ul { > >> list-style:none; > >> padding:0; > >> margin:0; > >> float:left; > >> } > >> > >> #side a * { > >> display: none; > >> } > >> #side a, #side a .hover { > >> height:36px; > >> width:172px; > >> position:relative; > >> display:block; > >> background:url(side.png); > >> } > >> > >> #side a.webdesign { > >> margin:10px 0 7px 71px; > >> width:172px; > >> background-position:0 0; > >> } > >> #side .highlight a.webdesign:hover, #side > >> a.webdesign .hover { > >> background-position:-172px 0; > >> } > >> #side a.seo { > >> margin:5px 0 7px 71px; > >> width:172px; > >> background-position:0 -40px; > >> } > >> #side .highlight a.seo:hover, #side a.seo .hover > { > >> background-position:-172px -40px; > >> } > >> #side a.blog { > >> margin:5px 0 7px 71px; > >> width:172px; > >> background-position:0 -80px; > >> } > >> #side .highlight a.blog:hover, #side a.blog > .hover > >> { > >> background-position:-172px -80px; > >> } > >> #side a.contact { > >> margin:5px 0 7px 71px; > >> width:172px; > >> background-position:0 -120px; > >> } > >> #side .highlight a.contact:hover, #side a.contact > >> .hover { > >> background-position:-172px -120px; > >> } > >> > >> </style> > >> > >> </head> > >> > >> <body> > >> > >> <div id="side" style="background-position: 71px 9px"> > >> <ul> > >> <li class="highlight"> webdesign news </li> > >> <li class="highlight"> seo faq </li> > >> <li class="highlight"> blog contact </li> > >> <li class="highlight"> contact contact </li> > >> </ul> > >> > >> </div> > >> > >> </body> > >> [/code] > >> > >> and the javascript (jquery) > >> > >> [code] > >> $(document).ready(function(){ > >> > >> // Side // > >> > >> //var currentpos = $('#side').backgroundPosition(); > >> > >> $("#side a.webdesign").hover(function () { > >> $('#side').stop(true, false) > >> $('#side').animate({backgroundPosition: "71px > >> 4px"}, > >> 350); > >> $('#side').animate({backgroundPosition: "71px > >> 9px"}, > >> 150); > >> }, > >> function () { > >> $('#side').stop().animate({backgroundPosition: > >> "71px > >> 9px"}, 400); > >> }); > >> > >> $("#side a.seo").hover(function () { > >> $('#side').stop(true, false) > >> $('#side').animate({backgroundPosition: "71px > >> 63px"}, 350); > >> $('#side').animate({backgroundPosition: "71px > >> 58px"}, 150); > >> }, > >> function () { > >> $('#side').stop().animate({backgroundPosition: > >> "71px > >> 9px"}, 400); > >> }); > >> > >> $("#side a.blog").hover(function () { > >> $('#side').stop(true, false) > >> $('#side').animate({backgroundPosition: "71px > >> 110px"}, 350); > >> $('#side').animate({backgroundPosition: "71px > >> 105px"}, 150); > >> }, > >> function () { > >> $('#side').stop().animate({backgroundPosition: > >> "71px > >> 9px"}, 400); > >> }); > >> > >> $("#side a.contact").hover(function () { > >> $('#side').stop(true, false) > >> $('#side').animate({backgroundPosition: "71px > >> 159px"}, 350); > >> $('#side').animate({backgroundPosition: "71px > >> 154px"}, 150); > >> }, > >> function () { > >> $('#side').stop().animate({backgroundPosition: > >> "71px > >> 9px"}, 400); > >> }); > >> > >> > >> > >> }); > >> [/code] > >> > >> Thanks to you all in advance :) > >> -- > >> View this message in context: > >> > http://old.nabble.com/jquery-customised-easing-tp26967564s27240p26967564.html > >> Sent from the jQuery General Discussion mailing list archive at > >> Nabble.com. > >> > >> > > > > > > -- > View this message in context: > http://old.nabble.com/jquery-customised-easing-tp26967564s27240p26968258.html > Sent from the jQuery General Discussion mailing list archive at Nabble.com. > >