使用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 相关文章推荐
DOM2非标准但却支持很好的几个属性小结
Jan 21 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 Javascript
ECMAScript5(ES5)中bind方法使用小结
May 07 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
JS组件Bootstrap Table布局详解
May 27 Javascript
jquery自适应布局的简单实例
May 28 Javascript
ASP.NET jquery ajax传递参数的实例
Nov 02 Javascript
详解angularJs中关于ng-class的三种使用方式说明
Jun 02 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
vue中使用vue-cli接入融云实现即时通信
Apr 19 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
Aug 03 Javascript
vue微信分享插件使用方法详解
Feb 18 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
深入分析jsonp协议原理
2015/09/26 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
python列表与元组详解实例
2013/11/01 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
详解Python with/as使用说明
2018/12/13 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
Python用input输入列表的实例代码
2020/02/07 Python
什么是python的列表推导式
2020/05/26 Python
如何理解python面向对象编程
2020/06/01 Python
致800米运动员广播稿(10篇)
2014/10/17 职场文书
圣诞节开幕词
2015/01/29 职场文书