Автоматическое изменение размера для Products.Carousel

Я пробую Products.Carousel. Я создал карусель для своей домашней страницы и добавил два баннера, которые автоматически меняются через n секунд.

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

Я хотел, чтобы карусель использовала ту же ширину для области основного контента. Я попытался установить фиксированное значение, но, конечно, оно не будет работать в разных разрешениях (баннеры могут выходить за правую область портлета или могут быть слишком короткими для ширины основного содержимого).

Любые идеи о том, как я могу обойти это?


person albieback    schedule 16.03.2011    source источник


Ответы (2)


Вы должны иметь возможность задать карусели переменную ширину, переопределив Products.Carousel.viewlet (либо в коде файловой системы, либо в portal_view_customizations). Вы, вероятно, захотите, чтобы ширина карусели основывалась на ширине другого элемента, например, блока #content:

<div tal:condition="view/available"
    tal:attributes="id view/element_id;"
    class="carousel">
    <tal:banners tal:define="banners view/banners;"
        tal:condition="banners"
        tal:content="structure banners">
        Banners
    </tal:banners>
    <tal:pager tal:define="pager view/pager;"
        tal:condition="pager"
        tal:content="structure pager">
        Pager
    </tal:pager>
    <script type="text/javascript" charset="utf-8" tal:content="string:
        (function ($$) {
            $$('#${view/element_id}').ploneCarousel({
                height: ${view/height},
                width: $$('#content').width(),
                transition: '${view/transition}',
                speed: ${view/speed},
                delay: ${view/delay}
            });
        })(jQuery);
    ">
    </script>
</div>
person yomatters    schedule 17.03.2011

У меня нет ответа, только идеи.

  • можете ли вы установить класс в области баннера, который будет устанавливать ее ширину такой же, как основная область содержимого?
  • Вы можете использовать % ширины?

или злой, но успешный метод, который я использовал:

  • флэш-баннер с использованием swfobject.js
person Auspex    schedule 17.03.2011