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代码
Sep 02 Javascript
js post方式传递提交的实现代码
May 31 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
改变状态栏文字的js代码
Jun 13 Javascript
jQuery+Ajax实现限制查询间隔的方法
Jun 07 Javascript
js 获取当前web应用的上下文路径实现方法
Aug 19 Javascript
浅谈js键盘事件全面控制
Dec 01 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
Mar 04 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
新手vue构建单页面应用实例代码
Sep 18 Javascript
浅谈如何使用 webpack 优化资源
Oct 20 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 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 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
yii数据库的查询方法
2015/12/28 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
JS 表单验证大全
2011/11/23 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
python manage.py runserver流程解析
2019/11/08 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
易程科技软件测试笔试
2013/03/24 面试题
大专应届生个人的自我评价
2013/11/21 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
业余无线电通联Q语
2022/02/18 无线电