使用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 相关文章推荐
如果文字过长,则将过长的部分变成省略号显示
Jun 26 Javascript
javascript 一个函数对同一元素的多个事件响应
Jul 25 Javascript
JS实现在页面随时自定义背景颜色的方法
Feb 27 Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
jQuery获取随机颜色的实例代码
May 21 jQuery
解决layer弹出层自适应页面大小的问题
Sep 16 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
May 13 Javascript
JavaScript React如何修改默认端口号方法详解
Jul 28 Javascript
小程序实现筛子抽奖
May 26 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
PHP实现简易计算器功能
2020/08/28 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
Swiper自定义分页器使用详解
2017/12/28 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
详解ES6 系列之异步处理实战
2018/10/26 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
移动端手指操控左右滑动的菜单
2019/09/08 Javascript
Python如何判断数独是否合法
2016/09/08 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
高中毕业的自我鉴定
2013/12/09 职场文书
九年级体育教学反思
2014/01/23 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
证婚人致辞精选
2015/07/28 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android