• 原生JS实现‘点击元素切换背景及字体等’


    通过原生JS,实现点击某元素,使得背景颜色和文本样式及颜色的改变。

    1、HTML部分

    <body>
        <div class="top">
            <span onclick="colChange()" id='span1'>
               <section class="s11">
                    <p class="sp111">TOP 6</p>
                    <p class="sp112">品牌人气榜</p>
               </section>     
               <section class="s12">
                    <div id='t1' class="sd12"></div>
               </section>       
            </span>
    
            <span onclick="colChange()" id='span2'>
                <section class="s21">
                    <p class="sp211">TOP10</p>
                    <p class="sp212">高校贡献榜</p>
                </section>     
                <section class="s22">
                    <div id='t2' class="sd22"></div>
                </section>
            </span>
        </div>
    </body>

    2、CSS部分

    <style>
            .top{
                display: flex;
                position: absolute;
                left: 50%;
                transform: translateX(-50%); 
            }
            span{
                width: 12.28rem;
                height: 3.57rem;
                border-radius: 75px;
                margin-top: 1.03rem;
            }
    
            span:first-child{
                margin-left: 0.86rem;
                background: #FEDC53;
            }
            span:last-child{
                margin-left: 0.48rem;
                background: #B80027;
            }
            /* 第一个top */
            .s11, .s21{
                overflow: scroll;
                white-space: nowrap;
                width: 8.72rem;
                height: 3.57rem;
                float: left;
            }
    
            .sp111, .sp211{
                height: 1.04rem;
                font-family: 'DIN-Bold';
                font-weight: bold;
                color: #C41B28;
                font-size: 1.42rem;
                margin-left: 3.54rem;
            }
    
            .s12, .s22{
                width: 3.56rem;
                height: 3.57rem;
                float: left;
                position: relative;
            }
    
            .sd12, .sd22{
                width: 0.95rem;
                height: 0.95rem;
                background-image: url('../images/section/top1.png');
                background-size: 100% 100%;
                margin-top: 1.30rem;
                border-radius: 20px; 
                position: absolute;
            } 
    
            .sd22{
                background-image: url('../images/section/top2.png');
                background-size: 100% 100%;
            }
    
            /* 第二个TOP颜色整改 */
            .sp211, .sp212{
                color:#FF9BAA;
            }
    
            .sp22{
                position: relative;
                margin-top: 0.3rem;
                border: 0.47rem solid;
                border-color: #B80027 transparent transparent;
            } 
    
        </style>

    3、Javascript部分

      主要是利用className进行的样式切换

    <script>
        //颜色切换
        let colChange = ()=>{
            let d1 = document.getElementById('t1');
            console.log(d1.className);
            if(d1.className === 'sd12'){
                d1.className = 'sd22';
                let s1 = document.getElementById('span1');
                s1.style.background= '#B80027'; 
                s1.getElementsByTagName('section')[0].children[0].className = 'sp211';
                s1.getElementsByTagName('section')[0].children[1].className = 'sp212';
            }else if(d1.className === 'sd22'){
                d1.className = 'sd12';
                let s1 = document.getElementById('span1');
                s1.style.background= '#FEDC53'; 
                s1.getElementsByTagName('section')[0].children[0].className = 'sp111';
                s1.getElementsByTagName('section')[0].children[1].className = 'sp112';
            }
    
            let d2 = document.getElementById('t2');
            if(d2.className === 'sd22'){
                d2.className = 'sd12';
                let s1 = document.getElementById('span2');
                s1.style.background= '#FEDC53'; 
                s1.getElementsByTagName('section')[0].children[0].className = 'sp111';
                s1.getElementsByTagName('section')[0].children[1].className = 'sp112';
            }else if(d2.className === 'sd12'){
                d2.className = 'sd22';
                let s1 = document.getElementById('span2');
                s1.style.background= '#B80027'; 
                s1.getElementsByTagName('section')[0].children[0].className = 'sp211';
                s1.getElementsByTagName('section')[0].children[1].className = 'sp212';
            }
        }
    </script>

     4、效果图如下

  • 相关阅读:
    python全栈开发从入门到放弃之socket并发编程之协程
    python全栈开发从入门到放弃之socket并发编程多线程GIL
    python全栈开发从入门到放弃之socket并发编程多线程
    python全栈开发从入门到放弃之socket并发编程多进程
    python全栈开发从入门到放弃之socket网络编程基础
    python全栈开发从入门到放弃之异常处理
    python全栈开发从入门到放弃之面向对象反射
    python全栈开发从入门到放弃之面向对象的三大特性
    转:经典ACM算法
    反射在Java Swing中的应用
  • 原文地址:https://www.cnblogs.com/zx0423/p/13393609.html
Copyright © 2020-2023  润新知