Bootstrap轮播(carousel)插件中图片变形的终极解决方案——使用jqthumb.js

顶求网的首页中我使用了BootStrap的轮播(carousel)插件来展示文章中的图片。我在程序中自动抓取文章的第一张图片作为该轮播控件中要显示的图片,由于文章的图片大小不一,而轮播插件的大小基本是固定的,所以展示的时候图片出现了变形。在网上找了很多中方式也没有解决(过程曲折,不再赘述),直到找到了这款Jquery的缩放插件——jqthumb.js.下面来看看如何使用它以及如何利用它来控制轮播控件中图片的大小,而且能够做到不变形,可以显示图片的主要部分(类似于微信朋友圈的图片混排效果——不知道大家有没有注意,在微信朋友圈中无论你发的图片的比率是什么,总能够被完美的排列,而不会发生变形)。首先我们看看Bootstrap的Carousel的html代码:

<div id="carousel-example-generic"  class="carousel slide" data-ride="carousel">
<!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
      <div class="item active">
      <a href="包含图片一文章路径">
          <img src="图片一路径" alt="图片一" οnlοad="DrawImage(this)"/></a>
          <div class="carousel-caption">
              <h4 class="alpha">
                  <a style="color:white;" href="包含图片一文章路径">图片一标题</a>
              </h4>
             </div>
     
      </div>
      <div class="item">
     <a href="包含图片二文章路径">
         <img src="图片二路径" alt="图片二" οnlοad="DrawImage(this)"/>
     </a>
     <div class="carousel-caption">
              <h4 class="alpha">
                  <a style="color:white;" href="包含图片二文章路径">图片二标题</a>
              </h4>
             </div>
     </div>
     <div class="item">
         <a href="包含图片三文章路径">
             <img src="图片三路径" alt="图片三" οnlοad="DrawImage(this)"/>
          </a>
          <div class="carousel-caption">
              <h4 class="alpha">
                  <a style="color:white;" href="包含图片三文章路径">图片三标题</a>
              </h4>
             </div>
     </div>
  </div>

由上述代码可以看到,每个图片(img)在加载(onload)的时候都调用了一个函数DrawImage,在这个函数中我们就可以调用jqthumb.js的方法来控制图片的大小了,注意该函数一定要加在上述HTML代码前,否则第一次加载的时候控制图片大小会失败(因为页面加载时序的原因),函数代码如下:

<!--导入插件-->
<script type="text/javascript" src="/static/plugins/thumb/js/jqthumb.js"></script>
<script>
function DrawImage(hotimg)
{
   $(hotimg).jqthumb({
   classname      : 'jqthumb',
            width          : '100%',
            height         : '300px',
            position       : { y: '50%', x: '50%'},
            zoom           : '1',
            method         : 'auto',
   });
}
</script>

在该函数中我们调用了jqthumb方法来定义一个宽度和轮播插件相同高度为300px的原图片的缩略图,该缩略图是由图片的中心开始生成的(注意其position属性的设置),这样即使图片的大小变化了,也可以显示图片的主要内容,而且图片比率可以保持不变。

以上就是所有内容,希望能对大家有所帮助,转载请注明来源为顶求网

转载于:https://www.cnblogs.com/nerd/p/5656158.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为您解答关于 Bootstrap 轮播Carousel插件的问题。 Bootstrap 轮播Carousel插件是一种用于网站上轮播图片或其他内容的组件。它可以通过添加一些简单的 HTML、CSS 和 JavaScript 代码来创建一个漂亮的轮播效果。 以下是使用 Bootstrap 轮播插件的步骤: 1. 引入 Bootstrap 样式文件和 JavaScript 文件。在 HTML 文件头部添加以下代码: ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js"></script> ``` 2. 创建轮播容器。在 HTML 文件添加一个容器元素,并设置 `data-bs-ride="carousel"` 属性,如下所示: ```html <div id="carouselExampleSlidesOnly" class="carousel slide" data-bs-ride="carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <img src="img/slide1.jpg" class="d-block w-100" alt="Slide 1"> </div> <div class="carousel-item"> <img src="img/slide2.jpg" class="d-block w-100" alt="Slide 2"> </div> <div class="carousel-item"> <img src="img/slide3.jpg" class="d-block w-100" alt="Slide 3"> </div> </div> </div> ``` 3. 添加轮播控件。在轮播容器元素外部添加轮播控件元素,如下所示: ```html <div id="carouselExampleSlidesOnly" class="carousel slide" data-bs-ride="carousel"> <div class="carousel-inner"> <div class="carousel-item active"> <img src="img/slide1.jpg" class="d-block w-100" alt="Slide 1"> </div> <div class="carousel-item"> <img src="img/slide2.jpg" class="d-block w-100" alt="Slide 2"> </div> <div class="carousel-item"> <img src="img/slide3.jpg" class="d-block w-100" alt="Slide 3"> </div> </div> </div> <div class="carousel-indicators"> <button type="button" data-bs-target="#carouselExampleSlidesOnly" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button> <button type="button" data-bs-target="#carouselExampleSlidesOnly" data-bs-slide-to="1" aria-label="Slide 2"></button> <button type="button" data-bs-target="#carouselExampleSlidesOnly" data-bs-slide-to="2" aria-label="Slide 3"></button> </div> ``` 4. 自定义轮播样式。可以使用 Bootstrap 的样式类来自定义轮播的外观和行为。例如,可以使用 `carousel-caption` 类来添加轮播标题和描述,使用 `carousel-control-prev` 和 `carousel-control-next` 类来添加前进和后退按钮。 以上就是使用 Bootstrap 轮播插件的基本步骤和示例代码。希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值