Compare commits
17 Commits
feature/fl
...
ed3bd14fc7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed3bd14fc7 | ||
|
|
1f76d6a942 | ||
|
|
a7c3f4dd02 | ||
|
|
768e1bb464 | ||
|
|
6a7a13a09c | ||
|
|
81c619228b | ||
|
|
d4577caff3 | ||
|
|
b07f92f492 | ||
|
|
e890a581a4 | ||
|
|
15dbeee834 | ||
|
|
90ade370d7 | ||
|
|
c1a64450d2 | ||
|
|
475c959420 | ||
|
|
d8a9ba6619 | ||
|
|
dbe3aee539 | ||
|
|
142ba0bd8a | ||
|
|
ca6fb42493 |
29
README.md
29
README.md
@@ -256,3 +256,32 @@ einfach ans ende der seite, rest macht das script
|
||||
<link rel="stylesheet" href="/cssjs/flag.css">
|
||||
</body>
|
||||
```
|
||||
|
||||
## js error sammler
|
||||
in den header, am besten vor allen anderen js
|
||||
```
|
||||
<script src="/cssjs/js-error-logger.min.js"></script>
|
||||
```
|
||||
|
||||
## Fader
|
||||
```
|
||||
<link rel="stylesheet" href="/cssjs/fade.min.css" />
|
||||
|
||||
<div class="fadeable">...</div>
|
||||
```
|
||||
|
||||
zum ein und ausfaden einfach die class "visible" hinzufügen oder entfernen
|
||||
|
||||
## Ajax ToolTip
|
||||
benötigt "Fader"
|
||||
|
||||
```
|
||||
<link rel="stylesheet" href="/cssjs/itooltip.min.css" />
|
||||
...
|
||||
|
||||
<a href="bla" class="itooltip" data-url="tooltip-url">blub</a>
|
||||
|
||||
...
|
||||
<script src="/cssjs/itooltip.min.js"></script>
|
||||
|
||||
```
|
||||
10
fade.css
Normal file
10
fade.css
Normal file
@@ -0,0 +1,10 @@
|
||||
.fadeable {
|
||||
opacity: 0;
|
||||
margin-top: -30px;
|
||||
transition: margin-top 0.2s,opacity 0.2s;
|
||||
}
|
||||
|
||||
.fadeable.visible {
|
||||
opacity: 1;
|
||||
margin-top: 0;
|
||||
}
|
||||
1
fade.min.css
vendored
Normal file
1
fade.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.fadeable{opacity:0;margin-top:-30px;transition:margin-top .2s,opacity .2s}.fadeable.visible{opacity:1;margin-top:0}
|
||||
8
flag.js
8
flag.js
@@ -3,6 +3,9 @@
|
||||
|
||||
var iframe;
|
||||
var flag;
|
||||
var col = 'light';
|
||||
//TODO color css
|
||||
//TODO abbrechen close anders
|
||||
|
||||
var closeFlag = function(ev) {
|
||||
flag.classList.add('closing');
|
||||
@@ -12,7 +15,6 @@
|
||||
flag.remove();
|
||||
},500);
|
||||
},3000);
|
||||
//TODO timeout und vanish
|
||||
}
|
||||
|
||||
var openFlag = function(ev) {
|
||||
@@ -25,7 +27,7 @@
|
||||
document.body.appendChild(flag);
|
||||
|
||||
var form = document.createElement('form');
|
||||
form.action = connector;
|
||||
form.action = connector+"?col="+col;
|
||||
form.target = 'flag-iframe';
|
||||
form.method = 'POST';
|
||||
const screenshotTarget = document.body;
|
||||
@@ -38,6 +40,8 @@
|
||||
fields['s'] = window.location.hostname;
|
||||
if(document.referrer) {fields['r'] = document.referrer;}
|
||||
if(window.location.href) {fields['u'] = window.location.href;}
|
||||
if(navigator.userAgent) {fields['a'] = navigator.userAgent;}
|
||||
fields['d'] = ''+window.screen.width+'x'+window.screen.height+' ('+window.screen.colorDepth+'bit)';
|
||||
|
||||
for(var f in fields) {
|
||||
var inp = document.createElement('input');
|
||||
|
||||
2
flag.min.js
vendored
2
flag.min.js
vendored
@@ -1,2 +1,2 @@
|
||||
!function(connector){"use strict";var iframe,flag,closeFlag=function(ev){flag.classList.add("closing"),setTimeout((function(){flag.style.opacity=0,setTimeout((function(){flag.remove()}),500)}),3e3)},openFlag=function(ev){(flag=document.createElement("div")).id="flag-overlay",(iframe=document.createElement("iframe")).src="",iframe.name="flag-iframe",flag.appendChild(iframe),document.body.appendChild(flag);var form=document.createElement("form");form.action=connector,form.target="flag-iframe",form.method="POST";const screenshotTarget=document.body;var fields={};for(var f in fields.s=window.location.hostname,document.referrer&&(fields.r=document.referrer),window.location.href&&(fields.u=window.location.href),fields){var inp=document.createElement("input");inp.type="hidden",inp.name=f,inp.value=fields[f],form.appendChild(inp)}form.style="display:none",document.body.appendChild(form),form.submit()},panel=document.createElement("div");panel.id="flag-panel";var tab=document.createElement("span");tab.innerHTML="⚑",tab.addEventListener("mouseenter",(function(ev){panel.classList.contains("opened")||panel.classList.add("opened"),panel.classList.toggle("open")}));var button=document.createElement("button");button.innerHTML="Problem melden",button.addEventListener("click",openFlag),window.addEventListener("message",event=>{"close"==event.data&&closeFlag()});var links=document.getElementsByClassName("flag-link");if(links.length>0)for(var l in links)console.log(links),links[l].addEventListener("click",(function(ev){return openFlag(ev),ev.preventDefault(),!1}));panel.appendChild(tab),panel.appendChild(button),document.body.appendChild(panel)}("https://troy-grunt.de/feedback");
|
||||
!function(connector){"use strict";var iframe,flag,col="light",closeFlag=function(ev){flag.classList.add("closing"),setTimeout((function(){flag.style.opacity=0,setTimeout((function(){flag.remove()}),500)}),3e3)},openFlag=function(ev){(flag=document.createElement("div")).id="flag-overlay",(iframe=document.createElement("iframe")).src="",iframe.name="flag-iframe",flag.appendChild(iframe),document.body.appendChild(flag);var form=document.createElement("form");form.action=connector+"?col="+col,form.target="flag-iframe",form.method="POST";const screenshotTarget=document.body;var fields={};for(var f in fields.s=window.location.hostname,document.referrer&&(fields.r=document.referrer),window.location.href&&(fields.u=window.location.href),navigator.userAgent&&(fields.a=navigator.userAgent),fields.d=window.screen.width+"x"+window.screen.height+" ("+window.screen.colorDepth+"bit)",fields){var inp=document.createElement("input");inp.type="hidden",inp.name=f,inp.value=fields[f],form.appendChild(inp)}form.style="display:none",document.body.appendChild(form),form.submit()},panel=document.createElement("div");panel.id="flag-panel";var tab=document.createElement("span");tab.innerHTML="⚑",tab.addEventListener("mouseenter",(function(ev){panel.classList.contains("opened")||panel.classList.add("opened"),panel.classList.toggle("open")}));var button=document.createElement("button");button.innerHTML="Problem melden",button.addEventListener("click",openFlag),window.addEventListener("message",event=>{"close"==event.data&&closeFlag()});var links=document.getElementsByClassName("flag-link");if(links.length>0)for(var l in links)console.log(links),links[l].addEventListener("click",(function(ev){return openFlag(ev),ev.preventDefault(),!1}));panel.appendChild(tab),panel.appendChild(button),document.body.appendChild(panel)}("https://troy-grunt.de/feedback");
|
||||
//# sourceMappingURL=flag.min.js.map
|
||||
@@ -7,6 +7,7 @@
|
||||
"connector",
|
||||
"iframe",
|
||||
"flag",
|
||||
"col",
|
||||
"closeFlag",
|
||||
"ev",
|
||||
"classList",
|
||||
@@ -35,6 +36,12 @@
|
||||
"hostname",
|
||||
"referrer",
|
||||
"href",
|
||||
"navigator",
|
||||
"userAgent",
|
||||
"screen",
|
||||
"width",
|
||||
"height",
|
||||
"colorDepth",
|
||||
"inp",
|
||||
"type",
|
||||
"value",
|
||||
@@ -56,6 +63,6 @@
|
||||
"log",
|
||||
"preventDefault"
|
||||
],
|
||||
"mappings": "CAAA,SAAUA,WACR,aAEA,IAAIC,OACAC,KAEAC,UAAY,SAASC,IACvBF,KAAKG,UAAUC,IAAI,WACnBC,YAAW,WACTL,KAAKM,MAAMC,QAAU,EACrBF,YAAW,WACTL,KAAKQ,WACL,OACF,MAIAC,SAAW,SAASP,KACtBF,KAAOU,SAASC,cAAc,QACzBC,GAAK,gBACVb,OAASW,SAASC,cAAc,WACzBE,IAAK,GACZd,OAAOe,KAAO,cACdd,KAAKe,YAAYhB,QACjBW,SAASM,KAAKD,YAAYf,MAE1B,IAAIiB,KAAOP,SAASC,cAAc,QAClCM,KAAKC,OAASpB,UACdmB,KAAKE,OAAS,cACdF,KAAKG,OAAS,OACd,MAAMC,iBAAmBX,SAASM,KAMlC,IAAIM,OAAS,GAKb,IAAI,IAAIC,KAJRD,OAAU,EAAIE,OAAOC,SAASC,SAC3BhB,SAASiB,WAAWL,OAAU,EAAIZ,SAASiB,UAC3CH,OAAOC,SAASG,OAAON,OAAU,EAAIE,OAAOC,SAASG,MAE3CN,OAAQ,CACnB,IAAIO,IAAMnB,SAASC,cAAc,SACjCkB,IAAIC,KAAO,SACXD,IAAIf,KAAOS,EACXM,IAAIE,MAAQT,OAAOC,GACnBN,KAAKF,YAAYc,KAGnBZ,KAAKX,MAAQ,eACbI,SAASM,KAAKD,YAAYE,MAC1BA,KAAKe,UAGHC,MAAQvB,SAASC,cAAc,OACnCsB,MAAMrB,GAAK,aAEX,IAAIsB,IAAMxB,SAASC,cAAc,QACjCuB,IAAIC,UAAY,UAChBD,IAAIE,iBAAiB,cAAa,SAASlC,IACrC+B,MAAM9B,UAAUkC,SAAS,WAC3BJ,MAAM9B,UAAUC,IAAI,UAEtB6B,MAAM9B,UAAUmC,OAAO,WAGzB,IAAIC,OAAS7B,SAASC,cAAc,UAEpC4B,OAAOJ,UAAY,iBACnBI,OAAOH,iBAAiB,QAAQ3B,UAEhCe,OAAOY,iBAAiB,UAAYI,QAEjB,SAAdA,MAAMC,MACPxC,cAIJ,IAAIyC,MAAQhC,SAASiC,uBAAuB,aAC5C,GAAGD,MAAME,OAAS,EAChB,IAAI,IAAIC,KAAKH,MACXI,QAAQC,IAAIL,OACZA,MAAMG,GAAGT,iBAAiB,SAAQ,SAASlC,IAGzC,OAFAO,SAASP,IACTA,GAAG8C,kBACI,KAKbf,MAAMlB,YAAYmB,KAClBD,MAAMlB,YAAYwB,QAElB7B,SAASM,KAAKD,YAAYkB,OA7F5B,CA8FG",
|
||||
"mappings": "CAAA,SAAUA,WACR,aAEA,IAAIC,OACAC,KACAC,IAAM,QAINC,UAAY,SAASC,IACvBH,KAAKI,UAAUC,IAAI,WACnBC,YAAW,WACTN,KAAKO,MAAMC,QAAU,EACrBF,YAAW,WACTN,KAAKS,WACL,OACF,MAGAC,SAAW,SAASP,KACtBH,KAAOW,SAASC,cAAc,QACzBC,GAAK,gBACVd,OAASY,SAASC,cAAc,WACzBE,IAAK,GACZf,OAAOgB,KAAO,cACdf,KAAKgB,YAAYjB,QACjBY,SAASM,KAAKD,YAAYhB,MAE1B,IAAIkB,KAAOP,SAASC,cAAc,QAClCM,KAAKC,OAASrB,UAAU,QAAQG,IAChCiB,KAAKE,OAAS,cACdF,KAAKG,OAAS,OACd,MAAMC,iBAAmBX,SAASM,KAMlC,IAAIM,OAAS,GAOb,IAAI,IAAIC,KANRD,OAAU,EAAIE,OAAOC,SAASC,SAC3BhB,SAASiB,WAAWL,OAAU,EAAIZ,SAASiB,UAC3CH,OAAOC,SAASG,OAAON,OAAU,EAAIE,OAAOC,SAASG,MACrDC,UAAUC,YAAYR,OAAU,EAAIO,UAAUC,WACjDR,OAAU,EAAOE,OAAOO,OAAOC,MAAM,IAAIR,OAAOO,OAAOE,OAAO,KAAKT,OAAOO,OAAOG,WAAW,OAE/EZ,OAAQ,CACnB,IAAIa,IAAMzB,SAASC,cAAc,SACjCwB,IAAIC,KAAO,SACXD,IAAIrB,KAAOS,EACXY,IAAIE,MAAQf,OAAOC,GACnBN,KAAKF,YAAYoB,KAGnBlB,KAAKX,MAAQ,eACbI,SAASM,KAAKD,YAAYE,MAC1BA,KAAKqB,UAGHC,MAAQ7B,SAASC,cAAc,OACnC4B,MAAM3B,GAAK,aAEX,IAAI4B,IAAM9B,SAASC,cAAc,QACjC6B,IAAIC,UAAY,UAChBD,IAAIE,iBAAiB,cAAa,SAASxC,IACrCqC,MAAMpC,UAAUwC,SAAS,WAC3BJ,MAAMpC,UAAUC,IAAI,UAEtBmC,MAAMpC,UAAUyC,OAAO,WAGzB,IAAIC,OAASnC,SAASC,cAAc,UAEpCkC,OAAOJ,UAAY,iBACnBI,OAAOH,iBAAiB,QAAQjC,UAEhCe,OAAOkB,iBAAiB,UAAYI,QAEjB,SAAdA,MAAMC,MACP9C,cAIJ,IAAI+C,MAAQtC,SAASuC,uBAAuB,aAC5C,GAAGD,MAAME,OAAS,EAChB,IAAI,IAAIC,KAAKH,MACXI,QAAQC,IAAIL,OACZA,MAAMG,GAAGT,iBAAiB,SAAQ,SAASxC,IAGzC,OAFAO,SAASP,IACTA,GAAGoD,kBACI,KAKbf,MAAMxB,YAAYyB,KAClBD,MAAMxB,YAAY8B,QAElBnC,SAASM,KAAKD,YAAYwB,OAjG5B,CAkGG",
|
||||
"file": "flag.js"
|
||||
}
|
||||
15
itooltip.css
Normal file
15
itooltip.css
Normal file
@@ -0,0 +1,15 @@
|
||||
tooltip {
|
||||
display:block;
|
||||
width: 300px;
|
||||
background-color: rgba(0,0,0,0.8);
|
||||
color: #fff;
|
||||
border: 3px solid #fff;
|
||||
border-radius: 0.5em;
|
||||
padding: 0.5em;
|
||||
|
||||
}
|
||||
|
||||
tooltip h3 {
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
}
|
||||
52
itooltip.js
Normal file
52
itooltip.js
Normal file
@@ -0,0 +1,52 @@
|
||||
( function() {
|
||||
'use strict';
|
||||
|
||||
var loadToolTip = function(ev) {
|
||||
//destroyToolTip(ev);
|
||||
if(!ev.target.dataset.url) return;
|
||||
|
||||
var tt = document.createElement('tooltip');
|
||||
tt.classList.add('fadeable');
|
||||
tt.style.cssText= "position:absolute; top: "+(ev.pageY+10)+"px; left: "+ (ev.pageX+10) +"px;";
|
||||
document.body.appendChild(tt);
|
||||
|
||||
var url = ev.target.dataset.url;
|
||||
//console.log('URL:',url);
|
||||
var xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.onreadystatechange = function() {
|
||||
if (this.readyState == 4) {
|
||||
if(this.status == 200) {
|
||||
tt.innerHTML = this.responseText;
|
||||
tt.classList.add('visible');
|
||||
}
|
||||
}
|
||||
};
|
||||
xmlhttp.open("GET", url, true);
|
||||
xmlhttp.send();
|
||||
}
|
||||
|
||||
var destroyToolTip = function(ev) {
|
||||
var tts = document.getElementsByTagName('tooltip');
|
||||
if(tts[0]) {
|
||||
tts[0].classList.remove('visible');
|
||||
setTimeout(function() {
|
||||
if(tts[0]) tts[0].remove();
|
||||
},500);
|
||||
}
|
||||
}
|
||||
|
||||
//class itooltip
|
||||
var elems = document.getElementsByClassName('itooltip');
|
||||
for (var i =0;i<elems.length;i++) {
|
||||
elems[i].addEventListener('mouseenter',function(ev){
|
||||
loadToolTip(ev);
|
||||
});
|
||||
elems[i].addEventListener('mouseleave',function(ev){
|
||||
destroyToolTip(ev);
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
//TODO lade daten von url in data-url
|
||||
//TODO in der obenhälfte tooltip down untehälte up
|
||||
//TODO linke hälte tooltip richts sondt links
|
||||
1
itooltip.min.css
vendored
Normal file
1
itooltip.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
tooltip{display:block;width:300px;background-color:rgba(0,0,0,.8);color:#fff;border:3px solid #fff;border-radius:.5em;padding:.5em}tooltip h3{margin:0}
|
||||
2
itooltip.min.js
vendored
Normal file
2
itooltip.min.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
!function(){"use strict";for(var loadToolTip=function(ev){if(ev.target.dataset.url){var tt=document.createElement("tooltip");tt.classList.add("fadeable"),tt.style.cssText="position:absolute; top: "+(ev.pageY+10)+"px; left: "+(ev.pageX+10)+"px;",document.body.appendChild(tt);var url=ev.target.dataset.url,xmlhttp=new XMLHttpRequest;xmlhttp.onreadystatechange=function(){4==this.readyState&&200==this.status&&(tt.innerHTML=this.responseText,tt.classList.add("visible"))},xmlhttp.open("GET",url,!0),xmlhttp.send()}},destroyToolTip=function(ev){var tts=document.getElementsByTagName("tooltip");tts[0]&&(tts[0].classList.remove("visible"),setTimeout((function(){tts[0]&&tts[0].remove()}),500))},elems=document.getElementsByClassName("itooltip"),i=0;i<elems.length;i++)elems[i].addEventListener("mouseenter",(function(ev){loadToolTip(ev)})),elems[i].addEventListener("mouseleave",(function(ev){destroyToolTip(ev)}))}();
|
||||
//# sourceMappingURL=itooltip.min.js.map
|
||||
46
itooltip.min.js.map
Normal file
46
itooltip.min.js.map
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [
|
||||
"itooltip.js"
|
||||
],
|
||||
"names": [
|
||||
"loadToolTip",
|
||||
"ev",
|
||||
"target",
|
||||
"dataset",
|
||||
"url",
|
||||
"tt",
|
||||
"document",
|
||||
"createElement",
|
||||
"classList",
|
||||
"add",
|
||||
"style",
|
||||
"cssText",
|
||||
"pageY",
|
||||
"pageX",
|
||||
"body",
|
||||
"appendChild",
|
||||
"xmlhttp",
|
||||
"XMLHttpRequest",
|
||||
"onreadystatechange",
|
||||
"this",
|
||||
"readyState",
|
||||
"status",
|
||||
"innerHTML",
|
||||
"responseText",
|
||||
"open",
|
||||
"send",
|
||||
"destroyToolTip",
|
||||
"tts",
|
||||
"getElementsByTagName",
|
||||
"remove",
|
||||
"setTimeout",
|
||||
"elems",
|
||||
"getElementsByClassName",
|
||||
"i",
|
||||
"length",
|
||||
"addEventListener"
|
||||
],
|
||||
"mappings": "CAAA,WACE,aAsCA,IApCA,IAAIA,YAAc,SAASC,IAEzB,GAAIA,GAAGC,OAAOC,QAAQC,IAAtB,CAEA,IAAIC,GAAKC,SAASC,cAAc,WAChCF,GAAGG,UAAUC,IAAI,YACjBJ,GAAGK,MAAMC,QAAS,4BAA4BV,GAAGW,MAAM,IAAI,cAAeX,GAAGY,MAAM,IAAK,MACxFP,SAASQ,KAAKC,YAAYV,IAE1B,IAAID,IAAMH,GAAGC,OAAOC,QAAQC,IAExBY,QAAU,IAAIC,eAClBD,QAAQE,mBAAqB,WACJ,GAAnBC,KAAKC,YACW,KAAfD,KAAKE,SACNhB,GAAGiB,UAAYH,KAAKI,aACpBlB,GAAGG,UAAUC,IAAI,aAIvBO,QAAQQ,KAAK,MAAOpB,KAAK,GACzBY,QAAQS,SAGNC,eAAiB,SAASzB,IAC5B,IAAI0B,IAAMrB,SAASsB,qBAAqB,WACrCD,IAAI,KACLA,IAAI,GAAGnB,UAAUqB,OAAO,WACxBC,YAAW,WACNH,IAAI,IAAIA,IAAI,GAAGE,WAClB,OAKFE,MAAQzB,SAAS0B,uBAAuB,YACnCC,EAAG,EAAEA,EAAEF,MAAMG,OAAOD,IAC3BF,MAAME,GAAGE,iBAAiB,cAAa,SAASlC,IAC9CD,YAAYC,OAEd8B,MAAME,GAAGE,iBAAiB,cAAa,SAASlC,IAC9CyB,eAAezB,OA5CrB",
|
||||
"file": "itooltip.js"
|
||||
}
|
||||
Reference in New Issue
Block a user