jQuery一些练习

123 阅读1分钟

一、星级评分效果

	//如何添加默认样式?循环添加空白的星星效果。对于其中默认的已选星星效果,需进行判断之后在添加特殊样式
	let count=11;
    let score=5;
    for (let i = 0; i < count; i++) {//循环添加样式
        let star=$('<i/>').addClass('iconfont star')
        //定义变量star 为li标签且添加iconfont star的样式
        if(i<score){
            star.addClass("icon-start-copy")
        }else{
            star.addClass('icon-star1')
        }
        $('.container').append(star)//将生成的star添加进container
    }
    //鼠标移入时是什么效果?移出又是什么效果?鼠标移入后,星级会暂时显示 鼠标移出后恢复原来样子
      $('.star').mouseenter(function (){//鼠标移入添加样式
        let index=$(this).index();
        for(let i=0;i<count;i++){
            let star=$('.star').eq(i)
            if(i<=index){
                star.addClass('icon-start-copy').removeClass('icon-star1')
            }else{
                star.removeClass('icon-start-copy').addClass('icon-star1')
            }
        }
    })
      $('.star').mouseleave(function (){//鼠标移出恢复原来样式
       for (let i = 0; i < count; i++) {
          let star=$('.star').eq(i);
          if(i<score){
            star.addClass('icon-start-copy').removeClass('icon-star1')
          }else{
              star.addClass('icon-star1').removeClass('icon-start-copy')
          }  
       }
    })
    //鼠标点击时是什么效果?点击时 星级被选上 移出后 选择的星级不会消失
     $('.star').click(function (){//鼠标点击当前星级 添加样式
        score=$(this).index()+1;
    })
  

二、QQ分组效果

    //QQ分组什么效果?点击对应分组后 展开对应联系人 并且右箭头图标变化为下箭头
    $('.menu .title').click(function(){//鼠标点击对应分组
    $(this).find('i').toggleClass('icon-arrow-right').toggleClass('icon-arrow')
    //运用toggleClass() 对于对应的图标 进行变化
    let list=$(this).next()
    list.toggle();
    //运用toggle() 进行列表展开和隐藏
  })