// 关于页面JavaScript功能 - 现代动态版本
$(document).ready(function() {
// 初始化所有功能
initGitHubStats();
initBlogArticles();
initVisitorStats();
initArtalkComments();
initPageAnimations();
initTechCloud();
initScrollEffects();
});
// GitHub 统计信息
function initGitHubStats() {
const username = 'listener-He'; // 替换为实际的GitHub用户名
// 获取用户基本信息
fetch(`https://api.github.com/users/${username}`)
.then(response => response.json())
.then(data => {
const profileHtml = `
${languages.map(lang => `${lang}`).join('')}
更新于 ${new Date(repo.updated_at).toLocaleDateString('zh-CN')}
`;
}).join('');
$('#projects-container').html(projectsHtml);
})
.catch(error => {
console.error('获取GitHub项目失败:', error);
$('#projects-container').html('
${article.title}
${article.excerpt}
${article.category}
${new Date(article.pubDate).toLocaleDateString('zh-CN')}
`).join('');
$('#blog-container').html(articlesHtml);
}
// 访问统计(百度统计集成)
function initVisitorStats() {
// 这里需要集成百度统计API
// 由于百度统计API需要认证,这里使用模拟数据
const mockStats = {
totalVisitors: 12580,
totalVisits: 25640,
todayVisitors: 156,
todayVisits: 234
};
// 动画显示数字
animateNumber('#total-visitors', mockStats.totalVisitors);
animateNumber('#total-visits', mockStats.totalVisits);
animateNumber('#today-visitors', mockStats.todayVisitors);
animateNumber('#today-visits', mockStats.todayVisits);
}
// 数字动画效果
function animateNumber(selector, targetNumber) {
const element = $(selector);
const duration = 2000;
const steps = 60;
const increment = targetNumber / steps;
let current = 0;
const timer = setInterval(() => {
current += increment;
if (current >= targetNumber) {
current = targetNumber;
clearInterval(timer);
}
element.text(Math.floor(current).toLocaleString());
}, duration / steps);
}
// 评论系统初始化
function initArtalkComments() {
// 初始化 Artalk 评论系统
if (typeof Artalk !== 'undefined') {
const artalk = Artalk.init({
el: '#artalk-container',
pageKey: window.location.pathname,
pageTitle: document.title,
server: 'https://your-artalk-server.com', // 替换为实际的Artalk服务器地址
site: 'Honesty的主页',
placeholder: '来说点什么吧...',
noComment: '暂无评论',
sendBtn: '发送',
darkMode: false,
gravatar: {
mirror: 'https://cravatar.cn/avatar/'
},
pagination: {
pageSize: 20,
readMore: true,
autoLoad: true
},
heightLimit: {
content: 300,
children: 400
},
imgUpload: false,
preview: true,
versionCheck: true
});
// 自定义样式
setTimeout(() => {
const atkMain = document.querySelector('.atk-main');
if (atkMain) {
atkMain.style.borderRadius = '15px';
atkMain.style.overflow = 'hidden';
}
}, 1000);
}
}
// 技术云图初始化
function initTechCloud() {
const techItems = [
// 内层轨道 - 核心技能
{ name: 'JavaScript', level: 'primary', orbit: 1 },
{ name: 'Python', level: 'primary', orbit: 1 },
{ name: 'React', level: 'primary', orbit: 1 },
// 中层轨道 - 熟练技能
{ name: 'Node.js', level: 'secondary', orbit: 2 },
{ name: 'Vue.js', level: 'secondary', orbit: 2 },
{ name: 'TypeScript', level: 'secondary', orbit: 2 },
{ name: 'MySQL', level: 'secondary', orbit: 2 },
// 外层轨道 - 工具技能
{ name: 'Docker', level: 'tertiary', orbit: 3 },
{ name: 'Git', level: 'tertiary', orbit: 3 },
{ name: 'Linux', level: 'tertiary', orbit: 3 },
{ name: 'AWS', level: 'tertiary', orbit: 3 },
{ name: 'MongoDB', level: 'tertiary', orbit: 3 },
{ name: 'Redis', level: 'tertiary', orbit: 3 }
];
// 动态生成技术项目
techItems.forEach((tech, index) => {
const orbit = $(`.orbit-${tech.orbit}`);
const techElement = $(`