Login
芋圆社区 > 编程 > 社区各功能的实现 > 莉可丽丝 - 回到顶部按钮

莉可丽丝 - 回到顶部按钮

914
1
2022-09-13
2022-09-13
Hey、小怪兽

  • • 效果图:
  • • 首先准备2张Lycoris Recoil的图片(科学上网向作者要使用许可,非商用:锦木千束,井上泷奈)
  • • 这个回到顶部在每个页面都会用到,需要写在我Django的index.html里:
  • <!-- 回到顶部按钮 -->
    {% include 'base/backTop.html' %}
  • • backTop.html里就直接写HTML代码和JS代码:
  • // 因为我的追番页面有回到顶部按钮了,所以在追番页面会传个backTopValue参数不让以下代码执行
    {% if not backTopValue %}
        <a id="backTopBtn" class="backTopBtn" onclick="backTopFuc()">
            <img id="backTopBtnIMG" src="" alt="">
        </a>
    
        <script>
            window.onload = function(){
                let btnTop = document.getElementById("backTopBtn");
    
                // 获取当前视口的顶端数值
                function getScrollTop () {
                    let sTop ;
                    if (document.compatMode === "BackCompat") {
                        sTop = document.body.scrollTop;
                    } else {
                        sTop = document.documentElement.scrollTop === 0 ? document.body.scrollTop : document.documentElement.scrollTop;
                    }
                    return sTop;
                }
    
                // 判断是否在顶部,显示隐藏按钮,设置按钮的图片
                function changeTopBtn() {
                    let img = document.getElementById("backTopBtnIMG");
                    const backTop = getScrollTop();
                    // 生成随机数0和1
                    const random = Math.round(Math.random())
                    // 设置图片src,0是锦木千束cst,1是井上泷奈tkn
                    // 这里不判断img的src是因为Django会默认给他一个前缀地址,可以试试
                    if(img.alt === '') {
                        if(random === 0) {
                            img.src = "/static/images/cst.png";
                            img.alt = 'cst'
                        } else {
                            img.src = "/static/images/tkn.png";
                            img.alt = 'tkn'
                        }
                    }
                    // 设置显示隐藏
                    if (backTop >= 20) {
                        btnTop.style.display = "block";
                    } else {
                        btnTop.style.display = "none";
                    }
                }
    
                // 页面滚动执行方法
                window.onscroll = function(){
                    changeTopBtn();
                };
    
                // 页面加载完毕执行
                // 有的时候已经滚动到页面的中间进行刷新了,如果没有再执行的话就不会出现按钮
                changeTopBtn();
            };
        </script>
    {% endif %}
  • • 还有一个backTopFuc方法我写在外面总JS文件里的:
  • /* 回到顶部 */
    function backTopFuc() {
        document.body.scrollTop = 0;
        document.documentElement.scrollTop = 0;
    }
  • • 图片的CSS代码:
  • .backTopBtn {
        display: none;
        position: fixed;
        right: 2%;
        bottom: 2%;
        cursor: pointer;
        z-index: 999;
    }
    
    .backTopBtn img {
        width: 120px;
        height: 120px;
    }

上一篇:追番卡片IMG的Hover效果

下一篇:追番卡片在手机端难滑动的BUG

Message Board
回复
回复内容不允许为空
留言字数要大于2,小于200!
提交成功,5s后刷新页面!
编程导航

追番卡片IMG的Hover效果

莉可丽丝 - 回到顶部按钮

追番卡片在手机端难滑动的BUG

留言分页序号功能

小黑屋功能实现

上一篇和下一篇

统计图表实现(二)

统计图表实现(一)

统计博客系列访问量

银掠武器边框样式

Copyright © 2020 芋圆社区

Powered by 浙ICP备2020039309号-1

此页面不支持夜间模式!

已进入夜间模式!

已进入普通模式!

搜索框不允许为空

签到成功!经验+5!芋圆币+2!

签到失败!今日已签到!

需要登录社区账号才可以进入!

复制成功
寄,页面未加载完成或页面无锚点