Sencha Touch Карусельная рандомизация - PullRequest
1 голос
/ 23 сентября 2011

В настоящее время у меня установлена ​​статическая карусель, как показано ниже:

  varPanelTop = new Ext.Carousel({
        defaults: {
            cls: 'homeTop'
        },
        items: [{
            html: '<img src="IMAGE ONE" />'
        },
        {
            html: '<img src="IMAGE TWO" />'
        },
        {
            html: '<img src="IMAGE THREE" />'
        },
        {
            html: '<img src="IMAGE FOUR" />'
}]
  });

Не проблема, все работает нормально, но теперь мне бросили большой, в котором «могу ли я сделать это так, чтобы каждый раз, когда эта страница обновлялась, порядок html / imgs каждый раз различался?

Так можно ли это сделать и как, если да?

Большое спасибо

1 Ответ

0 голосов
/ 23 сентября 2011

Это возможно. Иметь массив с такими объектами:

var images = [{html:'<img src="i1.jpg" />'},{html:'<img src="i2.jpg" />'},{html:'<img src="i3.jpg" />'},{html:'<img src="i4.jpg" />'}];

Тогда в зависимости от показа карусели у вас будет:

Ext.getCmp('carouselId').items.add(images[Math.floor(Math.random()*images.length)]);

и т.д.. Вы можете проверить, были ли изображения уже добавлены, т.е. все, что вам нужно, это список случайных чисел, и вы добавляете изображения в карусель вот так. После этого вы звоните

Ext.getCmp('carouselId').doLayout();

для отображения изображений.

Обратите внимание, что carouselId является свойством "id" объекта карусели, но есть лучшие способы добраться до объекта карусели. Все зависит от того, где он у вас есть.

...