打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

User:弃权者/Template:少女前线信息:修订间差异

来自OGAS数据中枢
弃权者留言 | 贡献
无编辑摘要
弃权者留言 | 贡献
无编辑摘要
第1行: 第1行:
<includeonly><templatestyles src="User:弃权者/Template:少女前线信息/styles.css" /><div class="gf-infobox-wrap"><div class="gf-infobox-left">{{Widget:GF立绘切换|立绘1={{{立绘1|}}}|立绘2={{{立绘2|}}}|立绘3={{{立绘3|}}}|立绘4={{{立绘4|}}}|立绘5={{{立绘5|}}}|立绘1说明={{{立绘1说明|常态}}}|立绘2说明={{{立绘2说明|立绘2}}}|立绘3说明={{{立绘3说明|立绘3}}}|立绘4说明={{{立绘4说明|立绘4}}}|立绘5说明={{{立绘5说明|立绘5}}}|页面={{SUBPAGENAME}}}}</div><div class="gf-infobox-right"><table class="gf-info-table"><tr><th>本名</th><td>{{{本名|}}}</td></tr>{{#if:{{{别名|}}}|<tr><th>别名</th><td>{{{别名}}}</td></tr>}}{{#if:{{{发色|}}}|<tr><th>发色</th><td>{{{发色}}}</td></tr>}}{{#if:{{{瞳色|}}}|<tr><th>瞳色</th><td>{{{瞳色}}}</td></tr>}}{{#if:{{{声优|}}}|<tr><th>声优</th><td>{{{声优|}}}{{ArticleCategory|{{{声优}}}配音角色}}</td></tr>}}{{#if:{{{萌点|}}}|<tr><th>萌点</th><td>{{{萌点}}}</td></tr>}}{{#if:{{{类型|}}}|<tr><th>类型</th><td>{{#switch:{{{类型|}}}|手枪=手枪{{ArticleCategory|少女前线:手枪}}|冲锋枪=冲锋枪{{ArticleCategory|少女前线:冲锋枪}}|步枪=步枪{{ArticleCategory|少女前线:步枪}}|突击步枪=突击步枪{{ArticleCategory|少女前线:突击步枪}}|机枪=机枪{{ArticleCategory|少女前线:机枪}}|霰弹枪=霰弹枪{{ArticleCategory|少女前线:霰弹枪}}|#default={{{类型|}}}}}</td></tr>}}{{#if:{{{稀有度|}}}|<tr><th>稀有度</th><td>{{#iferror:{{#expr:{{{稀有度|0}}}*1}}|{{{稀有度|}}}|{{#invoke:GF_utils|colored_rarity|{{{稀有度|}}}}}}}}</td></tr>}}{{#if:{{{归属部门|}}}|<tr><th>归属部门</th><td>{{{归属部门}}}</td></tr>}}{{#if:{{{归属组织|}}}|<tr><th>归属组织</th><td>{{{归属组织}}}</td></tr>}}{{#if:{{{个人状态|}}}|<tr><th>个人状态</th><td>{{{个人状态}}}</td></tr>}}{{#if:{{{相关人士|}}}|<tr><th colspan="2" class="gf-section-header">亲属或相关人</th></tr><tr><td colspan="2" class="gf-related">{{{相关人士}}}</td></tr>}}</table></div></div></includeonly>
<includeonly><templatestyles src="User:弃权者/Template:少女前线信息/styles.css" /><div class="gf-infobox-wrap"><div class="gf-infobox-left">{{Widget:GF立绘切换|立绘1={{{立绘1|}}}|立绘2={{{立绘2|}}}|立绘3={{{立绘3|}}}|立绘4={{{立绘4|}}}|立绘5={{{立绘5|}}}|立绘1说明={{{立绘1说明|常态}}}|立绘2说明={{{立绘2说明|立绘2}}}|立绘3说明={{{立绘3说明|立绘3}}}|立绘4说明={{{立绘4说明|立绘4}}}|立绘5说明={{{立绘5说明|立绘5}}}|页面={{SUBPAGENAME}}}}</div><div class="gf-infobox-right"><table class="gf-info-table"><tr><th>本名</th><td>{{{本名|}}}</td></tr>{{#if:{{{别名|}}}|<tr><th>别名</th><td>{{{别名}}}</td></tr>}}{{#if:{{{发色|}}}|<tr><th>发色</th><td>{{{发色}}}</td></tr>}}{{#if:{{{瞳色|}}}|<tr><th>瞳色</th><td>{{{瞳色}}}</td></tr>}}{{#if:{{{声优|}}}|<tr><th>声优</th><td>{{{声优|}}}{{ArticleCategory|{{{声优}}}配音角色}}</td></tr>}}{{#if:{{{萌点|}}}|<tr><th>萌点</th><td>{{{萌点}}}</td></tr>}}{{#if:{{{类型|}}}|<tr><th>类型</th><td>{{#switch:{{{类型|}}}|手枪=手枪{{ArticleCategory|少女前线:手枪}}|冲锋枪=冲锋枪{{ArticleCategory|少女前线:冲锋枪}}|步枪=步枪{{ArticleCategory|少女前线:步枪}}|突击步枪=突击步枪{{ArticleCategory|少女前线:突击步枪}}|机枪=机枪{{ArticleCategory|少女前线:机枪}}|霰弹枪=霰弹枪{{ArticleCategory|少女前线:霰弹枪}}|#default={{{类型|}}}}}</td></tr>}}{{#if:{{{稀有度|}}}|<tr><th>稀有度</th><td>{{#iferror:{{#expr:{{{稀有度|0}}}*1}}|{{{稀有度|}}}|{{#invoke:GF_utils|colored_rarity|{{{稀有度|}}}}}}}}</td></tr>}}{{#if:{{{归属部门|}}}|<tr><th>归属部门</th><td>{{{归属部门}}}</td></tr>}}{{#if:{{{归属组织|}}}|<tr><th>归属组织</th><td>{{{归属组织}}}</td></tr>}}{{#if:{{{个人状态|}}}|<tr><th>个人状态</th><td>{{{个人状态}}}</td></tr>}}{{#if:{{{相关人士|}}}|<tr><th colspan="2" class="gf-section-header">亲属或相关人</th></tr><tr><td colspan="2" class="gf-related">{{{相关人士}}}</td></tr>}}</table></div></div></includeonly><noinclude>{{User:弃权者/Template:少女前线信息|本名=测试}}</noinclude>

2026年5月15日 (五) 06:14的版本

<script>

(function () {

   function initSwitcher() {
       var api = (window.mw && mw.Api) ? new mw.Api() : null;
       document.querySelectorAll('.gf-infobox-new').forEach(function (box) {
           if (box.dataset.ready) return;
           box.dataset.ready = '1';
           var container = box.querySelector('.gf-image-container');
           var btns = box.querySelectorAll('.gf-switch-btn');
           var overlay = box.querySelector('.gf-switcher-overlay');
           var toggle = box.querySelector('.gf-switcher-toggle');
           var viewBtn = box.querySelector('.gf-view-original');
           if (toggle) toggle.onclick = function() { overlay.classList.toggle('collapsed'); };
           function getImgPath(filename, currentSrc, callback) {
               if (api) {
                   api.get({ action: 'query', prop: 'imageinfo', titles: 'File:' + filename, iiprop: 'url' })
                   .done(function (data) {
                       var pages = data.query.pages;
                       for (var id in pages) { if (pages[id].imageinfo) { callback(pages[id].imageinfo[0].url); return; } }
                       tryFallback();
                   }).fail(tryFallback);
               } else tryFallback();
               function tryFallback() {
                   if (!currentSrc) { callback(null); return; }
                   var curName = currentSrc.substring(currentSrc.lastIndexOf('/') + 1);
                   callback(currentSrc.replace(curName, filename.replace(/ /g, '_')));
               }
           }
           if (viewBtn) {
               viewBtn.onclick = function(e) {
                   e.stopPropagation();
                   var activeBtn = box.querySelector('.gf-switch-btn.active');
                   if (activeBtn) {
                       var filename = activeBtn.dataset.filename;
                       var isDmg = activeBtn.dataset.state === 'damage';
                       var target = isDmg ? filename.substring(0, filename.lastIndexOf('.')) + '_D' + filename.substring(filename.lastIndexOf('.')) : filename;
                       window.open(mw.config.get('wgArticlePath').replace('$1', 'File:' + target), '_blank');
                   }
               };
           }
           container.onclick = function() {
               var img = container.querySelector('img');
               var activeBtn = box.querySelector('.gf-switch-btn.active');
               if (!img || !activeBtn) return;
               var base = activeBtn.dataset.filename;
               var isDmg = activeBtn.dataset.state === 'damage';
               var target = isDmg ? base : base.substring(0, base.lastIndexOf('.')) + '_D' + base.substring(base.lastIndexOf('.'));
               
               container.classList.add('loading');
               getImgPath(target, img.src, function(url) {
                   if (url) {
                       var t = new Image();
                       t.onload = function() { 
                           img.src = url; 
                           activeBtn.dataset.state = isDmg ? 'normal' : 'damage'; 
                           container.classList.remove('loading'); 
                       };
                       t.onerror = function() { container.classList.remove('loading'); };
                       t.src = url;
                   } else container.classList.remove('loading');
               });
           };
           btns.forEach(function (btn) {
               btn.onclick = function (e) {
                   e.stopPropagation();
                   if (btn.classList.contains('active')) return;
                   var filename = btn.dataset.filename;
                   btn.dataset.state = 'normal';
                   var oldImg = container.querySelector('img');
                   if (oldImg) oldImg.style.opacity = '0';
                   getImgPath(filename, (oldImg ? oldImg.src : null), function(url) {
                       if (url) {
                           setTimeout(function () {
container.innerHTML = '
<img src="' + url + '" style="opacity:0;">
';
                               container.appendChild(viewBtn);
                               var n = container.querySelector('img');
                               n.onload = function () { n.style.opacity = '1'; };
                               if (n.complete) n.style.opacity = '1';
                           }, 150);
                       }
                   });
                   btns.forEach(function (b) { b.classList.remove('active'); });
                   btn.classList.add('active');
               };
           });
       });
   }
   var r = 0;
   var c = setInterval(function() {
       r++;
       if (window.mw && mw.Api && mw.loader && mw.loader.using) {
           clearInterval(c);
           mw.loader.using(['mediawiki.api']).then(initSwitcher);
       } else if (r > 60) { clearInterval(c); if (window.jQuery) initSwitcher(); }
   }, 100);

})();

</script>
本名测试