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如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
Apr 20 Javascript
代码触发js事件(click、change)示例应用
Dec 13 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
May 09 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 Javascript
jQuery自定义图片上传插件实例代码
Apr 04 jQuery
Vue 中使用vue2-highcharts实现曲线数据展示的方法
Mar 05 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 Javascript
Vue-Router基础学习笔记(小结)
Oct 15 Javascript
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
js实现蒙版效果
Jan 11 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解析字符串里所有URL地址的方法
2015/04/03 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
Django URL传递参数的方法总结
2016/08/28 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
Python 的AES加密与解密实现
2019/07/09 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
小班秋游活动方案
2014/02/22 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
委托书格式
2014/08/01 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
2014财务年终工作总结
2014/12/08 职场文书
2015新学期家长寄语
2015/02/26 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript