zoukankan      html  css  js  c++  java
  • 用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

    jq:

    $('ul#ul li').click(function(){
      var index = $(this).index();
      $(this).addClass('a_Onclick').siblings().removeClass('a_Onclick');
    })

    主要想法:在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的属性,总体来说还不太会用。

  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/Zxq-zn/p/11372732.html
Copyright © 2011-2022 走看看