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 相关文章推荐
网页中可关闭的漂浮窗口实现可自行调节
Aug 20 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
JavaScript中的replace()方法使用详解
Jun 06 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
Nov 24 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
Vue2递归组件实现树形菜单
Apr 10 Javascript
vue.js项目打包上线的图文教程
Nov 16 Javascript
详解微信小程序文件下载--视频和图片
Apr 24 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
node crawler如何添加promise支持
Feb 01 Javascript
微信小程序实现电影App导航和轮播
Nov 30 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
谈谈新手如何学习PHP
2006/12/14 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
用Python解决x的n次方问题
2019/02/08 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
综合办公室个人的自我评价
2013/12/22 职场文书
自我鉴定总结
2014/03/24 职场文书
安全生产管理责任书
2014/04/16 职场文书
2014年军人思想汇报范文
2014/10/12 职场文书
业务员辞职信范文
2015/03/02 职场文书
田径运动会通讯稿
2015/07/18 职场文书
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers