Files
home/js/main.js
hehh c6428d1224 feat(config): 提取站点配置到独立的config.js文件
- 将分散在各JS文件中的配置项统一提取到SiteConfig对象中
- 包含stars、animation、background、hitokoto等配置模块
- GitHub相关配置包括用户名、缓存键值和过期时间
- 博客RSS地址及缓存配置迁移至config.js
- 技术栈数据从硬编码移至配置文件管理
- 社交卡片动画参数统一配置化
- Artalk评论系统参数集中管理
- 添加开发环境检测逻辑
- 支持CommonJS和浏览器环境下的配置导出
- 在about.html和index.html中引入config.js脚本
- 更新about.js和main.js以使用SiteConfig配置
- 删除重复的GitHub用户名硬编码
- 调整图片路径读取方式为配置驱动
- 优化星空背景脚本的配置引用方式
- 修复本地开发环境下的一言默认文本显示问题
2025-11-20 22:02:37 +08:00

98 lines
2.7 KiB
JavaScript

var iUp = (function () {
var t = 0,
d = 150,
clean = function () {
t = 0;
},
up = function (e) {
setTimeout(function () {
$(e).addClass("up")
}, t);
t += d;
},
down = function (e) {
$(e).removeClass("up");
},
toggle = function (e) {
setTimeout(function () {
$(e).toggleClass("up")
}, t);
t += d;
};
return {
clean: clean,
up: up,
down: down,
toggle: toggle
}
})();
$(document).ready(function () {
// 获取一言数据
// 检查是否在本地开发环境
var isLocal = location.hostname === 'localhost' || location.hostname === '127.0.0.1';
var hitokotoUrl = isLocal ? 'https://v1.hitokoto.cn/' : SiteConfig.hitokoto.apiUrl;
fetch(hitokotoUrl).then(function (res) {
return res.json();
}).then(function (e) {
$('#description').html(e.hitokoto + "<br/> -「<strong>" + e.from + "</strong>」")
}).catch(function (err) {
console.error("获取一言数据失败", err);
// 本地开发环境使用默认文本
if (isLocal) {
$('#description').html('人生天地之间,若白驹之过隙,忽然而已。<br/> -「<strong>Honesty</strong>」');
}
})
/**
* 自定义壁纸
*/
var imgUrls = JSON.parse(sessionStorage.getItem("imgUrls"));
var index = sessionStorage.getItem("index");
var $panel = $('#panel');
var date = new Date();
var dayOfWeek = date.getDay();
if (imgUrls == null) {
imgUrls = [];
index = 0;
SiteConfig.background.imagePaths.forEach(path => {
imgUrls.push(path);
});
sessionStorage.setItem("imgUrls", JSON.stringify(imgUrls));
// sessionStorage.setItem("index", index);
} else {
// if (index == imgUrls.length)
// index = 0;
// else
// index++;
// sessionStorage.setItem("index", index);
}
var imgUrl = imgUrls[dayOfWeek];
$panel.css("background", "url('" + imgUrl + "') center center no-repeat #666");
$panel.css("background-size", "cover");
$(".iUp").each(function (i, e) {
iUp.up(e);
});
$(".js-avatar")[0].onload = function () {
$(".js-avatar").addClass("show");
}
});
$('.btn-mobile-menu__icon').click(function () {
if ($('.navigation-wrapper').css('display') == "block") {
$('.navigation-wrapper').on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$('.navigation-wrapper').toggleClass('visible animated bounceOutUp');
$('.navigation-wrapper').off('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend');
});
$('.navigation-wrapper').toggleClass('animated bounceInDown animated bounceOutUp');
} else {
$('.navigation-wrapper').toggleClass('visible animated bounceInDown');
}
$('.btn-mobile-menu__icon').toggleClass('social iconfont icon-list social iconfont icon-ngleup animated fadeIn');
});