使用BootStrap建立响应式网页——通栏轮播图(carousel)


Posted in Javascript onDecember 21, 2016

1、bootstrap提供了js插件——轮播图

我们还是照旧,直接拿过来用,需要改的地方再说。

2、修改

小屏幕看小图,大屏图看大图:这个可以利用自定义属性(data-XXX)data-img-lg(保存大图)和data-img-xs(保存小图)属性保存图片的路径,利用jQuery的data函数取出data-xxxx属性进行动态加载。

图片居中显示:大图用背景图片来做比较好一点,小图用img来做比较好一点(因为小图的话需要等比例缩放,用背景图做不到等比例缩放)。

承载轮播图的盒子高度:大图的的时候用图片的高度,小图自适应,所以要用到媒体查询,设置容器高度。

3、代码

<section id="banner" class="carousel slide" data-ride="carousel">
        <!--小圆点 -->
        <ol class="carousel-indicators">
          <li data-target="#banner" data-slide-to="0" class="active"></li>
          <li data-target="#banner" data-slide-to="1"></li>
          <li data-target="#banner" data-slide-to="2"></li>
          <li data-target="#banner" data-slide-to="3"></li>
        </ol>
        <!-- 轮播图片 -->
        <div class="carousel-inner" role="listbox">
          <div class="item active" data-img-lg="img/slide_01_2000x410.jpg" data-img-xs="img/slide_01_640x340.jpg">
          </div>
          <div class="item" data-img-lg="img/slide_02_2000x410.jpg" data-img-xs="img/slide_02_640x340.jpg">
          </div>
          <div class="item" data-img-lg="img/slide_03_2000x410.jpg" data-img-xs="img/slide_03_640x340.jpg">
          </div>
          <div class="item" data-img-lg="img/slide_04_2000x410.jpg" data-img-xs="img/slide_04_640x340.jpg">
          </div>
        </div>
        <!-- 左右轮播 -->
        <a class="left carousel-control" href="#banner" role="button" data-slide="prev">
          <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
          <span class="sr-only">Previous</span>
        </a>
        <a class="right carousel-control" href="#banner" role="button" data-slide="next">
          <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
          <span class="sr-only">Next</span>
        </a>
    </section>
<script type="text/javascript">
      $(function() {
        //获取屏幕宽度
//        var screenWidth=$(window).width();
        //判断是不是手机屏幕
//        if(screenWidth<768){//手机屏幕
//          $("#banner .carousel-inner .item").each(function(index,item){
//          var $item=$(item);//因为传递的item是dom对象,要把dom对象改为jQuery对象
//          $item.css("background-image","url("+$item.data('img-xs')+")");
//          });
//        }else{//大屏幕
//          $("#banner .carousel-inner .item").each(function(index,item){
//          var $item=$(item);//因为传递的item是dom对象,要把dom对象改为jQuery对象
//          $item.css("background-image",'url('+$item.data('img-lg')+')');
//          });
//        }
        //三元式
//        var isPhone=screenWidth<768;
//        $("#banner .carousel-inner .item").each(function(index,item){
//          var $item = $(item);//因为传递的item是dom对象,要把dom对象改为jQuery对象
//          $item.css("background-image","url("+$item.data(isPhone?'img-xs':'img-lg')+")");
//        });
        function selectImg(){
          var screenWidth=$(window).width();
          var isPhone=screenWidth<768;
          $("#banner .carousel-inner .item").each(function(index,item){
            var $item = $(item);//因为传递的item是dom对象,要把dom对象改为jQuery对象
            $item.css("background-image",'url('+$item.data(isPhone?'img-xs':'img-lg')+')');
            //我们需要小图的时候等比例变化,所以我们需要img标签
            if(isPhone){
              $item.html("<img src='"+$item.data('img-xs')+"' alt='' />");
            }else {
              $item.empty();
            }
          });
        }
//        $(window).on("resize",selectImg);//这样是没有效果的,必须屏幕尺寸变化一下才会加载图片
        $(window).on('resize',selectImg).trigger('resize');//触发的是resize事件,不是事件处理程序selectImg
      });
    </script>

以上所述是小编给大家介绍的使用BootStrap建立响应式网页——通栏轮播图(carousel),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用js实现trim()的解决办法
Apr 16 Javascript
javascript消除window.close()的提示窗口
May 20 Javascript
JavaScript淡入淡出渐变简单实例
Aug 06 Javascript
JavaScript面向对象程序设计教程
Mar 29 Javascript
浅析angularJS中的ui-router和ng-grid模块
May 20 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
Aug 08 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
js实现金山打字通小游戏
Jul 24 Javascript
原生JavaScript实现五子棋游戏
Nov 09 Javascript
Java 生成随机字符的示例代码
Jan 13 Javascript
js实现开启密码大写提示
Dec 21 #Javascript
js实现的在线调色板功能完整实例
Dec 21 #Javascript
Bootstrap 模态框(Modal)插件代码解析
Dec 21 #Javascript
清除输入框内的空格
Dec 21 #Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 #Javascript
jQuery延迟执行的实现方法
Dec 21 #Javascript
jquery实现输入框实时输入触发事件代码
Dec 21 #Javascript
You might like
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
python实现简单的socket server实例
2015/04/29 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Python数据类型之List列表实例详解
2019/05/08 Python
实例代码讲解Python 线程池
2020/08/24 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
机动车登记业务委托书
2014/10/08 职场文书
整改报告怎么写
2014/11/06 职场文书
整改报告格式
2014/11/06 职场文书
办公室文员岗位职责
2015/02/04 职场文书
教师学期末个人总结
2015/02/13 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
公司老总年会致辞
2015/07/30 职场文书
2016春节放假通知范文
2015/08/18 职场文书
个人工作决心书
2015/09/22 职场文书
2016年情人节问候语
2015/11/11 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python