미디어위키:Gadget-Vector-legacy-responsive.js

리버티게임(개발), 모두가 만들어가는 자유로운 게임
둘러보기로 이동 검색으로 이동

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
/**
  * 사이드바 토글 버튼 추가
  * [[미디어위키:vector.css]]의 `반응형 디자인 추가` 모듈의 의존성 모듈입니다.
  * 모바일 환경에서 왼쪽 사이드바를 접었다 폈다 해주는 버튼을 추가합니다..
  * 작성자: [[사용자:BANIP|BANIP]]
*/
function addSideBarOpenButton(){
  var $btn = $("<button id='btn-panelopen'></button>");
  var $wrap = $("#mw-navigation");
  var $content = $("#content");
  var $sidebar = $("#mw-panel");

  $wrap.append($btn);
  $btn.on("click",function(){ $sidebar.addClass("visible") });
  $content.on("click",function(){ $sidebar.removeClass("visible") });
}
$( addSideBarOpenButton )

/**
 * 숨긴 사용자 링크를 볼 수 있는 버튼 만들기
 * 제작자: [[사용자:hsl0|hsl0]]
**/
function vectorHidePersonalLink() {
	function collapse() {
		var $personalLinks = $('#p-personal ul');
		$personalLinks.removeClass('expanded');
		if(mobile.matches) $('#pt-talk-alert a').text('새 메시지');
	}
	var mobile = matchMedia('(max-width:825px)'); // 모바일 버전을 벗어나도 825px까지는 글자수 줄임 (의도적)
	var collapsed = matchMedia('(max-width:750px)');
	if(!mw.user.isAnon()) {
		mw.loader.using('oojs-ui.styles.icons-interactions');
		$('#pt-mytalk').after('<li id="pt-expand"><a class="oo-ui-icon-ellipsis" title="개인 링크 더보기" /></li>');
		$('#p-personal ul').append('<li id="pt-collapse"><a class="oo-ui-icon-close" title="닫기" /></li>');
		if(mobile.matches) $('#pt-talk-alert a').text('새 메시지');
		if(collapsed.matches) collapse();
		$('#pt-expand > a').click(function() {
			if(mobile.matches) $('#pt-talk-alert a').text('새 토론 문서 메시지가 있습니다');
		    $('#p-personal ul').addClass('expanded');
		});
		$('#pt-collapse > a, #content').click(collapse);
		collapsed.addEventListener('change', function(media) {
			if(media.matches) collapse();
		});
		mobile.addEventListener('change', function(media) {
			if(media.matches) $('#pt-talk-alert a').text('새 메시지');
			else $('#pt-talk-alert a').text('새 토론 문서 메시지가 있습니다');
		});
	}
}
$(vectorHidePersonalLink);

/**
 * 탭이 넘치면 자동으로 숨김
 * 제작자: [[사용자:hsl0|hsl0]]
**/
/*
function vectorCollapseNavTabs() {
	function collapse() {
		var count = 1;
		while($('#p-views li').length > count && (
			$('#left-navigation li:first-child')[0].getBoundingClientRect().y !== $('#left-navigation li:last-child')[0].getBoundingClientRect().y ||
		    $('#right-navigation li:first-child')[0].getBoundingClientRect().y !== $('#p-cactions input')[0].getBoundingClientRect().y
		)) {
			$.collapsibleTabs.moveToCollapsed($($('#p-views li').get().reverse()[1]));
			count++;
		}
	}
	function expand() {
		var count = 1;
		var $target = $($('#p-cactions li')[0]);
		while($('#p-cactions li').length > count && (
			$('#left-navigation li:first-child')[0].getBoundingClientRect().y === $('#left-navigation li:last-child')[0].getBoundingClientRect().y &&
		    $('#right-navigation li:first-child')[0].getBoundingClientRect().y === $('#p-cactions input')[0].getBoundingClientRect().y
		)) {
			$.collapsibleTabs.moveToExpanded($target);
			count++;
		}
	}
	
	var beforeWidth = innerWidth;
	
	setTimeout(collapse, 0);
	
	addEventListener('resize', function() {
		if(innerWidth !== beforeWidth) {
			expand();
			setTimeout(collapse, 350);
		}
		beforeWidth = innerWidth;
	});
}
$(vectorCollapseNavTabs);
*/