1

我遇到了 flexslider 的问题,当我使用“垂直”幻灯片过渡时,幻灯片的间距不均匀。

例如,第一张幻灯片一开始看起来像是在其上方有约 20 像素的填充,将大约一半的标题从底部撞出。每张新幻灯片都会使问题复杂化,直到滑块重置。这只发生在我使用“垂直”过渡时。

flexslider 文档中,它写道:

垂直幻灯片动画不享受与水平动画相同的有机尺寸,并且幻灯片必须等高。如果您在使用垂直方向时有不同高度的幻灯片,您的幻灯片的间距会不正确。

但是,我的每张幻灯片的高度/宽度都完全相同。

这是基本的 HTML 代码:

<div class="flexslider">
    <ul class="slides">
        <li>
            <img src="myimage" />
            <h1>Title 1</h1>
        </li>
        <li>
            <img src="myimage2" />
            <h1>Title 2</h1>
        </li>
        <li>
            <img src="myimage3" />          
            <h1>Title 3</h1>
        </li>
    </ul>
</div>

这是相关的CSS:

/* Browser Resets */
.flex-container a:active,
.flexslider a:active,
.flex-container a:focus,
.flexslider a:focus  {outline: none;}
.slides,
.flex-control-nav,
.flex-direction-nav {margin: 0; padding: 0; list-style: none;} 

/* FlexSlider Necessary Styles
*********************************/ 
.flexslider {margin: 0; padding: 0;}
.flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */
.flexslider .slides img {width: 100%; display: block;}
.flex-pauseplay span {text-transform: capitalize;}

/* Clearfix for the .slides element */
.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;} 
html[xmlns] .slides {display: block;} 
* html .slides {height: 1%;}

/* No JavaScript Fallback */
/* If you are not using another script, such as Modernizr, make sure you
 * include js that eliminates this class on page load */
.no-js .slides > li:first-child {display: block;}

/* FlexSlider Default Theme
*********************************/
.flexslider {margin: 0 0 60px; background: #fff; border: 4px solid #fff; position: relative; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.2); -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.2); -moz-box-shadow: 0 1px 4px rgba(0,0,0,.2); -o-box-shadow: 0 1px 4px rgba(0,0,0,.2); zoom: 1;}
.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;}
.loading .flex-viewport {max-height: 300px;}
.flexslider .slides {zoom: 1;}

.carousel li {margin-right: 5px}

我制作了一个jsFiddle,您可以在其中看到滑出位置的幻灯片。我试过归零和调整边距。我现在需要一些帮助,因为我认为这与 Flexslider 脚本注入的内联 CSS 有关。

在此先感谢任何可以提供帮助的人!

更新:找到修复程序。 H1标签上有浏览器默认边距。在下面的答案中进行简单修复。

4

1 回答 1

2

经过多次试验和错误,我发现问题出在<H1>标签上。浏览器正在应用默认边距,这使得幻灯片比检测到的 flexslider 脚本大。

修复很简单。只需添加:

.slides li h1 {margin:0; padding: 0;}

请参阅已应用修复程序的新小提琴

希望这对其他人有帮助。

于 2013-07-18T17:08:23.363 回答