打开/关闭搜索
搜索
打开/关闭菜单
549
7
12
2051
OGAS数据中枢
导航
首页
最近更改
随机页面
特殊页面
上传文件
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“︁MediaWiki:Common.js”︁的源代码
MediaWiki界面页面
查看
阅读
查看源代码
查看历史
associated-pages
系统消息
讨论
更多操作
←
MediaWiki:Common.js
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
管理员
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */ /* 萌百风格 Tabs 自动转换脚本 */ $(function() { $('.Tabs').each(function() { var $tabsContainer = $(this); // 1. 检查是否已经初始化过 if ($tabsContainer.hasClass('tabs-initialized')) return; // 2. 提取所有的标签和内容 var $tabItems = $tabsContainer.find('> .Tab'); if ($tabItems.length === 0) return; // 3. 创建标准的标签栏和内容容器 var $labelWrapper = $('<div class="TabLabel"></div>'); var $contentWrapper = $('<div class="TabContent"></div>'); $tabItems.each(function(index) { var $item = $(this); var $label = $item.find('> .TabLabelText'); var $content = $item.find('> .TabContentText'); // 给第一个设为选中 if (index === 0) { $label.addClass('selected'); $content.addClass('selected'); } // 绑定点击事件 $label.on('click', function() { $labelWrapper.find('.TabLabelText').removeClass('selected'); $contentWrapper.find('.TabContentText').removeClass('selected'); $(this).addClass('selected'); $content.addClass('selected'); }); $labelWrapper.append($label); $contentWrapper.append($content); }); // 4. 清空原有的“散装”内容,插入标准结构 $tabsContainer.empty().append($labelWrapper).append($contentWrapper).addClass('tabs-initialized'); }); }); /* 首页智能无缝轮播图 */ mw.hook('wikipage.content').add(function($content) { $content.find('.dynamic-carousel').each(function() { var $carousel = $(this); var $track = $carousel.find('.carousel-track'); var $originalSlides = $track.find('.carousel-slide'); var originalCount = $originalSlides.length; // 如果图太少,就不折腾了 if (originalCount <= 1) { $carousel.find('.carousel-btn, .carousel-dots').hide(); return; } // 核心魔术:偷偷把第一张图复制一份放到最后 var $firstClone = $originalSlides.first().clone(); $track.append($firstClone); var $dotsContainer = $carousel.find('.carousel-dots'); var currentIndex = 0; var isAnimating = false; // 防止你手速太快狂点按钮 var timer; // 生成底部圆点 for (var i = 0; i < originalCount; i++) { var $dot = $('<div class="dot"></div>'); if (i === 0) $dot.addClass('active'); $dotsContainer.append($dot); } var $dots = $dotsContainer.find('.dot'); // 更新圆点亮起状态 function updateDots(index) { $dots.removeClass('active'); if (index === originalCount) { $dots.eq(0).addClass('active'); // 如果滑到了假的第一张,亮起第一个圆点 } else { $dots.eq(index).addClass('active'); } } // 滑动控制中心 function goToSlide(index) { if (isAnimating) return; isAnimating = true; // 打开滑动动画 $track.css('transition', 'transform 0.5s cubic-bezier(0.25, 1, 0.5, 1)'); // 如果在第一张还往左点,先瞬间传送到最后一张,再往前滑 if (index < 0) { $track.css('transition', 'none'); $track.css('transform', 'translateX(-' + (originalCount * 100) + '%)'); $track[0].offsetHeight; // 强制系统反应一下 $track.css('transition', 'transform 0.5s cubic-bezier(0.25, 1, 0.5, 1)'); currentIndex = originalCount - 1; } else { currentIndex = index; } var moveDistance = currentIndex * 100; $track.css('transform', 'translateX(-' + moveDistance + '%)'); updateDots(currentIndex); // 等动画播完(0.5秒),处理无缝衔接 setTimeout(function() { // 如果滑到了假的第一张,瞬间关掉动画,传回真正的第一张 if (currentIndex === originalCount) { $track.css('transition', 'none'); $track.css('transform', 'translateX(0)'); currentIndex = 0; } isAnimating = false; }, 500); } function startTimer() { clearInterval(timer); timer = setInterval(function() { goToSlide(currentIndex + 1); }, 5000); // 5秒自动切下一张 } // 按钮点击事件 $carousel.find('.next-btn').on('click', function() { goToSlide(currentIndex + 1); startTimer(); }); $carousel.find('.prev-btn').on('click', function() { goToSlide(currentIndex - 1); startTimer(); }); $dots.on('click', function() { if (isAnimating) return; goToSlide($(this).index()); startTimer(); }); startTimer(); }); });
返回
MediaWiki:Common.js
。
查看“︁MediaWiki:Common.js”︁的源代码
MediaWiki界面页面