
Bootstrap轮播(carousel)插件中图片变形的终极解决方案——使用jqthumb.js
发布日期:2021-05-09 05:30:35
浏览次数:17
分类:博客文章
本文共 1744 字,大约阅读时间需要 5 分钟。
在的首页中我使用了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属性的设置),这样即使图片的大小变化了,也可以显示图片的主要内容,而且图片比率可以保持不变。
以上就是所有内容,希望能对大家有所帮助,转载请注明来源为
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月30日 16时42分40秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux学习笔记(四)基本用户管理与帮助命令
2019-03-11
小程序:防止父方法被子方法冒泡,使用catchtap
2019-03-11
vue报错 created hook错误
2019-03-11
此主机支持Intel VT-x,但Intel VT-x 处于禁用状态。
2019-03-11
12-面向对象1
2019-03-11
HDU - 4109 Instrction Arrangement
2019-03-11
Java位运算,负数的二进制表示形式,int类型最大值为什么是2的31次方-1
2019-03-12
JQuery--手风琴,留言板
2019-03-12
MFC 自定义消息发送字符串
2019-03-12
goahead 下goaction测试与搭建
2019-03-12
Linux操作系统的安装与使用
2019-03-12
ajax请求出现/[object%20Object]错误的解决办法
2019-03-12
流体运动估计光流算法研究
2019-03-12
如何转载博客
2019-03-12
C++ 继承 详解
2019-03-12
OSPF多区域
2019-03-12
Grafana导入 Promethus node模板
2019-03-12
如何提高SQL查询的效率?
2019-03-12
Docker入门之-镜像(二)
2019-03-12
数据结构——链表(3)
2019-03-12