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有关的小细节
Apr 02 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
Feb 17 Javascript
js实现常用排序算法
Aug 09 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
Mar 10 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
Aug 16 Javascript
JS返回页面时自动回滚到历史浏览位置
Sep 26 Javascript
node.js爬取中关村的在线电瓶车信息
Nov 13 Javascript
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
Sep 24 Javascript
vue用BMap百度地图实现即时搜索功能
Sep 26 Javascript
vue实现lodop打印功能的示例
Nov 11 Javascript
JavaScript实现无限轮播效果
Nov 19 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
php 文本文件的读取效率
2012/02/10 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
冬季安全检查方案
2014/05/23 职场文书
学生党员公开承诺书
2014/05/28 职场文书
文明工地标语
2014/06/16 职场文书
团员年度个人总结
2015/02/26 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL