PageSourceSearch

https://www.roossientweewielers.nl/includes/js/image-hover-touch.js

js roossientweewielers.nl collected 2026-10-08 23:47:55 UTC 3,369 bytes, 133 lines download raw bytes

vendor: 2,260 bytes, lines 1-88
1/* ------------------------------------------------------------ *\
2|* ------------------------------------------------------------ *|
3|* classie.js
4|* https://github.com/desandro/classie/blob/master/classie.js
5|* ------------------------------------------------------------ *|
6\* ------------------------------------------------------------ */
7( function( window ) {
8
9'use strict';
10
11// class helper functions from bonzo https://github.com/ded/bonzo
12
13function classReg( className ) {
14  return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
15}
16
17// classList support for class management
18// altho to be fair, the api sucks because it won't accept multiple classes at once
19var hasClass, addClass, removeClass;
20
21if ( 'classList' in document.documentElement ) {
22  hasClass = function( elem, c ) {
23    return elem.classList.contains( c );
24  };
25  addClass = function( elem, c ) {
26    elem.classList.add( c );
27  };
28  removeClass = function( elem, c ) {
29    elem.classList.remove( c );
30  };
31}
32else {
33  hasClass = function( elem, c ) {
34    return classReg( c ).test( elem.className );
35  };
36  addClass = function( elem, c ) {
37    if ( !hasClass( elem, c ) ) {
38      elem.className = elem.className + ' ' + c;
39    }
40  };
41  removeClass = function( elem, c ) {
42    elem.className = elem.className.replace( classReg( c ), ' ' );
43  };
44}
45
46function toggleClass( elem, c ) {
47  var fn = hasClass( elem, c ) ? removeClass : addClass;
48  fn( elem, c );
49}
50
51var classie = {
52  // full names
53  hasClass: hasClass,
54  addClass: addClass,
55  removeClass: removeClass,
56  toggleClass: toggleClass,
57  // short names
58  has: hasClass,
59  add: addClass,
60  remove: removeClass,
61  toggle: toggleClass
62};
63
64// transport
65if ( typeof define === 'function' && define.amd ) {
66  // AMD
67  define( classie );
68} else {
69  // browser global
70  window.classie = classie;
71}
72
73})( window );
74
75
76
77
78/* ------------------------------------------------------------ *\
79|* ------------------------------------------------------------ *|
80|* Functionality for adding/removing classes
81|* ------------------------------------------------------------ *|
82\* ------------------------------------------------------------ */
83(function(window){
84
85	// check for touch
86	if (Modernizr.touch) {
87
88		// run the forEach on each figure element
89		[].slice.call(document.querySelectorAll("figure")).forEach(function(el,i){
90
91			// get close-caption button in variable
92			var closeCaption = el.querySelector(".close-caption");
93
94			// show the close-caption button
95			classie.remove(closeCaption,"hidden");
96
97			// check if the user moves a finger
98			var fingerMove = false;
99			el.addEventListener("touchmove",function(e){
100				e.stopPropagation();
101				fingerMove = true;
102			});
103
104			// always reset fingerMove to false on touch start
105			el.addEventListener("touchstart",function(e){
106				e.stopPropagation();
107				fingerMove = false;
108			});
109
110			// add hover class if figure touchend and fingerMove is false
111			el.addEventListener("touchend",function(e){
112				e.stopPropagation();
113				if (fingerMove == false) {
114					classie.add(el,"hover");
115				}
116			});
117
118			// if close-caption button clicked, remove hover class
119			closeCaption.addEventListener("touchend",function(e){
120				e.preventDefault();
121				e.stopPropagation();
122				if (fingerMove == false) {
123					if (classie.has(el,"hover")) {
124						classie.remove(el,"hover");
125					}
126				}
127			});
128
129		});
130
131	}
132
133})(window);

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.