当前位置: 首页 > article >正文

CSS笔记(三)卡片选择

此处我们想实现的就是鼠标悬停在某张卡片上,该卡片就会放大,有一种卡片上浮的感觉。

预知识

变形transform

https://www.jyshare.com/codedemo/3391/这个网站包含了常见的所有变形
常见参数:

  • translate:平移
  • scale:放缩
  • rotate:旋转
  • skew:倾斜旋转

过度动画transition

常见参数:

  • 需要过渡的属性名称
  • 效果持续时间
  • 过度曲线
  • 过渡延迟

类列表classList

常见参数:

  • add:添加类名,可以同时添加多个
  • contains:判断类名是否存在
  • item:返回对应索引的类名
  • remove:删除类名,可同时删除多个
  • toggle:删除或添加类名,如果该元素存在该类名则删除,如果没有该类名则添加。一个字形容:贱!

鼠标事件

鼠标使用

  • click
  • dbclick
  • mousedown
  • mouseup
  • mousemove
  • moveout
  • moveenter:不冒泡
  • moveleave:不冒泡

鼠标事件对象

  • event.type
  • event.target
  • event.clientX:针对窗口
  • event.clientY
  • event.pageX:针对页面
  • event.pageY
  • event.button

冒泡:存在于父元素和子元素之中,有点像链式反应,触发子元素的事件时会导致父元素事件的触发。

捕获:与冒泡相反,从父元素传播到子元素

代码

<!DOCTYPE html>
<html>
    <head>
        <style>
            /*设置画布*/
            body{
                /* 方便排列与对齐*/
                display: flex; 
                /*画布布满整个窗口*/
                height: 100vh;
                /*水平居中*/
                justify-content: center;

                /*垂直居中*/
                align-items: center;
                /* 设置比较暗的背景色*/
                background-color: rgba(47,48,49,0.9);
                margin: 0;
            }
            /*设置活动区域*/
            .container{
                display: flex;
                justify-content: center;
                align-items: center;
                /*给子元素提供相对描点*/
                position: relative;
                width: 500px;
                height: 500px;
            }
            .card{
                
                /*表示该元素会以相对锚点改变位置*/
                position: absolute;
                width: 150px;
                height: 200px;
                display: flex;
                justify-content: center;
                align-items: center;
                font-size: 30px;
                font-weight: bold;
                background-color: #00ff44;
                transform: scale(1.0);
                /*设置阴影,切记参数之间不要有逗号*/
                box-shadow: 0px 8px 8px rgba(0,0,0,0.8);
                /*控制放缩的时间 如果没有这句放缩就会很僵硬*/
                transition: transform 0.5s;
            }
            .card1{
                left: 0;
                top:0;
            }
            .card2{
                left:300;
                top:100p;
            }
            /*利用多类名来实现放缩*/
            .select{
                transform: scale(1.2);
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="card card1" id="card1">Card1</div>
            <div class="card card2 ">Card2</div>
        </div>
    </body>
    <script>
        const card1 = document.getElementById("card1")
        card1.addEventListener("mouseenter",()=>{
            card1.classList.toggle("select")
        })
        card1.addEventListener("mouseleave",()=>{
            card1.classList.toggle("select")
        })
    </script>
</html>

效果请添加图片描述


http://www.kler.cn/a/413350.html

相关文章:

  • Linux自动化构建-make/Makefile
  • Python编程语言中的优雅艺术:数值分隔符的巧妙运用
  • 【系统架构设计师】高分论文:论软件架构的生命周期
  • 情绪识别项目
  • JavaEE---计算机是如何工作的?
  • 【2022-数学二】历年真题-2022年-简答题(17-20)
  • 简易记事本前端开发(初步)
  • 分布式系统RPC原理面试题及参考答案
  • 解决stuid项目类爆炸问题
  • 矩阵/矩阵乘法/特征值/特征向量的讲解
  • Docker 启动和停止的精准掌舵:操控指南
  • 学习JavaEE的日子 Day09 一维数组
  • 全景图像(Panorama Image)向透视图像(Perspective Image)的跨视图转化(Cross-view)
  • Paddle Inference部署推理(七)
  • QT 中 SQLite 使用方法
  • 第二节——计算机网络(四)物理层
  • Docker 容器隔离的关键技术:Namespace
  • PAT甲级 1056 Mice and Rice(25)
  • vue2 - 20.json-server
  • 优化DevOps环境中的容器化交付流程:实践指南
  • SpringBoot+Vue3+Element Plus实现图片上传和预览
  • k8s运行运行pod报错超出文件描述符表限制
  • BERT简单理解;双向编码器优势
  • Leetcode 131 Palindrome Partition
  • 使用 exe4j 将 Spring Boot 项目打包为 EXE 可执行文件
  • 前端面试笔试(六)