Very nice!! That's exactly what I wanted to do, and so simple to implement...marginTop! There was only one remaining problem and that is that I'm hiding the element initially, so it's starting from display:none, which is what I think hide() does. There is probably a better way, but to unhide my hidden element I modified your plugin to:
jQuery.fn.slideToggleUp = function(speed, easing, callback) { var h = 0; if(this.css('display') == 'none'){ this.css('display','inherit'); h = this.height() + parseInt(this.css('paddingTop')) + parseInt(this.css('paddingBottom')); this.css('marginTop', -h); } h = this.height() + parseInt(this.css('paddingTop')) + parseInt(this.css('paddingBottom')); return this.animate({marginTop: parseInt(this.css('marginTop')) < 0 ? 0 : -h}, speed, easing, callback); }; I think I will make the plugin wrap the sliding div in the container div on the fly so as not to mark up my source unnecessarily. And I just realized my version doesn't work in IE (couldn't get the display property). Grrr. Oh, well, tomorrow. A very nice solution and is every bit as smooth as mootools. Thanks to you and to David for your help. I knew I would like JQ...great community. On Jan 26, 9:24 pm, Karl Swedberg <[EMAIL PROTECTED]> wrote: > Hi Rus, > > I'm sorry I didn't have time to reply sooner. I didn't see a link to a > Mootools effect, so I'm not sure which one you're referring to, but I > did look at the Interface slideUpToggle effect and tried to emulate it > as quickly as possible. This is by no means a bullet-proof solution, > and I'm sure you'll need to tweak it to suit your needs, but I thought > I'd at least help you get started with something. With a little bit of > jQuery and some CSS, you can pretty much mimic that effect. I put > together a crude plugin with a demo here: > > http://test.learningjquery.com/slide-up-toggle.html > > Hope it helps. > > --Karl > _________________ > Karl Swedbergwww.englishrules.comwww.learningjquery.com > > On Jan 26, 2008, at 6:30 PM, Rus Miller wrote: > > > > > David, you're right about Interface. It has problems, but then so does > > Mootools as I found out when I hooked it up to the test page (it won't > > un-toggle, something to do with the height of the element not being 0 > > I think). Also, after running test after test with different styles > > and markup I found there are many ways to mess everything up. It's > > very strange that mootools works perfectly on a fully marked-up and > > CSS'd page on my new site. > > > The original problem was that I couldn't get the Interface toggle to > > work on my completed page. The problem there, of course, was that I > > hadn't checked the version compatibility. After reading your reply I > > reverted to JQ 1.1.2 on that page, but...after firing the Interface > > toggle event I got this error: too much recursion. jQuery v1.2.2 > > worked like a champ, except that I don't like the effect itself. > > > It looks like Interface's slide method isn't quite ready yet and > > because I like the Mootools effect better I think I'm going to stick > > with Mootools for the time being for this effect...UNLESS...somebody > > knows how to achieve the Mootools effect with jQuery. Please?!?!? > > > For the easing problem, setting the default easing only works for > > 1.2.2. There's probably an easy way to do it in 1.1.2 but I haven't > > dug through the code. > > > That's all for now. My brain hurts. > > > On Jan 26, 2:10 pm, David Serduke <[EMAIL PROTECTED]> wrote: > >> On Jan 25, 3:27 pm, Rus Miller <[EMAIL PROTECTED]> wrote: > > >>> 1. JQ 1.2.2 & Interface.SlideToggleUp: > > >>> After the SlideToggleUp event, Firebug started logging a string of > >>> errors and the script crashed in both FF and IE: > >>> this.options.curAnim has no properties > >>>http://monovisiondesign.com/client/jquery/js/jquery-1.2.2.js > >>> Line 3217 > > >> I suspect most of your problems are caused by the inclusion of > >> interface.js. Unfortunately it hasn't been updated since release 1.2 > >> so it causes problems. There is work going on ui.jquery.com which > >> should eventually replace it (although it has some quirks of its > >> own). Try taking out that file and see how it looks. > > >>> 2. JQ 1.1.2. & Interface.SlideToggleUp: > > >>> No errors. But in FF there is a flicker or a jump when the event > >>> fires. In both FF and IE there is some funkiness with the element > >>> width and/or height. I saw a post somewhere that suggested setting > >>> the height to 'auto' in the callback function but that didn't work. > > >> I'm afraid 1.1.2 is before my time so I'm not sure what's going on > >> here. > > >>> 3. JQ 1.2.2 / 1.1.2 & JQ.slideToggle: > > >>> Smooth sailing in FF, (except for the effect itself (the eclipse of > >>> the element)). However, very jumpy in IE, with the text popping > >>> up to > >>> the top of the div before being eclipsed. > > >> Again I think a lot of this is because interface.js is included in > >> your file. Try taking it out. I still see some strange behavior > >> without it but it helps a lot. Try adding this to your html file too > >> for the last IE problem. > > >> <style type="text/css"> > >> p { margin:1em 0; } > >> </style> > > >>> I also attempted to use the jQuery.easing plugin. On its website > >>> (http://gsgd.co.uk/sandbox/jquery/easing/) instructions stated that > >>> the default JQ easing method could be set thusly: > >>> jQuery.easing.def = > >>> 'easeInBounce'; > > >> It should work if you take interface.js out. > > >>> I don't know how many of these problems are my inexperience with JQ > >>> and/or Interface, or one or the other not being quite ready for > >>> prime > >>> time (I don't mean that offensively). Any assistance would be very > >>> much appreciated. I do like JQ's style much better than Prototype > >>> or > >>> Mootools but it seems that compatibility issues still exist across > >>> browsers and plugins. > > >> jQuery is used all over the place but that certainly doesn't mean it > >> is bug free. Plus there are quirks that just does seem worth the > >> code > >> necessary/performance hit to fix it. I've never seen this particular > >> issue with slide where the default margins on a paragraph in IE > >> somehow mess up the height calls during an animation. I guess I > >> usually set my own margin so I haven't seen it. > > >> In any case try those two changes and see if that fixes your > >> problems. It seemed to work in my tests. > > >> Good luck. :) > > >> David