Looks like this plugin is a better place to start... http://www.mooforum.net/scripts12/mooquee-mookie-mootools-marquee-updated-t115.html
On Oct 18, 9:56 am, Ryan Florence <rpflore...@gmail.com> wrote: > 1. Ask an answerable question. > 2. Put your best attempt on jsfiddle.net > 3. Get TONS of help. > > :D > > On Oct 18, 2010, at 10:32 AM, dawnj2sb wrote: > > > I am trying to create a news ticker for our site. None of the examples > > I've seen have everything I need. I like what Fx.Marquee has to offer, > > but I also need the news > > 1) to come from an XML file > > 2) should loop, not just stop at the end of the list > > 3) should pause during a mouseover > > > Given this list I thought it would be easier to write my own > > class....except that I have never written one before. So it's been a > > bit aggravating. > > > I have an AJAX request creating a news DIV from an XML file: > > > var newsArray = []; > > var newsContainer = $('newsContainer'); > > > var getNews = function(){ > > newsArray.erase(); > > var feedUrl = '//dms/corporate/resources/xml/corpNewsFeed.xml'; > > var request = new Request({url:feedUrl, method:'get', > > onSuccess : function(data, xml){ > > nodes = > > xml.documentElement.getElementsByTagName("newsItem"); > > if (nodes.length > 0) { > > for (i = 0; i < nodes.length; i++) { > > var newsItem = new Element('div', { > > 'id' : 'newsItem' + i, > > 'class' : 'newsItem', > > 'html' : > > nodes[i].getElementsByTagName("value")[0].childNodes[0].nodeValue > > }).inject(newsContainer); > > }; > > newsArray = $$('div[class=newsItem]'); > > loopNews(newsArray); > > }else{newsContainer.set('html',"There are no news > > items today.");} > > }, > > onFailure: function(error){alert("Error: " + error);} > > }).send(); > > }; > > > (I would write this using jsfiddle, but the instructions are not clear > > about how to upload my XML file which is currently local.) And I tried > > to create something that would take each item in that news list and > > morph it (can't get them to go across page, just fade in) and also > > continue looping them: > > > var loopNews = function(array){ > > for(k = 0; k < 999; k++){ > > newsContainer.erase(); > > for (j = 0; j < array.length; j++) { > > var morphObject = new Fx.Morph(array[j], > > {link:'chain',duration:5000}); > > morphObject.start({ > > opacity: [0,1] > > }); > > } > > } > > }; > > > This is my final attempt after many changes. Since I can't get my own > > version to work, I was wondering if there was any insight on how I > > could extend the Fx.Marquee class afterall to do what I need? This is > > a lot to ask I know. But maybe if we can just start with the first > > steps to get my brain rolling... > > > I figure it's something like: > > > var fxmq = new Fx.Marquee(newsContainer, { > > duration: 500, > > showEffect: { > > top: [0,0], > > left: [-100, 0], > > opacity: [0,1] > > }, > > hideEffect: { > > top: 20 > > }, > > revertEffect: { > > top: [-30, 0], > > left: [0,0] > > } > > }); > > > var getNews2 = function(){ > > newsArray.erase(); > > var feedUrl = '//dms/corporate/resources/xml/ > > corpNewsFeed.xml'; > > var request = new Request({url:feedUrl, method:'get', > > onSuccess : function(data, xml){ > > nodes > > =xml.documentElement.getElementsByTagName("newsItem"); > > if (nodes.length > 0) { > > for (i = 0; i < nodes.length; i++) { > > //this assumes there is no starting message > > within the containing DIV because it all comes from an XML file > > fxmq.announce({ > > message: > > nodes[i].getElementsByTagName("value")[0].childNodes[0].nodeValue, > > delay: 2500, > > revert: false > > }) > > ....and somehow chain all these together and > > continually loop them > > }; > > }else{newsContainer.set('html',"There are no news > > items today.");} > > }, > > onFailure: function(error){alert("Error: " + error);} > > }).send(); > > };