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 相关文章推荐
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
浅谈javascript的调试
Jan 28 Javascript
jQuery获取标签文本内容和html内容的方法
Mar 27 Javascript
JS实现网页Div层Clone拖拽效果
Sep 26 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
Jul 20 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
3分钟了解vue数据劫持的原理实现
May 01 Javascript
layui table 表格上添加日期控件的两种方法
Sep 28 Javascript
原生JavaScript实现拖动校验功能
Sep 29 Javascript
JavaScript中遍历的十种方法总结
Dec 15 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边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php中file_exists函数使用详解
2015/05/08 PHP
php中__toString()方法用法示例
2016/12/07 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
python装饰器练习题及答案
2019/11/01 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
采购部部长岗位职责
2014/02/06 职场文书
花店创业计划书范文
2014/02/07 职场文书
安卓程序员求职信
2014/02/28 职场文书
给上级领导的感谢信
2015/01/22 职场文书
运动会开幕词
2015/01/28 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis