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阻止事件追加的具体实现
Oct 15 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
Apr 28 Javascript
javascript下使用Promise封装FileReader
Feb 19 Javascript
Google 地图控件集详解及实例代码
Aug 06 Javascript
JavaScript Uploadify文件上传实例
Feb 28 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
AngularJS改变元素显示状态
Apr 20 Javascript
js实现图片推拉门效果代码实例
May 18 Javascript
js基础之事件捕获与冒泡原理
Oct 09 Javascript
js实现点击烟花特效
Oct 14 Javascript
使用javascript解析二维码的三种方式
Nov 11 Javascript
在 HTML 页面中使用 React的场景分析
Jan 18 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 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
php导出excel格式数据问题
2014/03/11 PHP
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
Javascript 刷新全集常用代码
2009/11/22 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
JavaScript中的this机制
2016/01/30 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
jquery replace方法去空格
2017/05/08 jQuery
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
代码详解django中数据库设置
2019/01/28 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
简历中个人求职的自我评价模板
2013/11/29 职场文书
《分一分》教学反思
2014/04/13 职场文书
三方协议书范本
2014/04/22 职场文书
房产协议书范本2014
2014/09/30 职场文书
高中社区服务活动报告
2015/02/05 职场文书
小学教师自我评价
2015/03/04 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL