javascript - 纯CSS可否实现如下表格的阴影效果?

查看:77
本文介绍了javascript - 纯CSS可否实现如下表格的阴影效果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

只用CSS能否实现点了多行的checkbox,则只有最后一行显示阴影,如果点了一行则只显示那一行的阴影?

如果没法实现JS应该怎么做?

解决方案

<!doctype html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        table, td { border: 1px solid #000; }
        tr { cursor: pointer; }
        tr.active { color: #f00; }
        tr.shadow {
            background-color: #fff;
            box-shadow: 10px 10px 10px rgba(0, 0, 0, .3);
        }
    </style>
</head>
<body>
<table>
    <tr>
        <td>aa</td>
        <td>11</td>
    </tr>
    <tr>
        <td>bb</td>
        <td>22</td>
    </tr>
    <tr>
        <td>cc</td>
        <td>33</td>
    </tr>
    <tr>
        <td>dd</td>
        <td>44</td>
    </tr>
    <tr>
        <td>ee</td>
        <td>55</td>
    </tr>
    <tr>
        <td>ff</td>
        <td>66</td>
    </tr>
    <tr>
        <td>gg</td>
        <td>77</td>
    </tr>
</table>
<script>
    var tr = document.querySelectorAll('tr');
    for (var i = 0, len = tr.length; i < len; i++) {
        tr[i].index = i;
        tr[i].maxLength = tr.length - 1;
        tr[i].addEventListener('click', function () {
            if (this.classList.contains('active')) {
                this.classList.remove('active', 'shadow');
                if (this.previousElementSibling && this.previousElementSibling.classList.contains('active')) {
                    this.previousElementSibling.classList.add('shadow');
                }
            } else {
                this.classList.add('active');
                if (this.index === this.maxLength || !this.nextElementSibling.classList.contains('active')) {
                    this.classList.add('shadow');
                }
                if (this.previousElementSibling && this.previousElementSibling.classList.contains('active')) {
                    this.previousElementSibling.classList.remove('shadow');
                }
            }
        });
    }
</script>
</body>
</html>

这篇关于javascript - 纯CSS可否实现如下表格的阴影效果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆