轮播图片自适应问题 5

参考地址如图一,改写如图二,实际运行效果如图三。碰到的问题是一:图片无法自适应,参数无法设置100%,只能设置数值。二:图片无法填充整个区域,上下均有空白。希望大神帮忙给... 参考地址如图一,改写如图二,实际运行效果如图三。碰到的问题是一:图片无法自适应,参数无法设置100%,只能设置数值。二:图片无法填充整个区域,上下均有空白。希望大神帮忙给看看哦,如果有更好的轮播源码,也可以提供下哦 展开
 我来答
东坡下载站
2018-12-12 · 最新优质手游软件资源下载
东坡下载站
东坡下载是一个专业的无毒的免费的软件资源网站
向TA提问
展开全部
  • 当屏幕宽度大于等于768px时,图片使用大图,轮播图里的div高度固定,宽度为窗口的宽度(随窗口宽度的变化而变化)

  • 当屏幕宽度小于768px(手机)时,将图片换为小图,并在div里生成img标签,img的宽高随窗口变化而变化,包裹img的div也随之变化

  • html代码

<section id="main_ad" class="carousel slide" data-ride="carousel">
    <!-- 活动指示器 -->
    <ol class="carousel-indicators">
      <li data-target="#main_ad" data-slide-to="0" class="active"></li>
      <li data-target="#main_ad" data-slide-to="1"></li>
      <li data-target="#main_ad" data-slide-to="2"></li>
      <li data-target="#main_ad" data-slide-to="3"></li>
    </ol>
    <!-- 轮播项 -->
    <div class="carousel-inner" role="listbox">
      <div class="item active" data-image-lg="img/slide_01_2000x410.jpg" data-image-xs="img/slide_01_640x340.jpg"></div>
      <div class="item" data-image-lg="img/slide_02_2000x410.jpg" data-image-xs="img/slide_02_640x340.jpg"></div>
      <div class="item" data-image-lg="img/slide_03_2000x410.jpg" data-image-xs="img/slide_03_640x340.jpg"></div>
      <div class="item" data-image-lg="img/slide_04_2000x410.jpg" data-image-xs="img/slide_04_640x340.jpg"></div>
    </div>
    <!-- 控制按钮 -->
    <a class="left carousel-control" href="#main_ad" 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="#main_ad" role="button" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
      <span class="sr-only">Next</span>
    </a>
  </section>

css代码

#main_ad .carousel-inner .item{
    background-size: cover; /*让图片覆盖满整个div*/
    background-position: center,center; /*让图片在div里水平垂直居中*/
    background-repeat: no-repeat;
    height: 410px;
}
@media (max-width:768px) {
    #main_ad .carousel-inner .item {
        height: auto;
    }
    #main_ad .carousel-inner .item img{
        width: 100%;
    }
}

js代码

$(function() {
  /**
   * 根据屏幕宽度的变化决定轮播图片应该展示什么 5    */
  function resize() {
    // 获取屏幕宽度
    var windowWidth = $(window).width();
    // 判断屏幕属于大还是小
    var isSmallScreen = windowWidth < 768;
    // 根据大小为界面上的每一张轮播图设置背景
    $('#main_ad > .carousel-inner > .item').each(function(i, item) {
      var $item = $(item);
      // var imgSrc = $item.data(isSmallScreen ? 'image-xs' : 'image-lg');
      var imgSrc =
        isSmallScreen ? $item.data('image-xs') : $item.data('image-lg');
      // 设置背景图片
      $item.css('backgroundImage', 'url("' + imgSrc + '")');
      //
      // 因为我们需要小图时 尺寸等比例变化,所以小图时我们使用img方式
      if (isSmallScreen) {
        $item.html('<img src="' + imgSrc + '" alt="" />');
      } else {
        $item.empty();
      }
    });
  }
  // // 让window对象立即触发一下resize,初始化div的背景图
  // $(window).trigger('resize');


  $(window).on('resize', resize).trigger('resize');
});
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式