阅读 1090

HTML 浮窗代码

MedusaSorcerer的博客


最近在设计并撰写自己定义的第一个小项目, 其中在开发中需要使用到一个漂浮窗口的功能, 使用 javascript 撰写的, 先上一下我写好的成品样子:

这个浮窗是在右下角作为其他功能的, 分别是:回到顶部、GitHub 入口、掘金入口三个功能, 所以我把它写在 .js 里面作为界面加载完成后生成这个样式。

代码实现

window.onload = function () {
    let medusa = document.createElement('div');
    medusa.setAttribute('class', 'medusa');
    let base_url = CheckImgExists('static/Github.png') ? 'static/' : '../static/';
    medusa.innerHTML = '' +
        '<div><a onclick="goTop()" title="Top"><img class="pass" src="' + base_url + 'Top.png"></a></div>' +
        '<div><a href="https://www.github.com/MedusaSorcerer/" title="Github" target="_blank"><img class="pass" src="' + base_url + 'Github.png"></a></div>' +
        '<div><a href="https://juejin.im/user/2805609406139950" title="掘金" target="_blank"><img class="pass" src="' + base_url + 'Juejin.png"></a></div>';
    document.body.appendChild(medusa);
}

function CheckImgExists(url) {
    let ImgObj = new Image();
    ImgObj.src = url;
    return ImgObj.width > 0;
}

function goTop() {
    let scrollToTop = setInterval(function () {
        let pos = window.pageYOffset;
        if (pos > 0) {
            window.scrollTo(0, pos - 20);
        } else {
            window.clearInterval(scrollToTop);
        }
    }, 10);
}
复制代码

第一部分是在界面加载完成后执行 HTML 代码插入, 当然, 你需要替换其中的图片路径以及 A 标签 HREF 路径作为你自己的值, 第二部分是因为我在使用图片路径时遇到的解析问题, 所以第二个函数部分是判断图片路径是否存在, 否则使用 ../ 的方式追加到父级目录上, 第三部分则是使用回到顶部的按钮后缓和的回到顶部的代码, 而不是直接回到顶部, 做了一个动画效果。

下面是需要用到的 CSS 样式代码块。

.medusa {
    position: fixed;
    right: 1%;
    bottom: 5%;
    width: 50px;
    border: 1px solid #cdcccc;
    background-color: white;
    font-size: 20px;
    z-index: 1040;
    -webkit-backface-visibility: hidden;
}

.medusa > div > a > img {
    width: 30px;
    height: 30px;
}

.medusa > div {
    margin: 5px 0 5px 9px;
}

.medusa > div > a {
    padding: 0 0 7px 0;
}

.medusa > div > a:hover {
    border-top: 2px solid #00a8e8;
    border-bottom: 2px solid #e80000;
}
复制代码

图片资源






长时间没有更新了,加油~