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 相关文章推荐
用javascript自动显示最后更新时间
Mar 15 Javascript
用Javscript实现表单复选框的全选功能
May 25 Javascript
javascript之可拖动的iframe效果代码
Aug 01 Javascript
javascript的trim,ltrim,rtrim自定义函数
Sep 21 Javascript
js CSS3实现卡牌旋转切换效果
Jul 04 Javascript
vue-cli之router基本使用方法详解
Oct 17 Javascript
vue-content-loader内容加载器的使用方法
Aug 05 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
Jan 27 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
vue父组件给子组件的组件传值provide inject的方法
Oct 23 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 Javascript
JavaScript React如何修改默认端口号方法详解
Jul 28 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
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
js实现自定义进度条效果
2017/03/15 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
TensorFlow打印tensor值的实现方法
2018/07/27 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
wxPython实现整点报时
2019/11/18 Python
Python创建数字列表的示例
2019/11/28 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
Python接收手机短信的代码整理
2020/08/02 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
小学三年级数学教学反思
2014/01/31 职场文书
代理协议书
2014/04/22 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
离职告别感言
2015/08/04 职场文书
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技