鼠标动画---充电插头效果


前言

效果展示,本人不会弄gif,在晚上下载的转gif的都是有水印,还不如不用。有推荐的,说一下,蟹蟹啦


展示效果:在这里插入图片描述在这里插入图片描述

一、html

 <section class="p2">
        <img src="3.png" width="100%"/>
        <span class="t2">hello</span>
    </section> 
    <section class="d2_w">
        <diiv class="d2">
            <p><img src="./1.png" class="img1"/></p>
            <div class="m2">简单容易操作</div>
            <div class="m2_1">接入PC端USB接口即可使用(USB2.0以上)</div>
            <img class="m2_2" src="4.png" alt="" />
            <p><img src="./2.png" class="img2"/></p> 
        </section>
    </section>
    <section style="height: 1000px;background: pink;">
        <span class="t2">hello</span>
    </section> 

二、css

 body{
            background: #010c26;
        }
       .d2_w{
            height: 600vh;
       }
        .d2{
            position: sticky;
            top: 0;
            height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
        }
        .m2{
            opacity: 0;
            width: 100%;
            text-align: center;
            font-size: 30px;
            color: #fff;
            margin: 20px 0;
            transition: linear 0.3s;
        }
        p{
            text-align: center;
        }
        .m2_1{
            margin-top: -4rem;
            background: #010c26;
            z-index: 9;
        }
        .m2_1,.m2_2{
            opacity: 0;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            color: #ffff;
            font-size: 45px;
        }
        .img1{
            position: absolute;
            transition: linear 0.2s;
            opacity: 0;
            left: 50%;
            transform: translate(-50%,0);
        }
        .img2{
            position: absolute;
            left: 50%;
            transform: translate(-50%,0);
            transition: linear 0.2s;
            opacity: 0;
        }

三、JavaScript

代码如下(示例):

 let m2 = document.querySelector(".m2");
 let img1 = document.querySelector(".img1");
let img2 = document.querySelector(".img2");
let m2_1 = document.querySelector(".m2_1");
let m2_2 = document.querySelector(".m2_2");
 const html = document.documentElement
// let p2h = p2.clientHeight;

 document.addEventListener('scroll', (e) => {
   let scrolled = html.scrollTop / (html.scrollHeight - html.clientHeight)

if(scrolled<0.17){
    img1.style.opacity = 0;
    img2.style.opacity = 0;
}
 else if (0.6>scrolled > 0.17) {
    m2.style.opacity = (scrolled - 0.1) / 0.1;
    img1.style.opacity = 1;
    img2.style.opacity = 1;
    img1.style.top = scrolled * 50 - 30 + '%';
    img2.style.bottom = scrolled * 50 - 30 + '%';
    m2_1.style.opacity = 0;
    m2_2.style.opacity = 0;
  }else {
    console.log(scrolled)
    img1.style.opacity = 0;
    img2.style.opacity = 0;
    m2.style.opacity = 0;
    m2_1.style.opacity = 1;
    m2_2.style.opacity =1;
   }
 })

总结

效果出来了,写的很随意,你们可以自己优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值