首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想在固定大小的div元素中填充图像滑块

我想在固定大小的div元素中填充图像滑块
EN

Stack Overflow用户
提问于 2017-03-03 19:14:39
回答 2查看 1.1K关注 0票数 1

我有几个不同大小的图像,我将使用这些图像来制作图像滑块。

我指的是this document

但在这个库中,图像在div元素中是方面适合的。

如何制作图像滑块,其中的图像是使用不同大小的图像进行纵横比填充?

EN

回答 2

Stack Overflow用户

发布于 2017-03-08 07:29:13

链接到的幻灯片设置为以纵横比调整模式显示。很难说这种情况正在发生,但图像正在填充垂直和/或水平空间,这取决于它们的纵横比。

JSSOR幻灯片有一个选项来定义图像的适配方式,你链接的例子被设置为'Contain & Actual for Small Image‘。这意味着它将使用aspect-fit,除非图像太小而无法填充高度和/或宽度,并且它将在幻灯片上居中显示图像。

您可以通过单击“Edit This Slider”链接,然后单击“Layout”并更改右侧的填充模式来更改图像的适配方式。默认情况下,它似乎设置为aspect-fit,或‘包含&实际的小图像’。如果您希望图像同时填充高度和宽度,这将需要放大一些图像,您可以选择cover。这将通过缩放和裁剪图像的部分来使每个图像填充整个幻灯片。

票数 1
EN

Stack Overflow用户

发布于 2017-03-09 23:12:42

有一天,我在这种情况下开发了类似的代码。我知道我的代码不是一种很好的方式,但是它可以运行很多javascript代码,所以它可能会造成性能问题。这是我的试用代码。我也想帮你一点忙。

html

代码语言:javascript
运行
复制
<div class="swiper-container thumbnails-preview" data-autoplay="0" data-loop="1"
    data-speed="500" data-center="0" data-slides-per-view="1">
    <div class="swiper-wrapper">
        <div class="swiper-slide active" data-val="0">
             <div class="img_content">
                   <img class="img-responsive"  src="img_url"alt="">
                   <img class="img-responsive"  src="img_url"alt="">
                   ...
             </div>
        </div>
         <div class="pagination pagination-hidden poin-style-1"></div>
              <div class="arr-t-3">
                    <div class="swiper-arrow-left sw-arrow"><span class="fa fa-angle-left" style="left: 10px"></span></div>
                     <div class="swiper-arrow-right sw-arrow"><span class="fa fa-angle-right" style="right: 10px"></span>
              </div>
         </div>
    </div>
</div>

Javascript

代码语言:javascript
运行
复制
    $(".img_content").each(function () {

        var parentWidth = $(this).width();
        var parentHeight = parentWidth * 0.7;

        $(this).css("height", parentHeight);
        $(this).css("overflow", "hidden");

        var target = $(this).children('img');
        var width = target.width();
        var height = target.height();

        var ratioXY = 0.5;

        var imgW = $(this).children('img').width();
        var imgH = $(this).children('img').height();


        //block size
        var block_width = $(this).closest(".swiper-container").width();
        var block_height = block_width * ratioXY;

        //image ratio
        var ratio = imgH / imgW;

        //image block size
        $(this).css("width", block_width);
        $(this).css("height", block_height);
        $(this).css("overflow", "hidden");

        if (ratio > ratioXY) {
            $(this).children('img').css("width", "100%");
            var gap = (imgH * block_width / imgW - block_height) / 2;
            $(this).children('img').css("margin-top", -gap);
        }
        else {
            $(this).children('img').css("height", "100%");
            $(this).children('img').css("max-width", 100 / ratio + "%");
            var gap = (imgW * block_height / imgH - block_width) / 2;
            $(this).children('img').css("margin-left", -gap);
        }
    });

事实上,我在代码中使用了。然而,可以使用另一个,但我认为如何使用几乎是相同的。

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42577408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档