微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当您滚动到页面底部时,我希望徽标旋转一圈怎么样?

如何解决当您滚动到页面底部时,我希望徽标旋转一圈怎么样?

我当前的代码使我的徽标在滚动时旋转,但不止一个完整旋转。如何使其在整个页面滚动中仅旋转一次?

P.S。显然,页面高度会有所不同; 10000px仅用于演示目的。另外,我将window.pageYOffset除以10,以稍微降低旋转速度。

var logo = document.getElementById("logo");
window.addEventListener("scroll",function() {
    logo.style.transform = "rotate("+window.pageYOffset/10+"deg)";
});
.main {
    height:10000px;
}

#logo {
    position:fixed;
}
<div class="main">
    <div id="logo">
        <img src="https://files.cargocollective.com/c100310/test.svg" alt>
    </div>
</div>

解决方法

使用360 * window.pageYOffset / (document.documentElement.scrollHeight - document.documentElement.clientHeight)计算角度

var logo = document.getElementById("logo");
window.addEventListener("scroll",function() {
    logo.style.transform = "rotate("+(360 * window.pageYOffset / (document.documentElement.scrollHeight - document.documentElement.clientHeight))+"deg)";
});
.main {
    height:10000px;
}

#logo {
    position:fixed;
    transition: transform 1s;
}
<div class="main">
    <div id="logo">
        <img src="https://files.cargocollective.com/c100310/test.svg" alt>
    </div>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。