未登录
中文(中国大陆)
创建账号
登录
SOKA CAFE
搜索
查看“信仰指数”的源代码
来自SOKA CAFE
命名空间
页面
讨论
更多
更多
页面操作
阅读
查看源代码
历史
←
信仰指数
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
{{全屏| <html> <!-- CSS Styles for the application --> <style> /* The container styling is slightly adjusted to work better in a wiki context. Using a class name like 'faith-index-container' avoids potential conflicts with MediaWiki's own styles. */ .faith-index-body { background: linear-gradient(135deg, #0052a5 0%, #f9e300 50%, #d40000 100%); min-height: 90vh; /* Use vh for viewport height */ display: flex; justify-content: center; align-items: center; padding: 20px; font-family: 'Segoe UI', 'Microsoft YaHei', sans-serif; } .faith-index-container { background: rgba(255, 255, 255, 0.25); backdrop-filter: blur(12px); border-radius: 20px; padding: 40px; width: 100%; max-width: 500px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); border: 1px solid rgba(255, 255, 255, 0.4); text-align: center; margin: 0 auto; /* Center the container */ } .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, 0.5); color: #2c3e50; font-size: 1rem; transition: all 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.5); box-sizing: border-box; /* Important for wiki compatibility */ } .faith-index-container input:focus { outline: none; background: rgba(255, 255, 255, 0.7); box-shadow: 0 0 0 3px rgba(44, 62, 80, 0.2); } .faith-index-container button { background: linear-gradient(to right, #34495e, #2c3e50); color: white; border: none; padding: 15px 30px; border-radius: 12px; font-size: 1.1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; width: 100%; margin-top: 10px; box-shadow: 0 5px 15px rgba(44, 62, 80, 0.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, 0.4); } .faith-index-container button:active { transform: translateY(0); } .faith-index-container button:disabled { opacity: 0.7; cursor: not-allowed; transform: none; } .faith-index-container .loader { width: 20px; height: 20px; border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top: 2px solid white; animation: faith-index-spin 1s linear infinite; } @keyframes faith-index-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .faith-index-container .result { margin-top: 30px; padding: 25px; border-radius: 15px; background: rgba(255, 255, 255, 0.3); display: none; animation: faith-index-fadeIn 0.5s ease; } @keyframes faith-index-fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .faith-index-container .result h2 { color: #2c3e50; margin-bottom: 15px; } .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, 0.4); text-align: left; line-height: 1.5; } .faith-index-container .meter { height: 20px; background: rgba(0, 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: 0.85rem; } .faith-index-container .footer { margin-top: 30px; color: #34495e; font-size: 0.9rem; } .faith-index-container .error { color: #d9534f; background: rgba(217, 83, 79, 0.1); padding: 10px; border-radius: 8px; margin-top: 10px; display: none; } @media (max-width: 600px) { .faith-index-container { padding: 25px; } .faith-index-container h1 { font-size: 1.8rem; } } </style> <!-- HTML structure for the application --> <div class="faith-index-body"> <div class="faith-index-container"> <h1>信仰指数测试</h1> <p class="subtitle">测测你的信仰有多虔诚</p> <div class="input-group"> <label for="username">请输入您的名字:</label> <input type="text" id="faith-index-username" placeholder="输入名字..." autocomplete="off"> </div> <button id="faith-index-analyzeBtn"> <span id="faith-index-btnText">开始测试</span> <div class="loader" id="faith-index-loader" style="display: none;"></div> </button> <div class="error" id="faith-index-errorMsg"></div> <div class="result" id="faith-index-result"> <h2>测试结果</h2> <p>姓名: <span id="faith-index-resultUsername"></span></p> <div class="score" id="faith-index-scoreDisplay">0%</div> <div class="meter"> <div class="meter-fill" id="faith-index-meterFill" 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" id="faith-index-comment"></div> <p class="footer">* 本结果为娱乐目的,基于名字的随机计算,每次查询结果相同</p> </div> </div> </div> <!-- JavaScript logic for the application --> <script> (function() { // We wrap the entire script in a function to avoid global scope conflicts. const analyzeBtn = document.getElementById('faith-index-analyzeBtn'); const usernameInput = document.getElementById('faith-index-username'); analyzeBtn.addEventListener('click', function() { const username = usernameInput.value.trim(); const resultDiv = document.getElementById('faith-index-result'); if (!username) { showError('请输入您的名字!'); resultDiv.style.display = 'none'; return; } hideError(); // Calculate the faith index const score = calculateFaithIndex(username); // Get the comment based on the score const comment = getFaithComment(score); // Display the results document.getElementById('faith-index-resultUsername').textContent = username; document.getElementById('faith-index-scoreDisplay').textContent = score + '%'; document.getElementById('faith-index-comment').textContent = comment; resultDiv.style.display = 'block'; // Use a timeout to ensure the CSS transition for the meter fill is visible setTimeout(() => { document.getElementById('faith-index-meterFill').style.width = score + '%'; }, 100); }); // Deterministic algorithm to calculate faith index (0-100) function calculateFaithIndex(username) { let hash = 0; if (username.length === 0) return 0; for (let i = 0; i < username.length; i++) { const char = username.charCodeAt(i); hash = ((hash << 5) - hash) + char; hash = hash & hash; // Convert to 32bit integer } // Map the hash to a range of 0-100 return Math.abs(hash) % 101; } // Generate a comment based on the score function getFaithComment(score) { if (score <= 20) { return "信仰指数较低,信心还需磨练。请多参加活动,加强学习,在广布的道路上继续精进!"; } else if (score <= 40) { return "作为一名初信者,你的信心正在萌芽。坚持每日的实践,你将见证不可思议的功德!"; } else if (score <= 60) { return "信心坚定,是广布的有力实践者。你的存在本身就是胜利的证明,请继续鼓励身边的同志!"; } else if (score <= 80) { return "不愧是池田门生,信心强盛如狮子王!你的祈愿必将实现,继续作为常胜的先驱奋斗吧!"; } else { return "了不起!你拥有佛的生命,是人间革命的先锋。你的生命正在闪耀着最尊贵的光芒!"; } } // Function to show an error message function showError(message) { const errorMsg = document.getElementById('faith-index-errorMsg'); errorMsg.textContent = message; errorMsg.style.display = 'block'; } // Function to hide the error message function hideError() { const errorMsg = document.getElementById('faith-index-errorMsg'); errorMsg.style.display = 'none'; } // Add event listener for the 'Enter' key usernameInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { analyzeBtn.click(); } }); })(); </script> </html> }}
本页使用的模板:
模板:全屏
(
查看源代码
)
返回
信仰指数
。
导航
导航
首页
最近更改
随机页面
知识集锦
活动公告
讨论版块
档案区
人物图鉴
团体势力
地点区域
登场作品
历史事件
创作区
词典概念
作品推荐
世界设定
创作作者
创作团体
编辑帮助
查找页面
入站须知
测试页面
任务计划
官方教程
wiki工具
wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志