virtual.js 668 B

1234567891011121314151617181920
  1. import { h } from 'vue';
  2. function renderVirtual(swiperRef, slides, virtualData) {
  3. if (!virtualData) return null;
  4. const style = swiperRef.value.isHorizontal() ? {
  5. [swiperRef.value.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`
  6. } : {
  7. top: `${virtualData.offset}px`
  8. };
  9. return slides.filter((slide, index) => index >= virtualData.from && index <= virtualData.to).map(slide => {
  10. if (!slide.props) slide.props = {};
  11. if (!slide.props.style) slide.props.style = {};
  12. slide.props.swiperRef = swiperRef;
  13. slide.props.style = style;
  14. return h(slide.type, { ...slide.props
  15. }, slide.children);
  16. });
  17. }
  18. export { renderVirtual };