物化旋转木马作物文本

问题描述 投票:0回答:1

我有一个Materialize旋转木马,它在底部裁剪我的文本。我创建了一个非常简单的例子,看看是否与内容有关。这是我把html缩减成的内容。

        <div class="carousel carousel-slider">
        <div class="carousel-item" href="#one!">
                <div>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
                        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                        sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
                        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                        sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
                        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                        sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
                        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                        sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
                        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                        sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
                        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                        sunt in culpa qui officia deserunt mollit anim id est laborum.LAST</p>
                </div>
        </div>
    </div>

最后一段被剪掉了 这是javascript。

    ...
    $('.carousel').carousel({
        fullwidth: true,
    });

    $('.carousel.carousel-slider').carousel({
        fullwidth: true,
        indicators: true,
        duration: 200,
    }, setTimeout(autoplay, 4500));

     function autoplay() {
       $('.carousel').carousel('next');
       setTimeout(autoplay, 4500);
     }

旋转木马似乎是固定高度的。我可以在carousel类中添加一个固定高度,足够大,以防止在手机上被裁剪。这让我在桌面上有很大的空白。我试过把覆盖放在媒体查询中。它被忽略了。有什么办法让它自动变大吗?我有试过height:auto;,但没有用。

javascript html materialize
1个回答
0
投票

解决这个问题的一个方法是根据内容的大小来设置旋转木马的高度。

// Get height of content
var contentHeight = jQuery('.carousel-item.active div').height();

//Override the 3 height attributes that Materialize adds:

jQuery('.carousel').css('height', contentHeight);
jQuery('.carousel-item').css('height', contentHeight);
jQuery('.carousel-item').css('min-height', contentHeight);

用一个函数把它包起来,在页面加载时运行它,然后随时调整窗口的大小。

function setCarouselHeight(){
   var contentHeight = jQuery('.carousel-item.active div').height();
   jQuery('.carousel').css('height', contentHeight);
   jQuery('.carousel-item').css('height', contentHeight);
   jQuery('.carousel-item').css('min-height', contentHeight);
}

setCarouselHeight();

$( window ).resize(function() {
  setCarouselHeight();
});

工作代码 此处.

更新

所以,再看了一下,其实比起初看起来要困难得多。codepen是一个现在正在进行的工作。

问题是Materialize动态更新旋转木马的变换值,以处理鼠标和触摸拖动--而且它经常在不需要的时候把whitespace放在上面。

我的解决方案现在变得非常复杂--第二个函数重新计算变换值X&Y并相应地更新margin。

我希望看到一个更简单的解决方案。请关注这个空间。

© www.soinside.com 2019 - 2024. All rights reserved.