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日期格式化示例分享
Mar 05 Javascript
JS实现双击编辑可修改状态的方法
Aug 14 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
Node.js制作简单聊天室
Jan 12 Javascript
浅谈node中的exports与module.exports的关系
Aug 01 Javascript
JavaScript中使用Async实现异步控制
Aug 15 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
详解一个基于react+webpack的多页面应用配置
Jan 21 Javascript
详解webpack4.x之搭建前端开发环境
Mar 28 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
Jun 18 Javascript
Vue路由权限控制解析
Nov 09 Javascript
Map与WeakMap类型在JavaScript中的使用详解
Nov 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
再次研究下cache_lite
2007/02/14 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
Javascript中的变量使用说明
2010/05/18 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
Python CSV模块使用实例
2015/04/09 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
json跨域调用python的方法详解
2017/01/11 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
房地产销售计划书
2014/01/10 职场文书
会计大学生职业生涯规划书范文
2014/01/13 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
外出学习心得体会范文
2016/01/18 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
基于python实现银行管理系统
2021/04/20 Python