iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
Modern Web

身為一個宅宅也想要有自己的小天地系列 第 9

DAY9 加入頭像特效與跳轉

  • 分享至 

  • xImage
  •  

今天來加入Butterfly中我挺喜歡的頭像旋轉功能

加入旋轉特效(CSS)

把下面這段加到你的 source/style.css 最後面:

/* Avatar hover 旋轉一圈 */
.site-avatar img,
.avatar img,
.kira-avatar img,
.site-author-image img {
  transition: transform .6s cubic-bezier(.22,.61,.36,1);
  transform-origin: center center;
  will-change: transform;
}
.site-avatar:hover img,
.avatar:hover img,
.kira-avatar:hover img,
.site-author-image:hover img {
  transform: rotate(360deg);
}

再來是跳轉功能

KIRA的主題是按頭像就會跳轉到原圖網址

這邊我們改成按頭像就會跳到自我介紹的頁面

我們在source底下新增/js/avatar-redirect.js

因為他本身影響頭像的有sidebar.ejs跟header.ejs,用這個方法一次去處理兩個檔

source/js/avatar-redirect.js

// source/js/avatar-redirect.js
document.addEventListener('DOMContentLoaded', () => {
  const selectors = [
    'header .site-avatar img',
    'header .avatar img',
    'header .kira-avatar img',
    'header .site-author-image img',
    '.sidebar .site-avatar img',
    '.sidebar .avatar img',
    '.sidebar .kira-avatar img',
    '.sidebar .site-author-image img',
    '.site-avatar img',
    '.avatar img',
    '.kira-avatar img',
    '.site-author-image img',
  ].join(', ');

  const avatars = document.querySelectorAll(selectors);
  if (!avatars.length) return;

  avatars.forEach((img) => {
    const clickTarget = img.closest('a') || img;
    clickTarget.style.cursor = 'pointer';
    clickTarget.addEventListener('click', (e) => {
      if (e.metaKey || e.ctrlKey) return; // 允許 Ctrl/Cmd 新分頁
      e.preventDefault();
      window.location.href = '/about/';
    });
  });
});

之後我們在\node_modules\hexo-theme-kira\layout\components的header.ejs

在最後面加入引用

<script src="<%= url_for('/js/avatar-redirect.js') %>"></script>

這樣我們就能有一個會旋轉的頭像跟重定位(跳轉網頁)的功能了

P.S每次修改完記得重啟才會看到修改後的結果喔


上一篇
DAY8 加入首頁特效
下一篇
DAY10 加入滑鼠移動特效
系列文
身為一個宅宅也想要有自己的小天地10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言