PageSourceSearch

https://www.kuroshitsuji.tv/emeraldwitch/assets/js/common.js

js kuroshitsuji.tv collected 2026-10-02 03:39:06 UTC 4,575 bytes, 181 lines download raw bytes

1/*
2const lns = new Lenis();
3function raf(time) {
4	lns.raf(time)
5	requestAnimationFrame(raf)
6}
7requestAnimationFrame(raf)
8*/
9/*-----------------------------------------------
10 * Modal
11-------------------------------------------------*/
12/**
13 * Normal modal
14 */
15function normalModal(_mid) {
16	$('#js-normalModal').fadeIn(500);
17	$('#js-' + _mid).fadeIn(500);
18	$('body').css({'overflow':'hidden'});
19}
20
21// Close
22function normalModalClose() {
23	$('#js-normalModal, .js-oneModal').fadeOut(500);
24	$('body').css({'overflow':''});
25}
26
27// Close - クリックイベント
28$('.js-normalModalIn').on('click touchend', function(e) {
29	if (!$(e.target).closest('.js-normalModalIn__cont').length) {
30		normalModalClose();
31	}
32});
33$('.js-normalModal-close').on('click', function() {
34	normalModalClose();
35});
36
37
38/**
39 * Youtube modal
40 */
41function youtubeModal(_ytid, _ytTime) {
42	$('#js-youtubeModal').fadeIn(500);
43	$('body').css({'overflow':'hidden'});
44	let ytURL = 'https://www.youtube.com/embed/'+_ytid+'?autoplay=1&rel=0';
45	if(_ytTime){
46		ytURL = ytURL + '&start=' + _ytTime;
47	}
48	setTimeout(function(){
49		$('.js-youtubeIframe').attr('src',ytURL);
50	},100);
51}
52
53// Close
54function youtubeModalClose() {
55	$('#js-youtubeModal').fadeOut(500);
56	$('body').css({'overflow':''});
57
58	setTimeout(function(){
59		$('.js-youtubeIframe').attr('src','');
60	},500);
61}
62
63// Close - クリックイベント
64$('.js-youtubeModalIn').on('click touchend', function(e) {
65	if (!$(e.target).closest('.js-youtubeModalIn__cont').length) {
66		youtubeModalClose();
67	}
68});
69$('.js-youtubeModal-close').on('click', function() {
70	youtubeModalClose();
71});
72
73
74/**
75 * Comment modal
76 */
77function commentModal(_cid) {
78	const commentURL = './comment/'+_cid+'.html';
79	$('.js-commentModalIn__cont').load(commentURL,function(){
80		$('#js-commentModal').fadeIn(500);
81		$("body").css({'overflow':'hidden'});
82	});
83}
84
85// Close
86function commentModalClose() {
87	$('#js-commentModal').fadeOut(500, function(){
88		$('.js-commentModalIn__cont').html('');
89	});
90	$('body').css({'overflow':''});
91}
92
93// Close - クリックイベント
94$('.js-commentModalIn').on('click touchend', function(e) {
95	if (!$(e.target).closest('.js-commentModalIn__cont').length) {
96		commentModalClose();
97	}
98});
99$('.js-commentModal-close').on('click', function() {
100	commentModalClose();
101});
102
103/**
104 * Image modal
105 */
106function imageModal(_imagefile) {
107	$('#js-imageModal').fadeIn(500);
108	$("body").css({'overflow':'hidden'});
109	$(".js-modalImgIn").html('<img src="'+_imagefile+'" onmousedown="return false" oncopy="return false" onselectstart="return false" oncontextmenu="return false">');
110}
111
112// Close
113function imageModalClose() {
114	$('#js-imageModal').fadeOut(500, function(){
115		$(".js-modalImgIn").html('');
116	});
117	$('body').css({'overflow':''});
118}
119
120// Close - クリックイベント
121$('.js-imageModalIn').on('click touchend', function(e) {
122	if (!$(e.target).closest('.js-imageModalIn__cont').length) {
123		imageModalClose();
124	}
125});
126$('.js-imageModal-close').on('click', function() {
127	imageModalClose();
128});
129
130/*-----------------------------------------------
131youtube
132-------------------------------------------------*/
133// youtube thumbnail
134if($('.js-topYtThumb')[0]){
135	$('.js-topYtThumb').each(function(){
136		var ytID = $(this).data('ytid');
137		$(this).css({'background-image':'url(https://img.youtube.com/vi/'+ytID+'/maxresdefault.jpg)'})
138	});
139}
140/*-----------------------------------------------
141-------------------------------------------------*/
142// Anchor smooth scroll
143$('.js-anchor').on('click', function(){
144	var speed = 1000;
145	var href= $(this).attr("href");
146	var target = $(href == "#" || href == "" ? 'html' : href);
147	var position = target.offset().top;
148	$('body,html').animate({scrollTop:position}, speed, 'easeOutQuart');
149	return false;
150});
151
152// Anchor smooth scroll
153$('.js-anchorlink').on('click', function(){
154	var speed = 1000;
155	var href= $(this).attr("href");
156	var target = $(href == "#" || href == "" ? 'html' : href);
157	var position = target.offset().top;
158	$('body,html').animate({scrollTop:position}, speed, 'easeOutQuart');
159});
160
161// Menu
162$('.js-menu').on('click', function(){
163	$(this).toggleClass('is-active');
164	if($(this).hasClass('is-active')){
165		$('.js-header').addClass('is-active');
166		$('html').css({'overflow':'hidden'});
167		//$('#fullWrap').css('position','fixed');
168
169	} else {
170		$('.js-header').removeClass('is-active');
171		$('html').css('overflow','');
172		//$('#fullWrap').css('position','relative');
173	}
174});
175
176// pagetop
177$(document).on('click', '.js-pagetop', function(){
178	var speed = 1000;
179	$('body,html').animate({scrollTop:0}, speed, 'easeOutQuart');
180	return false;
181});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.