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


Posted in Javascript onJuly 10, 2016

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

来源:顶求网

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是所有内容,希望能对大家有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
Jquery实战_读书笔记2 选择器
Jan 22 Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
深入理解Javascript作用域与变量提升
Dec 09 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
Apr 16 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
input 禁止输入特殊字符的四种实现方式
Aug 24 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
Jan 20 Javascript
JavaScript实现随机五位数验证码
Sep 27 Javascript
vue实现扫码功能
Jan 17 Javascript
javascript实现移动端红包雨页面
Jun 23 Javascript
深入浅析JavaScript函数前面的加号和叹号
Jul 09 #Javascript
jQuery回到顶部的代码
Jul 09 #Javascript
jQuery 跨域访问解决原理案例详解
Jul 09 #Javascript
JavaScript跨域调用基于JSON的RESTful API
Jul 09 #Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
Jul 09 #Javascript
jquery+ajax+text文本框实现智能提示完整实例
Jul 09 #Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
Jul 09 #Javascript
You might like
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
php编写简单的文章发布程序
2015/06/18 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
详解基于webpack&amp;gettext的前端多语言方案
2019/01/29 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
公司管理建议书范文
2014/03/12 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
投资入股协议书
2016/03/22 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python