CSS实现文件夹效果

5 篇文章 0 订阅
3 篇文章 0 订阅

效果图

在这里插入图片描述

编写组件

<template>
    <div class="folderContainer">
        <div class="folderWrapper">
            <div class="folder">
                <div class="front"></div>
                <div class="center"></div>
                <div class="back"></div>
            </div>
            <div class="folderName">
                <span>工作/学习</span>
            </div>
            <div class="folderTime">
                <span>2021/07/17 10:49</span>
            </div>
        </div>
    </div>
</template>

<script>
    export default {
        name: "fileCard",
    }
</script>

<style scoped>
    .folderContainer {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin-bottom: 20px;
    }

    .folder {
        width: 110px;
        height: 80px;
        perspective: 600px;
        transform-style: preserve-3d;
        cursor: pointer;
    }
    .folderWrapper{
        padding: 20px 20px 10px 20px;
        position: relative;
        transition: all .2s ease;
        border-radius: 6px;
        cursor: pointer;
    }
    .folderWrapper:hover{
        background-color: #ffffff;
    }

    .folder div.back, .folder div.front {
        position: absolute;
        top: 0;
        left: 0;
        width: 110px;
        height: 80px;
        background-color: #c5b7f1;
    }

    .folder div.center {
        width: 90px;
        height: 60px;
        background-color: #ffffff;
        position: absolute;
        top: 5px;
        left: 10px;
        z-index: 2;
        border-radius: 6px;
    }

    .folder .front {
        background-image: linear-gradient(to left, #24d5ff 0%, #1eb2ff 45%, #1890ff 100%);
        border-radius: 6px;
        z-index: 3;
        /* 若想把文件夹名字放到文件夹上面,则需要以下属性
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        font-size: 16px;
        color: rgba(0,0,0,1);
        font-weight: 500;
        line-height: 16px;
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;*/
        box-shadow: 0 1px rgba(255, 255, 255, 0.25) inset, 0 -2px 2px rgba(0, 0, 0, 0.1);
        transform: rotateX(-30deg);
        transform-origin: bottom;
        transition: all .2s ease;

    }

    .folder:hover .front {
        transform: rotateX(-40deg);
    }

    .folder .back:before {
        content: " ";
        position: absolute;
        left: 0;
        top: -10px;
        width: 40px;
        height: 10px;
        border-radius: 6px 6px 0 0;
        background-color: #1eb2ff;
    }

    .folder .back {
        background-image: linear-gradient(to top, #24d5ff 0%, #1eb2ff 45%, #1eb2ff 100%);
        border-radius: 0 6px 6px 6px;
        box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.15);
    }

    .folderName {
        margin-top: 10px;
        font-size: 14px;
        font-weight: 500;
        color: rgb(37, 48, 43);
    }

    .folderTime {
        width: 100%;
        text-align: center;
        font-size: 12px;
        line-height: 1.6;
        color: rgba(37, 48, 43, .36);
        max-width: 100%;
        overflow: hidden;
        white-space: nowrap;
        -o-text-overflow: ellipsis;
        text-overflow: ellipsis;
    }
</style>



引用组件

<template>
    <div class="files">
        <a-row :gutter="20" style="margin-top: 50px">
            <a-col v-for="i in 24" :key="i" :xl="4" :lg="4" :md="8" :sm="12" :xs="12" style="text-align: center">
                <file-card/>
            </a-col>
        </a-row>
    </div>
</template>

<script>
    export default {
        name: "files",
        components:{
            FileCard:()=>import('@/components/file/FileCard')
        },
        data(){
            return {

            }
        },
        methods:{

        },
        mounted() {

        }
    }
</script>

<style scoped>

</style>


  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JQuery 是一个轻量级的 JavaScript 库,可以使用它来实现多层级文件夹效果。 一种常见的实现方式是,使用 JQuery 的 hide() 和 show() 方法来控制文件夹的显示和隐藏。可以在文件夹的标题上添加一个点击事件,点击时显示或隐藏该文件夹下的所有子文件夹。 另外,也可以使用 JQuery 的 slideToggle() 方法来实现文件夹的折叠和展开效果。 需要注意的是, JQuery在中国国内访问速度可能较慢,可以使用国内镜像(如:http://libs.baidu.com/jquery/)或使用其他前端框架来实现同样的效果. ### 回答2: JQuery是一种流行的JavaScript库,被广泛用于前端开发。如果要实现多层级文件夹效果,可以通过JQuery的选择器和事件处理函数来操作DOM元素,实现文件夹的展开和折叠。 首先,可以为每个文件夹元素添加一个类名,用于统一选择这些元素。例如,可以为所有文件夹元素添加一个"folder"类。 然后,可以使用JQuery的事件处理函数来监听文件夹元素的点击事件。当某个文件夹被点击时,可以根据其当前的展开状态来切换展开和折叠的效果。 具体操作可以使用JQuery的toggleClass()方法来切换文件夹元素的展开状态。例如,可以为点击事件绑定一个函数,该函数内部使用toggleClass("open")来切换文件夹的展开和折叠状态。 除了展开和折叠的效果,还可以根据需要使用JQuery的其他功能来实现文件夹的拖拽、排序、重命名等功能。 总之,使用JQuery实现多层级文件夹可以轻松实现文件夹的展开和折叠效果,以及其他各种文件夹操作功能。通过合理运用JQuery的选择器和事件处理函数,可以使得用户在操作文件夹时更加方便和高效。 ### 回答3: JQuery是一个广泛使用的JavaScript库,它提供了许多便捷的方法和函数来操作DOM元素、处理事件、执行动画等。如果想要实现多层级文件夹的功能,可以使用JQuery来动态生成和管理文件夹结构。 首先,可以创建一个HTML结构,用来展示多层级文件夹的布局。可以使用ul和li标签来创建一个树状结构,其中每一个li代表一个文件夹。可以使用CSS样式来美化文件夹的展示效果。 接下来,可以使用JQuery的事件和方法来实现文件夹的交互功能。可以给文件夹添加点击事件,当文件夹被点击时,可以展开或者收起文件夹的子文件夹。可以使用JQuery的addClass和removeClass方法来动态改变文件夹样式实现展开和收起的效果。 同时,可以使用JQuery的ajax方法来实现文件夹内容的动态加载。可以在文件夹被点击时,发起一个ajax请求,获取该文件夹下的子文件夹或者文件的数据。可以根据返回的数据,动态生成子文件夹HTML结构,并添加到对应文件夹的子文件夹列表中。 另外,可以使用JQuery的事件委托机制来优化多层级文件夹的性能。可以给整个文件夹目录的父元素绑定点击事件,然后通过事件委托的方式来处理点击事件。通过这种方式,可以避免给每一个文件夹都绑定点击事件,提高交互效率。 综上所述,通过使用JQuery的事件、方法和ajax技术,可以实现多层级文件夹的功能。这些方法可以帮助我们动态生成文件夹结构、展开和收起文件夹以及加载文件夹内容,使得多层级文件夹的交互更加便捷、高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值