使用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 相关文章推荐
List all the Databases on a SQL Server
Jun 21 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
Mar 25 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
JavaScript中的small()方法使用详解
Jun 08 Javascript
JavaScript继承学习笔记【新手必看】
May 10 Javascript
React-router中结合webpack实现按需加载实例
May 25 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
jQuery事件委托代码实践详解
Jun 21 jQuery
Vue最新防抖方案(必看篇)
Oct 30 Javascript
Vue退出登录时清空缓存的实现
Nov 12 Javascript
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
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的变量总结 新手推荐
2011/04/18 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
JavaScript 异步调用
2017/10/25 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
基于python的字节编译详解
2017/09/20 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
python3爬虫中异步协程的用法
2020/07/10 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
英语专业职业生涯规划范文
2014/03/05 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
画展邀请函
2015/01/31 职场文书
音乐教师求职信范文
2015/03/20 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
学校捐款活动总结
2015/05/09 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers
python实现会员信息管理系统(List)
2022/03/18 Python