效果展示:

分析步骤:
-  
静态结构动态渲染
-  
背景样式:背景样式可以设置图片居中显示
 
 -  
 -  
鼠标移入:当前图片的宽度变大,其它的图片的宽度变小
 -  
鼠标移出:所有图片的宽度还原为原始值
 
html代码:
 <div id="box">
      <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
    </div> 
css代码:
<style>
      * {
        margin: 0;
        padding: 0;
      }
      ul {
        list-style: none;
        width: 1300px;
      }
      #box {
        width: 1200px;
        height: 400px;
        border: 2px solid red;
        margin: 100px auto;
      }
      #box li {
        width: 240px;
        height: 400px;
        /* border: 1px solid #000; */
        float: left;
        transition: all 1s;
      }
    </style> 
JS代码:
完善结构
let lis = document.querySelectorAll('li')
// 1.为所有li元素设置不同的背景图片
lis.forEach(function(ele, index) {
    ele.style.backgroundImage = `url("./images/${index + 1}.jpg")`
    // 设置样式,让图片水平居中显示-- 方便
    ele.style.backgroundPosition = 'center'
}) 
功能实现
let lis = document.querySelectorAll('li')
// 1.为所有li元素设置不同的背景图片
lis.forEach(function(ele, index) {
    ele.style.backgroundImage = `url("./images/${index + 1}.jpg")`
    // 设置样式,让图片水平居中显示-- 方便
    ele.style.backgroundPosition = 'center'
    // - 鼠标移入:当前图片的宽度变大,其它的图片的宽度变小
    ele.addEventListener('mouseenter', function() {
        // 让其它图片的宽度变为100
        lis.forEach(function(el, index) {
            el.style.width = 100 + 'px'
        })
        // 让当前图片的宽度变为800
        ele.style.width = 800 + 'px'
    })
    // - 鼠标移出:所有图片的宽度还原为原始值
    ele.addEventListener('mouseleave', function() {
        lis.forEach(function(el, index) {
            el.style.width = 240 + 'px'
        })
    })
}) 
这个代码有个bug
移到快的话右边会有空白部分出来

这里也可以用flex方法实现功能
flex不会有那个bug
 <script>
      let lis=document.querySelectorAll(`li`)
      // 为所有li设置不同的背景图片
      lis.forEach(function(ele,index){
        ele.style.backgroundImage=`url(./images/${index+1}.jpg)`
        // 让背景图片居中
        ele.style.backgroundPosition= `center`
        // ele.style.transition=`1s`
        ele.addEventListener(`mouseenter`,function(){
         ele.style.flex=5
            })
            ele.addEventListener(`mouseleave`,function(){
               ele.style.flex = 1
            })
      })
    </script>









