arthur5005 / jquery.motionnotion

A jQuery plugin which allows for CSS3 animations to occur and complete on core jQuery manipulation and visibility functions such as append, remove, show and hide.
MIT License
6 stars 1 forks source link

added support for AMD and Zepto #5

Closed stevenvachon closed 10 years ago

stevenvachon commented 10 years ago

Lots of people use AMD loaders in their large scale projects and Zepto is getting more and more popular as IE8 and 9 continue to fade away.

stevenvachon commented 10 years ago

Hello?

arthur5005 commented 10 years ago

Hey Steve, sorry just been really busy lately. Was actually looking at this stuff last night. Latest version of Chrome has my test cases failing, so I'm working through that right now. I can't promise any timelines, but I'll try and get back to you with my progress and comments on some of these in the next few days here.

Best, Arthur.

On Tue, Feb 4, 2014 at 1:53 PM, Steven Vachon notifications@github.comwrote:

Hello?

Reply to this email directly or view it on GitHubhttps://github.com/arthur5005/jquery.motionnotion/pull/5#issuecomment-34111750 .

stevenvachon commented 10 years ago

Cool, thanks!

arthur5005 commented 10 years ago

I was reviewing your change for Zepto support in conjunction with my latest commits. Unfortunately, at this time, I won't be able to offer support to Zepto.

I use a very important internal (and currently exposed) function that is used for many of the DOM manipulation functions inside jQuery. This function is critical to the functioning DOM manipulation inside of jQuery for cross-browser compatibility, and I can't, at this time, skip over using it. This method doesn't exist in Zepto, and no similar method is exposed either.

I'm looking for ways to sidestep it, because ideally I would like to use only public api methods, but in the interest of moving this plugin forward on jQuery, and keeping the code valid for jQuery unit tests, I have decided to use it for the time being.

As an FYI, the function I'm referring to is 'domManip' used by all of the manipulation methods in jQuery which insert and clone nodes across a collection.

arthur5005 commented 10 years ago

Hmmm another obvious solution would be to write our own implementation of domManip, incase the jQuery domManip doesn't exist.

This has 2 benefits: 1) Incase jQuery decides to no longer expose domManip, the plugin should continue to work 2) Incase you're using Zepto (or any other jQuery clone), the alternative method will be used

The only downside to this, of course, is if jQuery stops exposing domManip, jQuery unit tests on manipulation.js will likely start failing.

Ideally there's a way to do it with the public API.. let me think on this one.

arthur5005 commented 10 years ago

And as for Require.JS support, that's coming shortly.

arthur5005 commented 10 years ago

Ok, I felt quite intrepid today. I've made a -very- experimental branch of the latest codebase that supports Zepto and AMD. Check it out. It lacks a comprehensive test suite, but it passes my basic unit tests.

The branch requires 3 Zepto modules to work properly: callbacks deferred data

Let me know if you find anything wrong. Not sure if I'll support this going forward, but some feedback might push me too ;).