web前端必学功法之一:用户选择爱好

web前端必学功法之一:用户选择爱好

案例实现效果:
在这里插入图片描述
首先做这个页面效果,我们要把页面布局给写好,每个网站做好页面可以解决很大的问题。

css代码,这里的页面采用Grid布局
<style>
        *{
               margin: 0;
               padding: 0;
               border: none;
        }
        li{
              list-style: none;
        }
      .container{
              margin-top: 1em;
              width: 100;
              height: 100;
              /*overflow属性规定当内容溢出元素框时,会发生的事情。auto表示如果内容被修剪,则浏览器会显示滚动条*/
              overflow: auto;
              /*网格布局*/
              /* 指定容器采用网格布局 */
              display: grid;
              /* 定义网格线的名称和网格轨道的尺寸大小 fr表示片段*/ 
              grid-template-columns: 1fr 1fr;
              /* 网格项的最大内容占据网格轨道 */
              grid-template-rows: max-content;
              /*设置行与行之间的间隙的尺寸*/
              gap: 0.5em;
      }
      .container .box{
              padding: 1em;
      }

      .box .item{
            margin-top: 1em;
            border-top: 1px solid #333;
            padding-top: 1em;
            display: grid;
             grid-template-columns: repeat(auto-fit,8em); /*第一个值表示:重复的次数,第二值表示:重复的值  auto-fit:自动适应*/
             gap: 0.5em;
      }
      .item li{
              padding: 0.5em;
              border:1px solid #00ACED;
              text-align: center;
      }
      .item li:hover{
           cursor: pointer;
           color: white;
           background-color: #00ACED;
      }


      #selected li{
            color: white;
           background-color: #00ACED;

      }
      #selected li:hover{
             color: initial;
             background-color: initial;
      }
</style>

html部分:
 <div class="container">
             <div class="box">
                   <h2>从下面选择爱好</h2>
                   <ul id="unselected" class="item">
                        <li>摄影</li>
                        <li>编程</li>
                        <li>游戏</li>
                        <li>文学</li>
                        <li>旅游</li>
                        <li>篮球</li>
                        <li>足球</li>
                   </ul>
             </div>

             <div class="box">
                   <h2>你的爱好:</h2>
                   <ul id="selected" class="item">
                        
                   </ul>
             </div>
        </div>

下面就是js部分:

<script>
        //appendChild: 向父元素中添加一个元素时,以前的位置会被删除,添加的元素会出现在新的位置
          //首先获取ul元素
          var  ulSelect = document.querySelector("#selected");
          var  ul = document.querySelector("#unselected");

          //绑定监听事件
          ul.addEventListener('click',function(ev){
                  //判断是否有子元素,防止一次多选择
                  if(ev.target.childElementCount == 0)
                  ulSelect.appendChild(ev.target)
          },false)

          ulSelect.addEventListener('click',function(ev){
              if(ev.target.childElementCount == 0) ul.appendChild(ev.target);
          },false)
  </script>
   

用户选择爱好总结:

   1.做好这个页面效果并不难,重要的把页面的布局给做好
   2.然后我们要知道appendChild()方法的属性,用那些作用
   3.appendChild: 向父元素中添加一个元素时,以前的位置会被删除,添加的元素会出现在新的位置
   4.事件的监听addEventListener(参数1,参数2,参数3),参数1:事件类型,这个事件类型不加on,参数2:回调函数;参数3:false代表事件冒泡,true代表事件捕获。
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值