zoukankan      html  css  js  c++  java
  • CSS之实现垂直时间线展示相关内容效果

    如下,最近在工作中遇到实现时间线效果的需求,用纯css即可实现,下面给出详细实现代码。

      

    html:

     1 <div class="time_line_list_wrap hide">
     2             <ul class="time_line">
     3               <li>
     4                 <div class="time_line_item_wrap">
     5                   <span class="time">00:00:00</span>
     6                 </div>
     7               </li>
     8               <li class="time_line_item_tmpl">
     9                 <div class="time_line_item_wrap">
    10                   <span class="time"></span>
    11                   <div class="time_item_contain_wrap">
    12                     <img class="ppt_item_img_left">
    13                     <div class="item_contain_right">
    14                       <p class="ppt_name">中文课件名称超过了一定长度的字之后隐藏</p>
    15                       <span class="item_page_number">2/30</span>
    16                     </div>
    17                   </div>
    18                 </div>
    19               </li>
    20             </ul>
    21           </div>

    css:(此处用的less语法)

     1 .time_line_list_wrap{
     2         width: 100%;
     3         height: 100%;
     4         overflow-y: scroll;
     5         overflow-x: hidden;
     6         background-color: #ffffff;
     7         padding: 0;
     8         flex-grow: 1;
     9 
    10         .time_line{
    11           padding: 16px 10px 0px 10px;
    12           li{
    13             list-style-type: none;
    14             position: relative;
    15             width: 2px;
    16             height: 102px;
    17             background-color: #e6e6e6;
    18 
    19             &.time_line_item_tmpl{
    20               display: none;
    21             }
    22 
    23             &:last-child{
    24               height: 0px;
    25             }
    26 
    27             &:first-child{
    28               height: 30px;
    29             }
    30 
    31             &:before{
    32               content: '';
    33               position: absolute;
    34               left: 50%;
    35               top: 0;
    36               transform: translateX(-50%);
    37               width: 8px;
    38               height: 8px;
    39               border-radius: 50%;
    40               background: inherit;
    41             }
    42 
    43             .time_line_item_wrap {
    44               width: 280px;
    45               margin-left: 10px;
    46               position: relative;
    47               bottom: 6px;
    48 
    49               &:last-child{
    50                 margin-bottom: 20px;
    51               }
    52 
    53               &:first-child{
    54                 margin-bottom: 0px;
    55               }
    56 
    57               .time{
    58                 display: inline-block;
    59                 width: 92px;
    60                 height: 20px;
    61                 line-height: 20px;
    62                 font-size: 12px;
    63                 color: #4a90e2;
    64                 box-sizing: border-box;
    65                 padding-left: 10px;
    66               }
    67               .time_item_contain_wrap{
    68                 display: flex;
    69                 padding: 10px 0 10px 9px;
    70 
    71                 .ppt_item_img_left{
    72                   width: 80px;
    73                   height: 62px;
    74                   object-fit: contain;
    75                   flex-shrink: 0;
    76                 }
    77 
    78                 .item_contain_right{
    79                   font-size: 12px;
    80                   color: #696969;
    81                   font-weight: 500;
    82                   margin-left: 8px;
    83                   width: 68%;
    84 
    85                   .ppt_name{
    86                     .text-autocut();
    87                   }
    88                 }
    89               }
    90             }
    91           }
    92         }
    93 
    94         &.hide{
    95           display: none;
    96         }
    97       }

    js:

     1 const $timeLineUl = $('.time_line')
     2 const $timeLineItemTmpl = $('.time_line_item_tmpl').clone().removeClass('time_line_item_tmpl')
     3 
     4 // 初始化侧边栏中时间线数据
     5       for (let i = 0; i < slideInfo.length; i += 1) {
     6         const currentSlide = slideInfo[i]
     7         const $timeLineItem = $timeLineItemTmpl.clone()
     8         $timeLineItem.find('.time').text(formatTime(currentSlide.recordTime / 1000).join(':'))
     9         $timeLineItem.find('.time').css({
    10           background: `url(${triangleTimeStr}) no-repeat center`,
    11         })
    12         $timeLineItem.find('.ppt_item_img_left').attr('src', currentSlide.slideUrl)
    13         $timeLineItem.find('.ppt_name').text(currentSlide.slideName)
    14         $timeLineItem.find('.item_page_number').text(`${currentSlide.currentPageNumber}/${currentSlide.totalPageNumber}`)
    15         $timeLineUl.append($timeLineItem)
    16       }

    注意此处,需要用find()方法来查找后代元素,.children()方法是查找直接后代(儿子辈)的元素,.find()方法是查找所有后代元素(包括儿子、孙子、孙子的孙子及更多)。

  • 相关阅读:
    log4j.appender.stdout.layout.ConversionPattern
    log4j:WARN No appenders could be found for logger
    Eclipse中TODO的分类,以及自动去除
    Java泛型类型擦除导致的类型转换问题
    Java中泛型数组的使用
    Java泛型中的通配符的使用
    Java泛型类定义,与泛型方法的定义使用
    Java泛型的类型擦除
    jQuery查询性能考虑
    jQuery判断checkbox是否选中
  • 原文地址:https://www.cnblogs.com/chenbeibei520/p/10194760.html
Copyright © 2011-2022 走看看