使用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 EasyUI tree中state属性慎用
Apr 01 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
AngularJS 模型详细介绍及实例代码
Jul 27 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
Jan 22 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
jQuery实现模糊查询的方法分析
May 10 jQuery
使用JavaScript生成罗马字符的实例代码
Jun 08 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 Javascript
Vue.js 父子组件通信的十种方式
Oct 30 Javascript
详解关于element级联选择器数据回显问题
Feb 20 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/10/09 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
JavaScript 常用函数库详解
2009/10/21 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
js实现网页收藏功能
2015/12/17 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
angular双向绑定模拟探索
2016/12/26 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python切割图片的示例
2020/11/12 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
马来西亚网上购物:Youbeli
2018/03/30 全球购物
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
管理学专业个人求职信范文
2013/09/21 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
市场调查策划方案
2014/06/10 职场文书
学校清明节活动总结
2014/07/04 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
护士年终考核评语
2014/12/31 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书