使用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 相关文章推荐
JQuery自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
广泛收集的jQuery拖放插件集合
Apr 09 Javascript
checkbox设置复选框的只读效果不让用户勾选
Aug 12 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
基于编写jQuery的无缝滚动插件
Aug 02 Javascript
动态加载js的方法汇总
Feb 13 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
JavaScript File API文件上传预览
Feb 02 Javascript
jQuery Validate插件实现表单验证
Aug 19 Javascript
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 Javascript
详解Vue中的MVVM原理和实现方法
Jul 15 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
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
js更优雅的兼容
2010/08/12 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
js Dialog 实践分享
2012/10/22 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
javascript实现简易计算器
2017/02/01 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
2019/09/25 Javascript
Python中super的用法实例
2015/05/28 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
Python调用.NET库的方法步骤
2019/12/27 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
python的数学算法函数及公式用法
2020/11/18 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
销售文员的岗位职责
2013/11/20 职场文书
优秀教师事迹简介
2014/02/02 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
关于python类SortedList详解
2021/09/04 Python