英雄联盟轮播图手动轮播

感谢大朋友们小朋友们的催更,这个月都在努力复习功课,无异于对待期末考试。
通过前一个个小案例越做越熟悉,代码越来越简洁,整体架构越来越规范
一步一步循序渐进,今天写一个英雄联盟轮播图手动轮播练练手。

清除网页的默认距离

  /* 清除网页的默认距离*/
  *{
    
    margin:0;
    padding:0;
  }
  .banner{
    
    
    width: 820px;
    height: 380px;
    background-color:blue;
  }
  .banner_img ul{
    
    
    width: 4100px;

过渡动画

    /* 过渡动画 */
   transition:all 0.2s;
  }

图片大小长度,宽度,颜色,边距

  .banner_img{
    
    
    width: 820px;
    height: 340px;
    background-color:red; 
    overflow:hidden;  
  }
 .banner_img li{
    
    
    width: 820px;
    height: 380px;
    float:left;

清除li前面的列表符号

    list-style:none
  }
  .banner_nav{
    
    
    width: 820px;
    height: 40px;
    background-color:green;
  }

后代选择器,先找容器,再找内部标签

  .banner_nav li{
    
    
    width: 164px;
    height: 40px;

/* 由于li在网页中属于块元素,独立成行 /
/
浮动属性,让原本上下排列的li,并排 */

float:left;

清除li前面的列表符号

  list-style:none;
/* 字号是:14px; */
font-size: 14px;
/* 文本的水平居中 */
text-align:center;
/* 文本垂直居中 单行文本垂直居中,当行高等于当前容器的高度时内部文字垂直居中 */
line-height: 40px;

设置背景颜色

    background-color:#e3e2e2;
  }
  .banner_nav .active{
    
    
    background-color:white;
    color:#ab8e66;

边框会增加元素的实际占位

border-bottom: 2px solid #cea861;
height: 38px;
}

body部分代码

//创建一个div标签,用于编写整个轮播图结构,命令.banner
  <div class="banner">

 <!-- 根导航据banner中内容,划分成img区域,以及导航区域,区域div -->
 <div class="banner_img">
 <!-- banner_img轮播图的显示窗口,只显示一张图片   -->
 <!-- 滚动式轮播图,将图片并排显示   -->
 <!-- 并列结构,无序联表ul>li -->
 <!-- 需要给容器ul添加宽度,可以盛放五个元素并排显示 -->
   <ul id="imgWrap">
     <li>
       <img src="https://ossweb-img.qq.com/upload/adw/image/977/20220513/1880117fcca33efc8c78ca9710544c12.jpeg"alt="">
     </li>
    <li>
      <img src="https://ossweb-img.qq.com/upload/adw/image/977/20220513/251c4edc9aba721754a63c291a04f826.jpeg"alt="">
    </li>
    <li>
      <img src="https://ossweb-img.qq.com/upload/adw/image/977/20220513/5fa9fbc22102906860ed52cb134cf17b.jpeg"alt="">
    </li>
    <li>
      <img src="https://ossweb-img.qq.com/upload/adw/image/977/20220513/1850af58906b7be093c3f0fee9177d71.jpeg"alt="">
    </li>
    <li>
      <img src="https://ossweb-img.qq.com/upload/adw/image/977/20220513/4dfbd939f2401ca8095cc7c679355618.jpeg"alt="">
    </li>
 </ul>
 
 </div> 
 <div class="banner_nav">
 <!-- 网页还原过程中,如果需要编写对应的并列结构,直接使用无序列表进行开发ul>li -->
        <ul id="navWrap">
            <li class="active"id="li1">EDG冠军战队皮肤</li>
            <li id=li2>EDG冠军荣耀宝箱</li>
            <li id=li3>西部魔影2022</li>
            <li id=li4>西部魔影通行证</li>
            <li id=li5>2022西部秘宝</li>
          </ul>
      </div>
   </div>
   <script>

找到对应的事件源:找到五个li标签放入数组中
不推荐document.getElementById(“li”)找li标签

  var navWrap=document.getElementById("navWrap")//先找事件源的容器
  var lis=navWrap.getElementsByTagName("li")//找到navWrap下方所有的li
  var imgWrap=document.getElementById("imgWrap")

利用循环分发指定的事件

   for(var n=0;n<lis.length;n++){
    
    
    lis[n].index=n//分发索引值
    lis[n].onmouseenter=function(){
    
    
     // console.log(1)
   //清楚其他的选中样式  排他法
   //先将所有的li的class都清除
  for(var j=0;j<lis.length;j++){
    
    
       lis[j].className=""
     }
     this.className="active"

让指定ul 移动到对应位置 当前元素的索引值 *820
// console.log(this.index)

   imgWrap.style.marginLeft=-820*this.index+"px"
}
  } 

英雄联盟轮播图逻辑

在这里插入图片描述
在这里插入图片描述

原来script部分代码的大约用90多行甚至更多,
这次所需代码不超过15行,
工程量足足减少一半,大大提高了效率,减小了工作量。

英雄联盟轮播图

猜你喜欢

转载自blog.csdn.net/qq_62259825/article/details/125378790