信仰指数:修订间差异
来自SOKA CAFE
(未显示同一用户的5个中间版本) | |||
第6行: | 第6行: | ||
<title>信仰指数测试</title> | <title>信仰指数测试</title> | ||
<style> | <style> | ||
* { | /* ---- styles (scoped by .faith-index-*) ---- */ | ||
body, html { margin: 0; padding: 0; } | |||
.faith-index-body{background:linear-gradient(135deg,#0052a5 0%,#f9e300 50%,#d40000 100%);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;font-family:'Segoe UI','Microsoft YaHei',sans-serif;box-sizing:border-box;} | |||
.faith-index-container{background:rgba(255,255,255,.25);backdrop-filter:blur(12px);border-radius:20px;padding:40px;width:100%;max-width:500px;box-shadow:0 8px 32px rgba(0,0,0,.1);border:1px solid rgba(255,255,255,.4);text-align:center;margin:0 auto} | |||
.faith-index-container h1{color:#2c3e50;margin-bottom:10px;font-size:2.2rem;font-weight:600} | |||
.faith-index-container .subtitle{color:#34495e;margin-bottom:30px;font-size:1rem} | |||
.faith-index-container .input-group{margin-bottom:25px;text-align:left} | |||
.faith-index-container label{display:block;color:#2c3e50;margin-bottom:8px;font-weight:500} | |||
.faith-index-container input{width:100%;padding:15px;border-radius:12px;border:none;background:rgba(255,255,255,.5);color:#2c3e50;font-size:1rem;transition:all .3s ease;border:1px solid rgba(255,255,255,.5);box-sizing:border-box} | |||
.faith-index-container input:focus{outline:none;background:rgba(255,255,255,.7);box-shadow:0 0 0 3px rgba(44,62,80,.2)} | |||
.faith-index-container button{background:linear-gradient(to right,#34495e,#2c3e50);color:#fff;border:none;padding:15px 30px;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%;margin-top:10px;box-shadow:0 5px 15px rgba(44,62,80,.3);display:flex;justify-content:center;align-items:center;gap:10px} | |||
.faith-index-container button:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(44,62,80,.4)} | |||
.faith-index-container button:active{transform:translateY(0)} | |||
.faith-index-container button[disabled]{opacity:.7;cursor:not-allowed;transform:none} | |||
.faith-index-container .loader{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top:2px solid #fff;animation:faith-index-spin 1s linear infinite} | |||
@keyframes faith-index-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}} | |||
.faith-index-container .result{margin-top:30px;padding:25px;border-radius:15px;background:rgba(255,255,255,.3);display:none;animation:faith-index-fadeIn .5s ease} | |||
.container { | @keyframes faith-index-fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}} | ||
.faith-index-container .score{font-size:3.5rem;font-weight:800;margin:15px 0;color:#2c3e50} | |||
.faith-index-container .comment{font-size:1.2rem;color:#2c3e50;margin:15px 0;padding:15px;border-radius:10px;background:rgba(255,255,255,.4);text-align:left;line-height:1.5} | |||
.faith-index-container .meter{height:20px;background:rgba(0,0,0,.1);border-radius:10px;margin:20px 0;overflow:hidden} | |||
.faith-index-container .meter-fill{height:100%;border-radius:10px;transition:width 1s ease;background:linear-gradient(to right,#0052a5,#f9e300,#d40000)} | |||
.faith-index-container .ranges{display:flex;justify-content:space-between;margin-top:10px;color:#34495e;font-size:.85rem} | |||
.faith-index-container .footer{margin-top:30px;color:#34495e;font-size:.9rem} | |||
.faith-index-container .error{color:#d9534f;background:rgba(217,83,79,.1);padding:10px;border-radius:8px;margin-top:10px;display:none} | |||
@keyframes spin { | |||
@keyframes fadeIn { | |||
. | |||
</style> | </style> | ||
</head> | </head> | ||
<body> | <body> | ||
<div class="container"> | |||
<div class="fi-root"> | |||
<div class="faith-index-body"> | |||
<div class="faith-index-container"> | |||
<h1>信仰指数测试</h1> | |||
<p class="subtitle">测测你的信仰有多虔诚</p> | |||
<div class="input-group"> | |||
<label>请输入您的名字:</label> | |||
<input class="fi-input" type="text" placeholder="输入名字..." autocomplete="off"> | |||
</div> | |||
<button type="button" class="fi-btn"> | |||
<span class="fi-btn-text">开始测试</span> | |||
<div class="loader fi-loader" style="display:none;"></div> | |||
</button> | |||
<div class="error fi-error" style="display:none;"></div> | |||
<div class="result fi-result" style="display:none;"> | |||
<h2>测试结果</h2> | |||
<p>姓名: <span class="fi-name"></span></p> | |||
<div class="score fi-score">0%</div> | |||
<div class="meter"><div class="meter-fill fi-meter" style="width:0%"></div></div> | |||
<div class="ranges"><span>0-20</span><span>21-40</span><span>41-60</span><span>61-80</span><span>81-100</span></div> | |||
<div class="comment fi-comment"></div> | |||
<p class="footer">* 本结果为娱乐目的,基于名字的随机计算,每次查询结果相同</p> | |||
</div> | |||
</div> | </div> | ||
</div> | </div> | ||
</div> | </div> | ||
<script> | <script type="text/javascript"> | ||
document. | (function(){ | ||
// Find the root element to scope our DOM queries | |||
var root = document.querySelector('.fi-root'); | |||
if (!root) return; | |||
// Select all elements within the root | |||
var input = root.querySelector('.fi-input'); | |||
return; | var btn = root.querySelector('.fi-btn'); | ||
var btnTxt = root.querySelector('.fi-btn-text'); | |||
var loader = root.querySelector('.fi-loader'); | |||
var result = root.querySelector('.fi-result'); | |||
var error = root.querySelector('.fi-error'); | |||
var nameEl = root.querySelector('.fi-name'); | |||
var scoreEl = root.querySelector('.fi-score'); | |||
var cmtEl = root.querySelector('.fi-comment'); | |||
var meter = root.querySelector('.fi-meter'); | |||
// Logic functions | |||
function calculateFaithIndex(name){ | |||
var hash = 0, i, ch; | |||
if (!name) return 0; | |||
for (i = 0; i < name.length; i++){ | |||
ch = name.charCodeAt(i); | |||
hash = ((hash << 5) - hash) + ch; | |||
hash = hash | 0; | |||
} | |||
return Math.abs(hash) % 101; | |||
} | } | ||
function getFaithComment(score){ | |||
if (score <= 20) return "信仰指数较低,信心还需磨练。请多参加活动,加强学习,在广布的道路上继续精进!"; | |||
if (score <= 40) return "作为一名初信者,你的信心正在萌芽。坚持每日的实践,你将见证不可思议的功德!"; | |||
if (score <= 60) return "信心坚定,是广布的有力实践者。你的存在本身就是胜利的证明,请继续鼓励身边的同志!"; | |||
if (score <= 80) return "不愧是池田门生,信心强盛如狮子王!你的祈愿必将实现,继续作为常胜的先驱奋斗吧!"; | |||
return "了不起!你拥有佛的生命,是人间革命的先锋。你的生命正在闪耀着最尊贵的光芒!"; | return "了不起!你拥有佛的生命,是人间革命的先锋。你的生命正在闪耀着最尊贵的光芒!"; | ||
} | } | ||
function showError(msg){ if(!error) return; error.textContent = msg; error.style.display = 'block'; } | |||
function hideError(){ if(error) error.style.display = 'none'; } | |||
function runTest(){ | |||
var username = (input.value || '').trim(); | |||
if (!username){ | |||
showError('请输入您的名字!'); | |||
result.style.display = 'none'; | |||
return; | |||
} | |||
hideError(); | |||
loader.style.display = 'inline-block'; | |||
btnTxt.textContent = '计算中...'; | |||
btn.disabled = true; | |||
setTimeout(function(){ | |||
try { | |||
var score = calculateFaithIndex(username); | |||
nameEl.textContent = username; | |||
scoreEl.textContent = score + '%'; | |||
cmtEl.textContent = getFaithComment(score); | |||
result.style.display = 'block'; | |||
setTimeout(function(){ meter.style.width = score + '%'; }, 60); | |||
} finally { | |||
loader.style.display = 'none'; | |||
btnTxt.textContent = '开始测试'; | |||
btn.disabled = false; | |||
} | |||
}, 800); | |||
} | } | ||
}); | |||
// Event listeners | |||
btn.addEventListener('click', runTest); | |||
input.addEventListener('keydown', function(e){ if (e.key === 'Enter') runTest(); }); | |||
})(); | |||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> | ||
}} | }} |
2025年10月12日 (日) 16:49的最新版本
信仰指数测试
测测你的信仰有多虔诚