index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <section>
        <div class="skew1">
            <h2 class ="layer"> 憨憨憨憨憨程序员学的前端例子~ </h2>
        </div>
        <div class = "textBox">
            <div class="skew2">
                <div class ="layer" >
                    <h2>
                        憨憨憨憨憨程序员学的前端例子~
                    </h2>
                </div>
            </div>

        </div>
    </section>


<script>
    // 监听鼠标移动事件,当鼠标在页面上移动时,触发 parallax 函数
    document.addEventListener('mousemove', parallax);
    
    // 定义一个名为 parallax 的函数,用于处理视差效果
    function parallax(e) {
        // 使用 querySelectorAll 选择页面中所有 class 为 .layer 的元素
        document.querySelectorAll('.layer').forEach(layer => {
            // 计算水平位移的值
            // e.pageX 是鼠标相对于页面左上角的水平位置
            // window.innerWidth 是窗口的宽度
            // 公式 (window.innerWidth - e.pageX * 2) / 2 用于计算视差效果的水平位移
            let x = (window.innerWidth - e.pageX * 2) / 2;
            
            // 将计算得到的位移值应用到元素的 transform 属性上,产生水平移动的效果
            layer.style.transform = `translateX(${x}px)`;
        });
    }
</script>
    
</body>
</html>

style.css

@import url('https://fonts.googleapis.com/css?family=Poppins:200,300,400,500,600,700,700,900&display=swap');
*
{
 margin:0;
 padding: 0;
 box-sizing: border-box;
 font-family: 'Poppins',sans-serif;
}

section
{
position: relative;
width: 100%;
height: 100vh;
background: #222;
overflow: hidden;
}

section .textBox
{
    position:absolute;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    background: #333;
    clip-path: polygon(0 0,50% 0,50% 100%,0% 100%);

}

section h2,
section .textBox h2{
    position: absolute;
    width: 100%;
    text-align: center;
    font-size: 12em;
    line-height: 1em;
    color: #0488f5;
    -webkit-text-stroke: 0px #0876cf;
    cursor: pointer;

}

section h2
{
    -webkit-text-stroke: 2px #0876cf;
    color: transparent;

}

.skew1
{
    position: relative;
    top: 50px;
    transform:skewY(20deg);

}
.skew2
{
    position: relative;
    top: 50px;
    transform:skewY(-20deg);

}

clip-path: polygon(0 0, 50% 0, 50% 100%, 0% 100%); 使用多边形剪切路径创建一个从左上角到右下角的斜切形状。

-webkit-text-stroke: 0px #0876cf; 为文本添加蓝色边框(0像素宽度),使其变成透明文本并有边框效果。

cursor: pointer; 将鼠标悬停时的光标设置为指针,表示该元素可点击。

color: transparent; 将文本颜色设置为透明,使文本本身不可见,仅显示边框效果。

transform: skewY(20deg); 和 transform: skewY(-20deg); 分别使元素在Y轴方向上倾斜20度和-20度,产生斜切效果。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部