Beim Fiddle funktionieren die Eventlistener nicht, wenn man sie inline notiert, da die Funktionen nicht global sind, sondern im Scope von body.onload liegen.
allgemeine fragen zu Javascript
-
-
So funktioniert es:
jo da läuft es bestens,,weiss nur nicht was du anders gemacht hast auser das hier( mit meinen ids)
nur meine fehlerkonsole sagt jetzt das das null ist ,also auch nicht geht ...habe extra drauf geachtet das es nach dem erstelen der divs eingebettet ist ,und auch mit zeitverzögerung,habe bild und bildunten gedreht....irgendwie läuft das nicht ...oder liegt es daran das es ein userscript ist und deswegen nicht geht
muss umbeding mal programm ruterladen damit ich vernünftig programieren lernen kann ,immer diesen mist im browser und notpad ist nervig,vorallem muss ich bei jedes mal beim testen die seite neu laden das dauert teilweise ewig
-
Code
addGlobalStyle('#bildunten #bild { content: ""; position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; z-index: -1;background:url('+urlbild+') 0 0 no-repeat;animation:rot '+tempo+'.'+tempoplus+'s linear infinite;} '); }
habe auch bild und bildunten mal gedreht ,am anfang und ende des script hingepackt und andere sachen aus probiert aber er zeigt mir gar nix an nicht mal das bild oder den div behälter einfach gar nix ,erst wenn ich bild oder bildunten weg mache ....kennt greasmonkey die funktion nicht oder was ist da los...
ich habe das jetzt anders hinbekommen das beim starte einer anderen animation nicht mehr alles durcheinader läuft......aber das mit diesen hir das ist noch nicht von tisch ,das muss auch irgendwie laufen,dafummel ich noch rum oder trette mein browser im hintern weil in fiddel geht es ja bestens ..
Sempervivum = danke dir erstmal,und sobald ich fehler finde sage ich bescheid
-
Glaube nicht, dass es daran liegt, dass es ein Userskript ist. Poste doch mal deinen neuen Code oder aktualisiere ihn dort bei greasyfork.
-
brauche ja nur das
CodeaddGlobalStyle('#bildunten:before { content: "";position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; z-index: -1; background: url('+urlbild+') 0 0 no-repeat;animation: rot '+tempo+'.'+tempoplus+'s linear infinite;} ');
in das
CodeaddGlobalStyle('#bildunten #bild { content: "";position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; z-index: -1; background: url('+urlbild+') 0 0 no-repeat;animation: rot '+tempo+'.'+tempoplus+'s linear infinite;} ');
habe ich doch richtig verstanden oder ?? habe es so ,dann mit bild und bildunten verdreht ausprobiert und dann mit und ohne content:""; aber nix geht dvon ...
bis zum pause effekt bin ich noch gar nicht gekommen weill das hier schon nicht läuft.....
oder habe ich irgendwas im dein fiddel übersehen
-
Nicht ganz, Du musst dieses:
Zitatdurch dieses ersetzen:
Codevar bild = document.createElement("div"); bild.id ="bild" document.getElementsByTagName('body')[0].appendChild(bild); var bildunten = document.createElement("div"); bildunten.id ="bildunten"; document.getElementsByTagName('body')[0].appendChild(bildunten) bildinner.id ="bildinner"; bildunten.appendChild(bildinner);
und dann das:
CodeaddGlobalStyle('#bildinner { position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; z-index: -1; background: url('+urlbild+') 0 0 no-repeat;animation: rot '+tempo+'.'+tempoplus+'s linear infinite;} ');
Kein Ahnung, wofür Du #bild brauchst.
-
Sorry, ich habe das Erzeugen von #bildinner vergessen. So muss es aussehen:
Codevar bild = document.createElement("div"); bild.id ="bild" document.getElementsByTagName('body')[0].appendChild(bild); var bildunten = document.createElement("div"); bildunten.id ="bildunten"; document.getElementsByTagName('body')[0].appendChild(bildunten)); var bildinner = document.createElement("div"); // dies hatte ich vergessen bildinner.id ="bildinner"; bildunten.appendChild(bildinner);
d. h. #bildinner muss innerhalb von #bildunten geschachtelt sein.
-
hammerhart das wahr jetzt aber eine schwere geburt für mich...weil lief erst nix ,musste noch ein createlement(div) machen mit bildinner dann hat jetzt alles geklappt ... vielen dank an dich .... jetzt müsste ja mit den selben code die animation mit running auch wieder anlaufen wenn ich das richtig sehe....probiere ich später mal aus...... habe noch nee kleinigkeit siehst du hier irgendwie ein fehler.... soll ein 10 mal 10 felder div werden ,mit wechselfarbe,soll noch mot ins script rein ....nur knallt er mir die felder nebeneinander und nicht nach 10 felder eine etage tieferobwohl ich top ja ändere ...aber sehe selbst
Code
Alles anzeigenvar ff = document.createElement("div"); ff.style.width = "200px"; ff.style.height = "200px"; ff.id='ff'; ff.innerHTML ='' document.getElementsByTagName('body')[0].appendChild(ff); a=0; l=20; for(i=1;i<=100;i++){ if(i==10){a=1*l;} if(i==20){a=2*l;} if(i==30){a=3*l;} if(i==40){a=4*l;} if(i==50){a=5*l;} if(i==60){a=6*l;} if(i==70){a=7*l;} if(i==80){a=8*l;} if(i==90){a=9*l;} var box = document.createElement("div"); box.style.width = "20px"; box.style.height = "20px"; box.style.top =a+"px"; box.id = 'p'+i box.class = 'div' box.innerHTML = a ff.appendChild(box); }
a zeigt mir die richtigen höhen an aber wie gesagt bleibt auf einer höhe...man kann den code bestimmt einfacher schreiben habe das mal it document.write geshen ,aber im userscript geht das ja nicht also fällt mir nur die lösung ein
-
oh sorry haben zusammen geschrieben hatte mein vorigen beitrag gelöscht ..wahr wohl nicht schnell genug sorry....
Kein Ahnung, wofür Du #bild brauchst.
ich abe doch 2 divs übereinander..einmal bild wo mal ein bild rein soll und bildunten wo animierter kram rein kommt ....sehe ich da jetzt was falsch das ich #bild nicht brauche ,oder was meintest du damit
-
Zitat
einmal bild wo mal ein bild rein soll und bildunten wo animierter kram rein kommt
Verstehe, Du brauchst ein zusätzliches Bild, dann ist es natürlich OK. Hat dann aber nichts mit der Animation zu tun. Die spielt sich mit #bildunten und#bildinner ab.
-
Was das 10x10-div betrifft, zwei Empfehlungen:
1. Vergiss document.write, nicht nur, weil es in Userscript nicht geht, sondern weil das Ergebnis auch sonst schwer zu durchschauen ist.
2. Verwende absolute Positionierung nur, wenn es unbedingt nötig ist, z. B. weil Du Elemente übereinander anordnen willst, wie bei der Animation. Häufig schafft sie mehr Probleme als sie löst.
Versuche dies:
Code
Alles anzeigen<script> var ff = document.createElement("div"); ff.id = 'ff'; document.getElementsByTagName('body')[0].appendChild(ff); var nrcols = 10, nrrows = 10; for (var i = 0; i < nrrows; i++) { var row = document.createElement("div"); ff.appendChild(row); for (var j = 0; j < nrcols; j++) { var box = document.createElement("div"); box.className = "gridbox"; row.appendChild(box); } } </script> <style> .gridbox { width: 20px; height: 20px; display: inline-block; vertical-align: top; } #ff div:nth-child(odd) .gridbox:nth-child(odd) { background-color: blue; } #ff div:nth-child(odd) .gridbox:nth-child(even) { background-color: lightgray; } #ff div:nth-child(even) .gridbox:nth-child(even) { background-color: blue; } #ff div:nth-child(even) .gridbox:nth-child(odd) { background-color: lightgray; } </style>
Das Wechselmuster habe ich mal mit CSS gemacht. In diesem Fall könnte man es auch erzeugen, indem man mit dem Skript verschiedene Klassen für odd und even anlegt.
-
wenn ich dieses script benutzen will
http://jsfiddle.net/codearachnid/Le1jk85q/
binde ich so ein die links die da stehen
// @require https://cdn.rawgit.com/brinley…er/libs/jSignature.min.js
// @require https://cdnjs.cloudflare.com/a…r.js/1.4.2/angular.min.js
// @require https://code.jquery.com/jquery-2.1.3.min.js
kommt trotzden angukar ist not defined.... das hatte ich schon öffters mit anderen scripten...mache ich da was falsch mit den einbinden
-
Ich denke, Angular baut auf jQuery auf. Ändere mal die Reihenfolge:
// @require https://code.jquery.com/jquery-2.1.3.min.js
// @require https://cdn.rawgit.com/brinley…er/libs/jSignature.min.js
// @require https://cdnjs.cloudflare.com/a…r.js/1.4.2/angular.min.js
-
hatte ich auch schon gedacht das es an reinfolge liegt,aber scheint nicht so ... hatte das problem auch mit anderen scripten wie "angular","hifhcarts" und viele weitere auch die googel scripte ...immer steht da das angular oder highcharts,oder googel not definid ist.
oder liegt das vieleicht doch an greasemonkey das sich da nicht alles einbinden läst... habe schon viel ausprobiert mit einbinden,es geht auch vieles,aber wie gesagt es gibt welche wie dieses hier das klappt einfach nicht ,und finde den grund nicht raus.
-
Schau mal ob dies dir weiter hilft:
https://stackoverflow.com/ques…gularjs-library-is-loadedDemnach wird Angular asynchron geladen.
-
wie ich das verstehe lädt das script schneller als die angular datei...also heist es man sollte erst angular laden und dann das script,damit angular auch definiert ist sehe ich das richtig???
also mit ein blöden timeoutgeht es nicht ,das habe ich versucht obwohl jetzt die fehlerkonsole was neues sagt
ReferenceError: angular is not defined
vor her stand da nur angular is not defined
-
Hast Du es mit dem Timer genau so gemacht wie bei Stackoverflow beschrieben? Poste doch mal den Code.
-
meinst du das
Code
Alles anzeigenvar initWatcher = setInterval(function () { console.log('watch'); if (unsafeWindow.angular) { clearInterval(initWatcher); init(); } }, 100); function init() { console.log('angular', unsafeWindow.angular); }
oder den
Code
Alles anzeigenunsafeWindow.watch('angular', function (prop, oldVal, newVal) { console.log('watch'); if (newVal) { unsafeWindow.unwatch('angular'); // angular is still undefined ATM, run init() a bit later setTimeout(init); } return newVal; }); function init() { console.log('angular', unsafeWindow.angular); }
mein englisch ist nicht so gut ,vieleicht habe ich es auch falsch verstanden ..
habe auch
// @run-at document-end
also kein start wie es da steht und
//@grant auf unsafeWindow
gibt es bei den methadatein nee reinfolge die man einhalten muss??
auf der greasmonkeyseite konnte ich da nix finden
habe auch
-
Das erste scheint mir einfacher zu sein. Hast Du es damit versucht?
-
ja habe beides versucht ..jetzt ist zwar der fehler weg "angular not defined" haber functionieren tut es noch nicht ...spiele gerade an die meta datein reinfolge rum aber daran wirds wohl nicht liegen...auch das einbinden in verschiedene reinfolgen liegt es auch nicht ... wer weiss woran es liegt ,man findet auch nicht viel bei googel darüber,wurde wohl selten gemacht sowas
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!