Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita53fdeb

Browse files
authored
More friendly any() with arrays. General cleanup.
1 parentad0e78b commita53fdeb

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

‎surreal.js

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,26 @@ let $ = { // Convenience for internals.
99
// Table of contents and convenient call chaining sugar. For a familiar "jQuery like" syntax. 🙂
1010
// Check before adding new: https://youmightnotneedjquery.com/
1111
sugar(e){
12-
if(e==null){console.warn(`Surreal: Cannot use "${e}". Missing a character?`)}
12+
if($.isNodeList(e)){e.forEach(_=>{$.sugar(_)})}// Apply Surreal to nodes in array as well as the array.
13+
if(!$.isNode(e)&&!$.isNodeList(e)){console.warn(`Surreal: Not a supported element / node / array of nodes "${e}"`);returne}
1314
if(e.hasOwnProperty('hasSurreal'))returne// Surreal already applied
1415

1516
// General
16-
e.run=(value)=>{return$.run(e,value)}
17+
e.run=(f)=>{return$.run(e,f)}
1718
e.remove=()=>{return$.remove(e)}
1819

1920
// Classes and CSS.
2021
e.classAdd=(name)=>{return$.classAdd(e,name)}
21-
e.class_add=e.add_class=e.addClass=e.classAdd// Alias
22+
e.class_add=e.add_class=e.addClass=e.classAdd// Alias
2223
e.classRemove=(name)=>{return$.classRemove(e,name)}
2324
e.class_remove=e.remove_class=e.removeClass=e.classRemove// Alias
2425
e.classToggle=(name,force)=>{return$.classToggle(e,name,force)}
2526
e.class_toggle=e.toggle_class=e.toggleClass=e.classToggle// Alias
2627
e.styles=(value)=>{return$.styles(e,value)}
2728

2829
// Events.
29-
e.on=(name,fn)=>{return$.on(e,name,fn)}
30-
e.off=(name,fn)=>{return$.off(e,name,fn)}
30+
e.on=(name,f)=>{return$.on(e,name,f)}
31+
e.off=(name,f)=>{return$.off(e,name,f)}
3132
e.offAll=(name)=>{return$.offAll(e,name)}
3233
e.off_all=e.offAll// Alias
3334
e.disable=()=>{return$.disable(e)}
@@ -66,16 +67,17 @@ let $ = { // Convenience for internals.
6667
// Returns an Array of elements (so you can use methods like forEach/filter/map/reduce if you want).
6768
// Example: any('button')
6869
any(selector,start=document,warning=true){
69-
if(selector==null)return$.sugar([start.currentScript.parentElement])//Just local me() in <script>
70+
if(selector==null)return$.sugar([start.currentScript.parentElement])//Similar to me()
7071
if(selectorinstanceofEvent)returnselector.currentTarget ?$.any(selector.currentTarget) :(console.warn(`Surreal: Event currentTarget is null. Please save your element because async will lose it`),null)// Events try currentTarget
7172
if(selector==='-'||selector==='prev'||selector==='previous')return$.sugar([start.currentScript.previousElementSibling])// Element directly before <script>
7273
if($.isSelector(selector,start,warning))return$.sugar(Array.from(start.querySelectorAll(selector)))// String selector.
7374
if($.isNode(selector))return$.sugar([selector])// Single element. Convert to Array.
7475
if($.isNodeList(selector))return$.sugar(Array.from(selector))// Valid NodeList or Array.
75-
returnnull// Invalid.
76+
return$.sugar([])// Invalid.
7677
},
7778
// Run any function on element(s)
7879
run(e,f){
80+
if(typeoff!=='function'){console.warn(`Surreal: run(f) f must be a function`);returne}
7981
if($.isNodeList(e))e.forEach(_=>{$.run(_,f)})
8082
if($.isNode(e)){f(e);}
8183
returne
@@ -88,24 +90,23 @@ let $ = { // Convenience for internals.
8890
},
8991
// Add class to element(s).
9092
classAdd(e,name){
91-
if(e===null||(Array.isArray(e)&&e.length===0))returnnull
92-
if(typeofname!=='string')returnnull
93+
if(typeofname!=='string')returne
9394
if(name.charAt(0)==='.')name=name.substring(1)
9495
if($.isNodeList(e))e.forEach(_=>{$.classAdd(_,name)})
9596
if($.isNode(e))e.classList.add(name)
9697
returne
9798
},
9899
// Remove class from element(s).
99100
classRemove(e,name){
100-
if(typeofname!=='string')returnnull
101+
if(typeofname!=='string')returne
101102
if(name.charAt(0)==='.')name=name.substring(1)
102103
if($.isNodeList(e))e.forEach(_=>{$.classRemove(_,name)})
103104
if($.isNode(e))e.classList.remove(name)
104105
returne
105106
},
106107
// Toggle class in element(s).
107108
classToggle(e,name,force){
108-
if(typeofname!=='string')returnnull
109+
if(typeofname!=='string')returne
109110
if(name.charAt(0)==='.')name=name.substring(1)
110111
if($.isNodeList(e))e.forEach(_=>{$.classToggle(_,name,force)})
111112
if($.isNode(e))e.classList.toggle(name,force)
@@ -126,21 +127,20 @@ let $ = { // Convenience for internals.
126127
if($.isNode(e)){Object.assign(e.style,value)}
127128
returne
128129
}
130+
returne
129131
},
130132
// Add event listener to element(s).
131-
// Match a sender: if(!event.target.matches(".selector")) return;
133+
// Match a sender: if(!event.target.matches(".selector")) return;
132134
//📚️ https://developer.mozilla.org/en-US/docs/Web/API/Event
133135
//✂️ Vanilla: document.querySelector(".thing").addEventListener("click", (e) => { alert("clicked") }
134-
on(e,name,fn){
135-
if(typeofname!=='string')returnnull
136-
if($.isNodeList(e))e.forEach(_=>{$.on(_,name,fn)})
137-
if($.isNode(e))e.addEventListener(name,fn)
136+
on(e,name,f){
137+
if($.isNodeList(e))e.forEach(_=>{$.on(_,name,f)})
138+
if($.isNode(e))e.addEventListener(name,f)
138139
returne
139140
},
140-
off(e,name,fn){
141-
if(typeofname!=='string')returnnull
142-
if($.isNodeList(e))e.forEach(_=>{$.off(_,name,fn)})
143-
if($.isNode(e))e.removeEventListener(name,fn)
141+
off(e,name,f){
142+
if($.isNodeList(e))e.forEach(_=>{$.off(_,name,f)})
143+
if($.isNode(e))e.removeEventListener(name,f)
144144
returne
145145
},
146146
offAll(e){
@@ -173,8 +173,8 @@ let $ = { // Convenience for internals.
173173
// Halt event. Default: Stops normal event actions and event propagation.
174174
halt(ev,keepBubbling=false,keepDefault=false){
175175
if(evinstanceofEvent){
176-
if(!keepDefault)ev.preventDefault()
177-
if(!keepBubbling)ev.stopPropagation()
176+
if(!keepDefault)ev.preventDefault()
177+
if(!keepBubbling)ev.stopPropagation()
178178
}
179179
returnev
180180
},
@@ -225,9 +225,9 @@ let $ = { // Convenience for internals.
225225
},
226226
// ⚙️ Used internally by DOM functions. Warning when selector is invalid. Likely missing a "#" or "."
227227
isSelector(selector="",start=document,warning=true){
228-
if(typeofselector!=='string')returnfalse
228+
if(typeofselector!=='string')returnfalse
229229
if(start.querySelector(selector)==null){
230-
if(warning)console.warn(`Surreal: "${selector}"wasnot found. Missing a character? (. #)`)
230+
if(warning)console.log(`Surreal: "${selector}" not found, ignoring.`)
231231
returnfalse
232232
}
233233
returntrue// Valid.
@@ -243,25 +243,25 @@ return $
243243
functionpluginEffects(e){
244244
// Fade out and remove element.
245245
// Equivalent to jQuery fadeOut(), but actually removes the element!
246-
functionfadeOut(e,fn=false,ms=1000,remove=true){
246+
functionfadeOut(e,f=undefined,ms=1000,remove=true){
247247
letthing=e
248-
if(surreal.isNodeList(e))e.forEach(_=>{fadeOut(_,fn,ms)})
248+
if(surreal.isNodeList(e))e.forEach(_=>{fadeOut(_,f,ms)})
249249
if(surreal.isNode(e)){
250250
(async()=>{
251251
surreal.styles(e,{transform:'scale(1)',transition:`all${ms}ms ease-out`,overflow:'hidden'})
252252
awaittick()
253253
surreal.styles(e,{transform:'scale(0.9)',opacity:'0'})
254254
awaitsleep(ms,e)
255-
if(typeoffn==='function')fn(thing)// Run custom callback?
255+
if(typeoff==='function')f(thing)// Run custom callback?
256256
if(remove)surreal.remove(thing)// Remove element after animation is completed?
257257
})()
258258
}
259259
}
260260
// Fade in an element that has opacity under 1
261-
functionfadeIn(e,fn=false,ms=1000){
261+
functionfadeIn(e,f=undefined,ms=1000){
262262
letthing=e
263-
if(surreal.isNodeList(e))e.forEach(_=>{fadeIn(_,fn,ms)})
264-
if(surreal.isNode(e)){
263+
if(surreal.isNodeList(e))e.forEach(_=>{fadeIn(_,f,ms)})
264+
if(surreal.isNode(e)){
265265
(async()=>{
266266
letsave=e.style// Store original style.
267267
surreal.styles(e,{transition:`all${ms}ms ease-in`,overflow:'hidden'})
@@ -270,14 +270,14 @@ function pluginEffects(e) {
270270
awaitsleep(ms,e)
271271
e.style=save// Revert back to original style.
272272
surreal.styles(e,{opacity:'1'})// Ensure we're visible after reverting to original style.
273-
if(typeoffn==='function')fn(thing)// Run custom callback?
273+
if(typeoff==='function')f(thing)// Run custom callback?
274274
})()
275275
}
276276
}
277277
// Add sugar
278-
e.fadeOut=(fn,ms,remove)=>{returnfadeOut(e,fn,ms,remove)}
278+
e.fadeOut=(f,ms,remove)=>{returnfadeOut(e,f,ms,remove)}
279279
e.fade_out=e.fadeOut
280-
e.fadeIn=(fn,ms)=>{returnfadeIn(e,fn,ms)}
280+
e.fadeIn=(f,ms)=>{returnfadeIn(e,f,ms)}
281281
e.fade_in=e.fadeIn
282282
}
283283

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp