Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 599|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-5-12 21:36:21 | 显示全部楼层 |阅读模式

    顶求网的首页中我使用了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="图片一" onload="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="图片二" onload="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="图片三" onload="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属性的设置),这样即使图片的大小变化了,也可以显示图片的主要内容,而且图片比率可以保持不变。

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

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-23 15:09 , Processed in 0.057749 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表