具有响应宽度和固定高度的滑块
Slider with responsive width and fixed height
我在网站上工作,我需要将图像滑块作为页眉。我希望幻灯片是页面的整个宽度,并且高度保持固定(可能使用视口单位)。理想情况下,它会随着视口变窄而裁剪图像宽度。我已经尝试使用几个不同的滑块插件(Owl Carousel、Slippry 和 Flexslider 2)多次实现这一点,但没有任何效果。现在我通过创建 3 个不同的幻灯片(1 个用于桌面,1 个用于平板电脑,1 个用于移动设备)然后使用媒体查询来显示或隐藏每个幻灯片,但这意味着浏览器必须加载幻灯片 3不同的时间,导致我的页面加载时间非常长。
实现我想要的最好方法是什么?
最简单的解决方案是使用带 background-size: cover
的背景图片。这将使图像足够大以填满整个幻灯片,裁剪任何额外的宽度或高度。
如果您想使用 img
,另一种选择是绝对定位图像,然后用 CSS 将其居中。这有时会导致信箱,具体取决于图像的宽高比,但 CSS 看起来像这样:
.slide img {
position: absolute;
top: 50%;
left: 50%;
width: auto;
height: 100%;
transform: translate(-50%, -50%);
}
这将生成一张图片,其高度填满幻灯片,并且在幻灯片中垂直和水平居中(您可能需要 transform
的供应商前缀,具体取决于您需要支持的浏览器) .
这些解决方案中的任何一个都应该适用于任何尺寸的响应式幻灯片。
我想你正在寻找这样的东西。这个也将在小型设备和平板电脑上工作。您也可以在同一页面上有多个轮播。只需复制 "DIV"-"SpecDataWrap" 并更改 ID。
<div class="ContainerWrap">
<div class="Container">
<div class="AllSpecsDataWrap">
<div class="SpecDataWrap" id="SpecDataWrap1">
<div class="SpecDataSlides activeNavSlide">
<img src="http://s19.postimg.org/lzem156s3/image1.jpg" />
<div class="SpecDesc SpecDescRight">
<h2>Choose to be unique.</h2>
<div class="SpecDescDetails">
Metal accents, colorful hues, real woods and leathers, and a customizable laser-etched signature offer thousands of ways to make your Moto X unique.
</div>
</div>
</div>
<div class="SpecDataSlides InActiveNavSlide">
<img src="http://s19.postimg.org/6cira13mb/image2.jpg" />
<div class="SpecDesc SpecDescLeft">
<h2>Choose to be unique.</h2>
<div class="SpecDescDetails">
Metal accents, colorful hues, real woods and leathers, and a customizable laser-etched signature offer thousands of ways to make your Moto X unique.
</div>
</div>
</div>
<div class="SpecDataSlides InActiveNavSlide">
<img src="http://s19.postimg.org/f4zpxpor7/image3.jpg" />
<div class="SpecDesc SpecDescRight">
<h2>Choose to be unique.</h2>
<div class="SpecDescDetails">
Metal accents, colorful hues, real woods and leathers, and a customizable laser-etched signature offer thousands of ways to make your Moto X unique.
</div>
</div>
</div>
<div class="SpecSlideNavigation">
<div class="leftNavSpec SpecSlideNav"></div>
<div class="bulletsNavSpec">
<ul>
<li class="activeImage"></li>
<li class="InActiveImage"></li>
<li class="InActiveImage"></li>
</ul>
<div class="clearFix"></div>
</div>
<div class="RightNavSpec SpecSlideNav"></div>
</div>
<div class="clearFix"></div>
</div>
</div>
</div>
</div>
您可以在此处查看 JS 和 CSS 代码:
https://jsfiddle.net/raju_sumit/Ld21vutz/
我在网站上工作,我需要将图像滑块作为页眉。我希望幻灯片是页面的整个宽度,并且高度保持固定(可能使用视口单位)。理想情况下,它会随着视口变窄而裁剪图像宽度。我已经尝试使用几个不同的滑块插件(Owl Carousel、Slippry 和 Flexslider 2)多次实现这一点,但没有任何效果。现在我通过创建 3 个不同的幻灯片(1 个用于桌面,1 个用于平板电脑,1 个用于移动设备)然后使用媒体查询来显示或隐藏每个幻灯片,但这意味着浏览器必须加载幻灯片 3不同的时间,导致我的页面加载时间非常长。
实现我想要的最好方法是什么?
最简单的解决方案是使用带 background-size: cover
的背景图片。这将使图像足够大以填满整个幻灯片,裁剪任何额外的宽度或高度。
如果您想使用 img
,另一种选择是绝对定位图像,然后用 CSS 将其居中。这有时会导致信箱,具体取决于图像的宽高比,但 CSS 看起来像这样:
.slide img {
position: absolute;
top: 50%;
left: 50%;
width: auto;
height: 100%;
transform: translate(-50%, -50%);
}
这将生成一张图片,其高度填满幻灯片,并且在幻灯片中垂直和水平居中(您可能需要 transform
的供应商前缀,具体取决于您需要支持的浏览器) .
这些解决方案中的任何一个都应该适用于任何尺寸的响应式幻灯片。
我想你正在寻找这样的东西。这个也将在小型设备和平板电脑上工作。您也可以在同一页面上有多个轮播。只需复制 "DIV"-"SpecDataWrap" 并更改 ID。
<div class="ContainerWrap">
<div class="Container">
<div class="AllSpecsDataWrap">
<div class="SpecDataWrap" id="SpecDataWrap1">
<div class="SpecDataSlides activeNavSlide">
<img src="http://s19.postimg.org/lzem156s3/image1.jpg" />
<div class="SpecDesc SpecDescRight">
<h2>Choose to be unique.</h2>
<div class="SpecDescDetails">
Metal accents, colorful hues, real woods and leathers, and a customizable laser-etched signature offer thousands of ways to make your Moto X unique.
</div>
</div>
</div>
<div class="SpecDataSlides InActiveNavSlide">
<img src="http://s19.postimg.org/6cira13mb/image2.jpg" />
<div class="SpecDesc SpecDescLeft">
<h2>Choose to be unique.</h2>
<div class="SpecDescDetails">
Metal accents, colorful hues, real woods and leathers, and a customizable laser-etched signature offer thousands of ways to make your Moto X unique.
</div>
</div>
</div>
<div class="SpecDataSlides InActiveNavSlide">
<img src="http://s19.postimg.org/f4zpxpor7/image3.jpg" />
<div class="SpecDesc SpecDescRight">
<h2>Choose to be unique.</h2>
<div class="SpecDescDetails">
Metal accents, colorful hues, real woods and leathers, and a customizable laser-etched signature offer thousands of ways to make your Moto X unique.
</div>
</div>
</div>
<div class="SpecSlideNavigation">
<div class="leftNavSpec SpecSlideNav"></div>
<div class="bulletsNavSpec">
<ul>
<li class="activeImage"></li>
<li class="InActiveImage"></li>
<li class="InActiveImage"></li>
</ul>
<div class="clearFix"></div>
</div>
<div class="RightNavSpec SpecSlideNav"></div>
</div>
<div class="clearFix"></div>
</div>
</div>
</div>
</div>
您可以在此处查看 JS 和 CSS 代码: https://jsfiddle.net/raju_sumit/Ld21vutz/