当前位置: 首页 > news >正文

博客园-awescnb插件-geek皮肤优化--公众号卡片

简介

博客园-awescnb插件-geek皮肤暂不支持配置展示公众号二维码,此文章目的使用手动注入方式自定义实现公众号卡片效果

效果展示

  • 公众号卡片

  • 动态效果

鼠标移入前为公众号指引页
鼠标移入后显示公众号二维码
切换动画为动态反转

  • 首页展示

实现

在博客日历元素blog-calendar前插入自定义div卡片元素

  • 定义自定义HTML
    博客园->管理->设置->页脚 HTML 代码
    添加相关代码
//添加微信公众号卡片function addWechat(){const tempDiv = document.createElement('div');tempDiv.innerHTML = '<div class="card-widget heo-right-widget wechat" id="card-wechat"><div id="flip-wrapper"><div id="flip-content"><div class="face"></div><div class="back face"></div></div></div></div>';const newElement = tempDiv.firstChild;document.getElementById("blog-calendar").before(newElement);}addWechat();

在博客日历blog-calendar之前添加自定义HTML元素
document.createElement:创建元素
innerHTML :写入元素HTML内容
firstChild:获取对应元素第一个子元素
document.getElementById:根据ID获取元素
before:在对应元素之前插入

  • 定义自定义CSS
    博客园->管理->设置->页面定制 CSS 代码
    添加代码
.card-widget#card-wechat.wechat::before {background: var(--wechat-ico-background-url) center center no-repeat;background-size: cover;}.card-widget#card-wechat::before {position: absolute;width: 100%;height: 100%;left: 0;top: 0;content: '';background-size: cover;transition: .2s cubic-bezier(.45,.04,.43,1.21);}.card-widget:hover {box-shadow: 0 8px 16px -4px #2c2d300c;}.card-widget#card-wechat.wechat {background: #57bd6a;}.card-widget#card-wechat {margin: 8px;background: #57bd6a;display: flex;justify-content: center;align-content: center;padding: 0;cursor: pointer;border: none;height: 110px;}.card-widget {box-shadow: 0 8px 16px -4px #2c2d300c;background: #fff;border: 1px solid #e3e8f7;border-radius: 12px;transition: .3s;position: relative;overflow: hidden;padding: 1rem;display: flex;gap: 8px;flex-direction: column;}#flip-wrapper {-webkit-perspective: 1000;perspective: 1000;}#flip-wrapper {position: relative;width: 100%;height: 100%;z-index: 1;display: flex;justify-content: center;}#flip-content {width: 235px;height: 110px;-webkit-transform-style: preserve-3d;transform-style: preserve-3d;transition: cubic-bezier(0,0,0,1.29) .3s;}.wechat .face {background: var(--face-background-url) center center no-repeat;background-size: cover;}.face {position: absolute;width: 100%;height: 100%;-webkit-backface-visibility: hidden;backface-visibility: hidden;}.wechat .back.face {background: var(--wechat-card-background-url) center center no-repeat;background-size: cover;}.back.face {display: block;-webkit-transform: rotateY(180deg);transform: rotateY(180deg);box-sizing: border-box;}body {position: relative;min-height: 100%;background: #f7f9fe;color: #363636;font-size: 16px;font-family: "PingFang SC","Hiragino Sans GB","Microsoft YaHei";line-height: 2;-webkit-tap-highlight-color: transparent;margin: 0;}#flip-wrapper:hover #flip-content {-webkit-transform: rotateY(180deg);transform: rotateY(180deg);}.card-widget#card-wechat:hover:before {top: 100%;opacity: 0;transition: .3s ease-out;}:root {--wechat-ico-background-url: url(https://img2024.cnblogs.com/blog/1289898/202408/1289898-20240822093316430-1716103993.png);--face-background-url: url(https://img2024.cnblogs.com/blog/1289898/202408/1289898-20240822093440102-947878034.png);--wechat-card-background-url: url(https://img2024.cnblogs.com/blog/1289898/202408/1289898-20240822163713759-1772776461.png);
}

:hover 是一个伪类选择器,用于选择用户将指针悬停在某个元素上时的状态。通常用于添加交互效果,如此处的反转效果
rotateY() 函数是用来沿着 Y 轴旋转一个元素的方法。这是 transform 属性的一部分,可以用来创建三维变换。
transition 属性用于定义元素从一种样式逐渐改变为另一种样式的过渡效果。它可以应用于任何 CSS 属性的变化,只要这个属性是可以通过 CSS 动画平滑过渡的
var()函数允许你使用自定义属性(也称为CSS变量)来定义和重用值。自定义属性提供了一种创建可重用值的方法,这些值可以在不同的作用域中定义,并且可以被子元素继承

其中对应了三张背景图片,均可自行上传和修改,图片原图如下:

  1. 微信图标

  2. 公众号提示

  3. 公众号二维码

公众号二维码底图

可自行与公众号二维码进行组合
公众号二维码获取地址:公众号设置->账号详情->二维码

其他文章

博客园自定义皮肤工具推荐:awescnb

博客园-awescnb插件-geek皮肤优化


结束

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Kerberos认证以及黄金票据白银票据的简单介绍
  • 【其它-高效处理小技巧】如何批量备份263企业邮箱邮件之-如何查看.eml
  • C语言程序设计-练习篇
  • 深度优先搜索-放苹果
  • Python OpenCV 影像处理:影像轮廓
  • 详细阐述Android中的四种启动模式
  • 项目问题 | CentOS 7停止维护导致yum失效的解决办法
  • 前端数据存在什么地方,刷新页面之后依旧存在
  • 【数学建模备赛】Ep05:斯皮尔曼spearman相关系数
  • 尚硅谷Java面试题第四季-MySQL面试题
  • 关于武汉芯景科技有限公司的多协议收发芯片XJ526(第二篇RS422模式)开发指南(兼容SP526)
  • Java:循环练习
  • 开发指南054-选择人员
  • day35
  • LUOGU P2048 [NOI2010] 超级钢琴(贪心+堆)
  • 【面试系列】之二:关于js原型
  • 2019年如何成为全栈工程师?
  • k个最大的数及变种小结
  • MYSQL 的 IF 函数
  • Python 反序列化安全问题(二)
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • spring + angular 实现导出excel
  • vue--为什么data属性必须是一个函数
  • 面试遇到的一些题
  • 使用API自动生成工具优化前端工作流
  • 微信开放平台全网发布【失败】的几点排查方法
  • #07【面试问题整理】嵌入式软件工程师
  • (1)(1.11) SiK Radio v2(一)
  • (3) cmake编译多个cpp文件
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (二十四)Flask之flask-session组件
  • (利用IDEA+Maven)定制属于自己的jar包
  • (三)SvelteKit教程:layout 文件
  • (数据结构)顺序表的定义
  • (四)Linux Shell编程——输入输出重定向
  • (五)Python 垃圾回收机制
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET C# 使用GDAL读取FileGDB要素类
  • .Net Core 生成管理员权限的应用程序
  • .Net IOC框架入门之一 Unity
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET正则基础之——正则委托
  • @Autowired和@Resource的区别
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • [ Python ]使用Charles对Python程序发出的Get与Post请求抓包-解决Python程序报错问题
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [2018-01-08] Python强化周的第一天
  • [240727] Qt Creator 14 发布 | AMD 推迟 Ryzen 9000芯片发布
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [ajaxupload] - 上传文件同时附件参数值
  • [AWS]CodeCommit的创建与使用
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]