| 🌟 | 現在、 鉄壁HSは通常HSと同じダメージになります。LMG及びDMR、チャージライフル、ハンマーポイント弾を除き、すべてのダメージ値が一致していることを確認しています。  | 
「MediaWiki:Common.js」の版間の差分
		
		
		
		
		
		ナビゲーションに移動
		検索に移動
		
				
		
		
	
 (ダメージ表を均一の幅に保つJavaScriptで最大のwidthを整数に切り上げるように変更)  | 
				 (row-stickyクラスが付与されたtrのstuck状態を監視する機能を追加)  | 
				||
| 58行目: | 58行目: | ||
		$(elem).find(targetSelector).first().width(col_width)  | 		$(elem).find(targetSelector).first().width(col_width)  | ||
	});  | 	});  | ||
}  | |||
function observeRowStickyStuckState() {  | |||
	if (typeof IntersectionObserver === 'function') {  | |||
		var stuckClassname = 'row-sticky--stuck'  | |||
		new IntersectionObserver(function(entries, observer) {  | |||
			var entry = entries[0]  | |||
			if (!entry.isIntersecting) {  | |||
				entry.target.classList.add(stuckClassname)  | |||
			} else {  | |||
				entry.target.classList.remove(stuckClassname)  | |||
			}  | |||
		}, { threshold: [1] }).observe(document.querySelector('.row-sticky'))  | |||
	}  | |||
}  | }  | ||
| 69行目: | 83行目: | ||
		.mouseleave(hideTooltip);  | 		.mouseleave(hideTooltip);  | ||
	updateWidth(targetClassname);  | 	updateWidth(targetClassname);  | ||
	observeRowStickyStuckState();  | |||
});  | });  | ||
2021年2月28日 (日) 21:23時点における版
/* ここにあるすべてのJavaScriptは、すべてのページ読み込みですべての利用者に対して読み込まれます */
var tooltip
function updatePosition(e) {
	var obj = $(e.currentTarget)
	var offset = obj.offset()
	var y = offset.top + obj.outerHeight()
	var maxY = $(window).scrollTop() + $(window).height() - $('#tooltip').outerHeight()
	if (y > maxY) {
		y = offset.top - obj.outerHeight()
	}
	tooltip
		.css('left', Math.min(
			$(window).width() - tooltip.outerWidth(),
			Math.round(offset.left - 0.5 * (tooltip.outerWidth() - obj.outerWidth()))))
		.css('top', y)
}
function unescapeHtml(html) {
	return html
		.replace(/"/g, '"')
		.replace(/&/g, '&')
}
function showTooltip(e) {
	var escaped = $(this).attr('data-tooltip')
	var html = unescapeHtml(escaped)
	tooltip
		.css('display', 'block')
		.html(html)
	updatePosition(e)
	$(this).mousemove(updatePosition)
}
function hideTooltip(e) {
	tooltip.css('display', '')
	$(this).off('mousemove')
}
function updateWidth(classname) {
	var targetSelector = 'tr:first th:nth-child(2), tr:first td:nth-child(2)'
	
	// Reset the max width of each column in each table.
	$("." + classname).each(function(index, elem) {
		$(elem).find(targetSelector).first().width('')
	});
	
	// Find the max width of each column across all tables.
	var col_width = 0
	$("." + classname).each(function(index, elem) {
		col_width = Math.max(
			col_width,
			Math.ceil($(elem).find(targetSelector).first().width()))
	});
	
	// Set each column in each table to the max width of that column across all tables.
	$("." + classname).each(function(index, elem) {
		$(elem).find(targetSelector).first().width(col_width)
	});
}
function observeRowStickyStuckState() {
	if (typeof IntersectionObserver === 'function') {
		var stuckClassname = 'row-sticky--stuck'
		new IntersectionObserver(function(entries, observer) {
			var entry = entries[0]
			if (!entry.isIntersecting) {
				entry.target.classList.add(stuckClassname)
			} else {
				entry.target.classList.remove(stuckClassname)
			}
		}, { threshold: [1] }).observe(document.querySelector('.row-sticky'))
	}
}
var targetClassname = 'damagetable'
$(window).resize(updateWidth.bind(null, targetClassname));
$(function(){
	tooltip = $("<div>", { id: 'tooltip' }).appendTo('body');
	$('[data-tooltip]')
		.mouseenter(showTooltip)
		.mouseleave(hideTooltip);
	updateWidth(targetClassname);
	observeRowStickyStuckState();
});