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判断一个URL链接是否有效的实现方法
Oct 08 Javascript
jquery实现通用的内容渐显Tab选项卡效果
Sep 07 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
jQuery取消特定的click事件
Feb 29 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
Dec 14 Javascript
基于vue.js快速搭建图书管理平台
Oct 29 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
May 04 Javascript
菊花转动的jquery加载动画效果
Aug 19 jQuery
Angular(5.2-&gt;6.1)升级小结
Dec 27 Javascript
jQuery 查找元素操作实例小结
Oct 02 jQuery
vue3种table表格选项个数的控制方法
Apr 14 Vue.js
深入浅析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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php split汉字
2009/06/05 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python修改MP3文件的方法
2015/06/15 Python
Django中使用Celery的方法示例
2018/11/29 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
大学生自我鉴定范文
2013/12/28 职场文书
违纪学生保证书
2015/02/27 职场文书
文员岗位职责范本
2015/04/16 职场文书
新闻稿格式范文
2015/07/18 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
2016国庆促销广告语
2016/01/28 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis