当前位置:首页 > 技术 > 正文内容

基于博客园awescnb插件的Geek皮肤公众号卡片实现方案

访客 技术 2026年6月1日 1

功能实现

当前博客园awescnb插件与Geek皮肤未提供公众号二维码展示功能,本文通过自定义DOM注入方式实现动态公众号卡片交互效果。

视觉效果

  • 公众号卡片示意图:卡片布局
  • 动态交互演示:翻转动画
  • 首页展示图:首页布局

实现方案

通过DOM操作在日历组件前插入自定义卡片元素:


// 创建微信公众号交互卡片
function insertWechatCard() {
    const cardContainer = document.createElement('div');
    cardContainer.innerHTML = `
        <div class="custom-card wechat-card" id="wechat-card">
            <div class="flip-wrapper">
                <div class="flip-content">
                    <div class="card-face"></div>
                    <div class="card-back"></div>
                </div>
            </div>
        </div>`;
    document.getElementById("blog-calendar").insertBefore(cardContainer, document.getElementById("blog-calendar").firstChild);
}
insertWechatCard();

样式配置需在页面定制CSS中添加:


/* 卡片基础样式 */
.custom-card {
    background: #57bd6a;
    border-radius: 12px;
    box-shadow: 0 8px 16px -4px #2c2d300c;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 110px;
    margin: 8px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

/* 动态翻转效果 */
.flip-wrapper {
    perspective: 1000;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
}

.flip-content {
    width: 235px;
    height: 110px;
    transform-style: preserve-3d;
    transition: transform 0.3s cubic-bezier(0,0,0,1.29);
}

.card-face {
    background-image: url('https://img2024.cnblogs.com/blog/1289898/202408/1289898-20240822093316430-1716103993.png');
    background-size: cover;
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
}

.card-back {
    background-image: url('https://img2024.cnblogs.com/blog/1289898/202408/1289898-20240822163713759-1772776461.png');
    background-size: cover;
    position: absolute;
    width: 100%;
    height: 100%;
    transform: rotateY(180deg);
    backface-visibility: hidden;
}

/* 悬停交互 */
.flip-wrapper:hover .flip-content {
    transform: rotateY(180deg);
}

关键实现说明:

  • 使用CSS变量管理背景资源: :root { --wechat-bg: url(...); }
  • 通过transform实现3D翻转效果
  • hover伪类触发状态切换
  • 支持自定义图片资源替换

资源说明

所需素材包含:

  1. 微信图标:微信图标
  2. 公众号提示图:提示图
  3. 二维码底图:二维码底图

二维码获取路径:公众号设置 > 账号详情 > 二维码

标签: CSS3JavaScript

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。