用css和js实现侧边菜单栏点击和鼠标滑动特效

1点击效果:

2关键代码:

css:

#div{
  display:inline-block;
  width:100px;
  height:150px;
  border-radius: 5px;
  blackground-color:#fdfcf8;
}
#ul{
  list-style: none;
  padding:0px;
  margin:0px;
}
#ul li{
  display:block;
  height:30px;
  text-align:center;
}
#ul li a{
  display:block;
  text-decoration: none;
  text-align: center;
  color:black;
}
#ul li a:visited,#ul li a:hover{
  background-color:darkgray;
}
.a_Onclick{
  border-left-style: solid;
  border-left-color:red;
  border-left-width:5px;
}

js:

var a = document.getElementsByTagName("a");
for(let i=0;i<a.length;i++){
  a[i].onclick=function(){
    for(let j=0;j<a.length;j++){
      if(i==j){
        a[i].className="a_Onclick";
      }else{
        a[j].className="";
      }
    }
    }
  }
View js

 主要想法:在css中设定一个链接被点击效果的css样式,在用js监听,当有一个链接被点击时,该链接css样式改变,同时其兄弟节点的css样式也随之改变。

 3鼠标滑动造成底部线条滑动特效:

transform:scaleX(x);线条缩放(通过x轴)的效果,x为0时显示,x为1时隐藏;
再用:before和:after两个伪类来定义鼠标滑动的状态;
transition:过渡的属性
html:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>侧边栏效果</title>
  <link rel="stylesheet" href="../css/nav.css">
</head>
<body>
  <div id="div">
    <ul id="ul">
      <li>第一条</li>
      <li>第二条</li>
      <li>第三条</li>
      <li>第四条</li>
      <li>第五条</li>
    </ul>
  </div>
</body>
</html>
View Code
 css:
#div{
width:200px;
margin:0 auto;
}
#ul{
    list-style: none;
    width:200px;
}
#ul li{
    position:relative;
  display:block;
  height:50px;
    text-align:center;
    line-height:50px;
    cursor:pointer;
}
#ul li::before{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:200px;
    height:2px;
    background:#FFE300;
    transition:transform .5s;
    transform:scaleX(0);
    transform-origin:100% 0;//改变线条运动方向
}
#ul li:hover::before{
    transform:scaleX(1);
    transform-origin:0 0;
}
View Code

总结:查了百度,学到了这几个css3的属性,总体来说还不太会用。

转载于:https://www.cnblogs.com/Zxq-zn/p/11372732.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值