Butterfly主题文章标题改成转动小风车

效果

标题级别不同小风车颜色不同,鼠标移入会有转动变慢及变色效果。
在这里插入图片描述

新建css

建议在/source下创建诸如img/css/js等文件夹,存放文章或网站用的素材,分门别类后续也方便维护。

Hexo打包的时候,会自动把/source下的文件,包含到网站静态文件中去。

引入自定义css

在站点配置文件/_config.butterfly.yml中,搜索定位到inject,插入以下内容:

inject:
  head:
    # - <link rel="stylesheet" href="/xxx.css">
      - <link rel="stylesheet" href="/css/custom.css">

这样,后续所有样式的自定义,就可以在/source/css/custom.css文件中进行,避免改源码,以免后续更新变得复杂。

标题美化-加小风车样式

会改变olulh1-h5的样式

field配置生效的区域

  • post只在文章页生效
  • site在全站生效

修改主题配置文件,改成小风车样式

# 美化页面显示
beautify:
  enable: true
  field: post # site/post
  title-prefix-icon: '\f863'
  title-prefix-icon-color: "#ff7849"

图标使用的「fontawesome.com」上的图标,引用的是Unicode形式。可自行查找合适的。

让小风车转起来

在上文的/source/css/custom.css文件中,加入以下代码即可。

/* 文章页H1-H6图标样式效果 */
h1::before, h2::before, h3::before, h4::before, h5::before, h6::before {
    -webkit-animation: ccc 1.6s linear infinite ;
    animation: ccc 1.6s linear infinite ;
}
@-webkit-keyframes ccc {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
    to {
        -webkit-transform: rotate(-1turn);
        transform: rotate(-1turn)
    }
}
@keyframes ccc {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
    to {
        -webkit-transform: rotate(-1turn);
        transform: rotate(-1turn)
    }
}

风车转动速度

想调整风车转动速度,修改以下内容里的时间,数字越小转动越快。

h1::before, h2::before, h3::before, h4::before, h5::before, h6::before {
    -webkit-animation: ccc 1.6s linear infinite ;
    animation: ccc 1.6s linear infinite ;
}

风车转动方向

以下代码中,-1turn为逆时针转动,1turn为顺时针转动,相同数字部分记得统一修改:

@-webkit-keyframes ccc {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
    to {
        -webkit-transform: rotate(-1turn);
        transform: rotate(-1turn)
    }
}
@keyframes ccc {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg)
    }
    to {
        -webkit-transform: rotate(-1turn);
        transform: rotate(-1turn)
    }
}

小风车颜色、大小修改

#content-inner.layout h1::before {
    color: #ef50a8 ;
    margin-left: -1.55rem;
    font-size: 1.3rem;
    margin-top: -0.23rem;
}
#content-inner.layout h2::before {
    color: #fb7061 ;
    margin-left: -1.35rem;
    font-size: 1.1rem;
    margin-top: -0.12rem;
}
#content-inner.layout h3::before {
    color: #ffbf00 ;
    margin-left: -1.22rem;
    font-size: 0.95rem;
    margin-top: -0.09rem;
}
#content-inner.layout h4::before {
    color: #a9e000 ;
    margin-left: -1.05rem;
    font-size: 0.8rem;
    margin-top: -0.09rem;
}
#content-inner.layout h5::before {
    color: #57c850 ;
    margin-left: -0.9rem;
    font-size: 0.7rem;
    margin-top: 0.0rem;
}
#content-inner.layout h6::before {
    color: #5ec1e0 ;
    margin-left: -0.9rem;
    font-size: 0.66rem;
    margin-top: 0.0rem;
}

鼠标移入小风车转动变慢及变色

设置鼠标碰到标题时,小风车跟随标题变色,且像是被光标阻碍了,转速变慢。鼠标离开恢复转速。也可以设置为none鼠标碰到停止转动。

#content-inner.layout h1:hover, #content-inner.layout h2:hover, #content-inner.layout h3:hover, #content-inner.layout h4:hover, #content-inner.layout h5:hover, #content-inner.layout h6:hover {
    color: #49b1f5 ;
}
#content-inner.layout h1:hover::before, #content-inner.layout h2:hover::before, #content-inner.layout h3:hover::before, #content-inner.layout h4:hover::before, #content-inner.layout h5:hover::before, #content-inner.layout h6:hover::before {
    color: #49b1f5 ;
    -webkit-animation: ccc 3.2s linear infinite ;
    animation: ccc 3.2s linear infinite ;
}

页面设置图标转速

突然发现原作者设置的右下角设置icon转的太快了,让它慢一点吧。继续添加:

/* 页面设置icon转动速度调整 */
#rightside_config i.fas.fa-cog.fa-spin {
    animation: fa-spin 5s linear infinite ;
}

大功告成

此文章参考于「我的Blog美化日记——Hexo+Butterfly」。

<think>好的,我现在需要解决用户关于“小风车跳转”的疑问,特别是在IT上下文中的实现机制或功能介绍。首先,我需要明确“小风车跳转”具体指的是什么,因为“小风车”可能有不同的含义,尤其是在不同的技术场景中。 首先,我想到“小风车”可能是某个特定平台或应用中的功能,比如小程序、网页组件,或者是某种UI元素的昵称。例如,在微信小程序中,可能有类似小风车的加载动画或导航组件,用于页面跳转。另外,也有可能是指一种动态的图标,用户点击后触发跳转动作。 接下来,我需要验证这个假设。根据用户提到的“响应式布局方案”,可能涉及到前端开发中的组件实现。例如,在响应式网页设计中,小风车可能是一个旋转的图标,作为加载指示器,或者是一个可点击的按钮,用于导航到其他页面。这种情况下,跳转的实现可能涉及HTML、CSS和JavaScript的结合使用。 为了进一步确认,我应该考虑小风车跳转的具体技术实现。例如,使用CSS动画创建旋转效果,结合JavaScript事件监听器处理点击事件,然后通过修改window.location或使用路由库(如React Router)进行页面跳转。此外,如果是单页应用(SPA),可能会使用AJAX加载内容,而不是整页刷新。 另外,还需要考虑跨平台的情况,比如在移动端应用中,小风车可能是一个原生的UI组件,通过调用系统API实现页面跳转。例如,在Android中使用Intents,或在iOS中使用Segues。 可能还需要查阅相关文档或案例,比如引用[1]提到的响应式布局方案,结合PC端、移动端和平板端的适配,小风车跳转可能需要不同的处理方式,确保在不同设备上都有良好的用户体验。 最后,总结可能的实现机制:前端通过CSS动画和JavaScript处理交互,后端可能涉及路由配置或API调用,具体取决于应用架构。同时,需要处理响应式设计中的适配问题,确保跳转功能在不同设备上一致工作。</think>### 小风车跳转的实现机制与功能介绍 在IT开发场景中,“小风车跳转”通常指通过动态图标(形似风车旋转)触发的页面跳转或状态切换功能。以下是其核心实现机制与功能解析: --- #### 1. **功能定义** 小风车跳转常用于: - **加载状态指示**:在页面跳转前显示加载动画(风车旋转),提升用户体验[^1]。 - **交互式导航**:用户点击风车图标后,触发路由跳转或模块切换。 - **广告/活动入口**:作为动态视觉元素吸引用户点击,跳转到指定页面。 --- #### 2. **技术实现** ##### 前端实现(以Web为例) - **CSS动画**:定义风车旋转效果 ```css .windmill { animation: spin 2s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } ``` - **事件绑定**:通过JavaScript监听点击事件 ```javascript document.querySelector('.windmill').addEventListener('click', () => { // 单页应用跳转 window.history.pushState({}, '', '/target-page'); // 或整页跳转 window.location.href = 'https://target.domain/path'; }); ``` ##### 移动端实现(以React Native为例) ```javascript <TouchableOpacity onPress={() => navigation.navigate('TargetScreen')}> <Animated.Image style={{ transform: [{ rotate: spinAnim }] }} source={require('./windmill.png')} /> </TouchableOpacity> ``` ##### 后端支持(可选) - **短链接服务**:若涉及URL重定向,需后端生成短链接并配置302跳转 - **埋点统计**:记录小风图的点击数据用于分析 --- #### 3. **响应式适配要点** 根据引用[1]的响应式布局方案: - **多端适配**:通过媒体查询调整风车图标尺寸 ```css /* 移动端 */ @media (max-width: 768px) { .windmill { width: 40px; } } /* PC端 */ @media (min-width: 1200px) { .windmill { width: 60px; } } ``` - **性能优化**:对旋转动画启用GPU加速 ```css .windmill { transform: translateZ(0); } ``` --- #### 4. **安全增强** - **防重复点击**:事件触发后禁用按钮300ms - **跳转验证**:对非信任域添加提示弹窗 ```javascript if (isExternalUrl(targetUrl)) { showConfirmDialog('即将离开当前站点'); } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gzzz__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值