#1 Scriptproblem von Emanuel 24.08.2009 13:20

avatar

Hallo Florian,

ich hätte da mal eine Frage an einen Experten wie dich.
Kann man das Script für Cursor hier so verändern,
damit Herzen rausfallen ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
<!-- präsentiert von kostenlose-javascripts.de -->

<script type='text/javascript'>

<!--

var colour="#f0f"; // Farbe des Feenstaubes

var sparkles=50; // Anzahl der "Staubflocken"



/*****************************

* Tinkerbell Magic Sparkle *

* (c) 2005 mf2fm web-design *

* http://www.mf2fm.com/rv *



* DON'T EDIT BELOW THIS BOX *

* AB HIER NICHTS MEHR ÄNDERN *

*****************************/

var x=ox=400;

var y=oy=300;

var swide=800;

var shigh=600;

var sleft=sdown=0;

var tiny=new Array();

var star=new Array();

var starv=new Array();

var starx=new Array();

var stary=new Array();

var tinyx=new Array();

var tinyy=new Array();

var tinyv=new Array();



window.onload=function() { if (document.getElementById) {

var i, rats, rlef, rdow;

for (var i=0; i<sparkles; i++) {

var rats=createDiv(3, 3);

rats.style.visibility="hidden";

document.body.appendChild(tiny[i]=rats);

starv[i]=0;

tinyv[i]=0;

var rats=createDiv(5, 5);

rats.style.backgroundColor="transparent";

rats.style.visibility="hidden";

var rlef=createDiv(1, 5);

var rdow=createDiv(5, 1);

rats.appendChild(rlef);

rats.appendChild(rdow);

rlef.style.top="2px";

rlef.style.left="0px";

rdow.style.top="0px";

rdow.style.left="2px";

document.body.appendChild(star[i]=rats);


}

set_width();

sparkle();

}}



function sparkle() {

var c;

if (x!=ox || y!=oy) {

ox=x;

oy=y;

for (c=0; c<sparkles; c++) if (!starv[c]) {

star[c].style.left=(starx[c]=x)+"px";

star[c].style.top=(stary[c]=y)+"px";

star[c].style.clip="rect(0px, 5px, 5px, 0px)";

star[c].style.visibility="visible";

starv[c]=50;

break;

}

}

for (c=0; c<sparkles; c++) {

if (starv[c]) update_star(c);

if (tinyv[c]) update_tiny(c);

}

setTimeout("sparkle()", 40);

}



function update_star(i) {

if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";

if (starv[i]) {

stary[i]+=1+Math.random()*3;

if (stary[i]<shigh+sdown) {

star[i].style.top=stary[i]+"px";

starx[i]+=(i%5-2)/5;

star[i].style.left=starx[i]+"px";

}

else {

star[i].style.visibility="hidden";

starv[i]=0;

return;

}

}

else {

tinyv[i]=50;

tiny[i].style.top=(tinyy[i]=stary[i])+"px";

tiny[i].style.left=(tinyx[i]=starx[i])+"px";

tiny[i].style.width="2px";

tiny[i].style.height="2px";

star[i].style.visibility="hidden";

tiny[i].style.visibility="visible"

}

}



function update_tiny(i) {

if (--tinyv[i]==25) {

tiny[i].style.width="1px";

tiny[i].style.height="1px";

}

if (tinyv[i]) {

tinyy[i]+=1+Math.random()*3;

if (tinyy[i]<shigh+sdown) {

tiny[i].style.top=tinyy[i]+"px";

tinyx[i]+=(i%5-2)/5;

tiny[i].style.left=tinyx[i]+"px";

}

else {

tiny[i].style.visibility="hidden";

tinyv[i]=0;

return;

}

}

else tiny[i].style.visibility="hidden";

}





function mouse(e) {

set_scroll();

y=(e)?e.pageY:event.y+sdown;

x=(e)?e.pageX:event.x+sleft;




}




function set_scroll() {


if (typeof(self.pageYOffset)=="number") {

sdown=self.pageYOffset;

sleft=self.pageXOffset;

}

else if (document.body.scrollTop || document.body.scrollLeft) {

sdown=document.body.scrollTop;

sleft=document.body.scrollLeft;



}

else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {

sleft=document.documentElement.scrollLeft;

sdown=document.documentElement.scrollTop;

}

else {

sdown=0;

sleft=0;

}

}



window.onresize=set_width;

function set_width() {

if (typeof(self.innerWidth)=="number") {

swide=self.innerWidth;

shigh=self.innerHeight;



}

else if (document.documentElement && document.documentElement.clientWidth) {

swide=document.documentElement.clientWidth;

shigh=document.documentElement.clientHeight;

}

else if (document.body.clientWidth) {

swide=document.body.clientWidth;

shigh=document.body.clientHeight;

}

}



function createDiv(height, width) {

var div=document.createElement("div");

div.style.position="absolute";

div.style.height=height+"px";

div.style.width=width+"px";

div.style.overflow="hidden";

div.style.backgroundColor=colour;

return (div);

}

//-->

</script>

<div id="kostenlosejavascripts" align="center" style="display:none;">namibia.net </a></div>

<br />

<script type="text/javascript" src="http://www.kostenlose-javascripts.de/startScript.php?id=347"></script>

<!-- präsentiert von kostenlose-javascripts.de -->


Kannst du mir da bitte weiterhelfen ?

L.G. Emanuel

#2 RE: Scriptproblem von florian-zier 24.08.2009 16:32

avatar

Hallo Emanuel,
ich habe mal ein anderes Skript als Basis genommen, bei dem schon Herzen verwendet werden.
Das Problem an dem anderen Skript ist, dass es keine Bilder verwendet und extrem lange ist.
Das Basis-Skript gibt es hier.

Ich habe es so verändert, dass die Herzen von der Maus aus herabfallen.
Leider war der Test im IE nicht so erfolgreich bei mir. Firefox macht es wie gewünscht.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!-- präsentiert von kostenlose-javascripts.de -->
<script type='text/javascript'>
// Original: Kurt Grigg (kurt.grigg (at) virgin.net)
Image0 = new Image();
Image0.src = "herz.gif";
Amount = 20;
Ymouse = -50;
Xmouse = -50;
Ypos = new Array();
Xpos = new Array();
Speed = new Array();
rate = new Array();
grow = new Array();
Step = new Array();
Cstep = new Array();
nsSize = new Array();
ns = (document.layers)?1:0;
(document.layers)?window.captureEvents(Event.MOUSEMOVE):0;

function Mouse(e) {
Ymouse=(e)?e.pageY+20:window.event.y+20;
Xmouse=(e)?e.pageX:window.event.x;
}
(document.layers)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
for (i = 0; i < Amount; i++) {
Ypos[i] = Ymouse;
Xpos[i] = Xmouse;
Speed[i] = Math.random()*4+1;
Cstep[i] = 0;
Step[i] = Math.random()*0.1+0.05;
grow[i] = 8;
nsSize[i] = Math.random()*15+5;
rate[i] = Math.random()*0.5+0.1;
}
if (ns) {
for (i = 0; i < Amount; i++) {
document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0><img src="+Image0.src+" name='N' width="+nsSize[i]+" height="+nsSize[i]+"></LAYER>");
}
}
else {
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i = 0; i < Amount; i++) {
document.write('<img id="si'+i+'" src="'+Image0.src+'" style="position:absolute;top:0px;left:0px;filter:alpha(opacity=90);">');
}
document.write('</div></div>');
}
function MouseBubbles() {
var hscrll = (document.layers)?window.pageYOffset:document.documentElement.scrollTop;
var wscrll = (document.layers)?window.pageXOffset:document.documentElement.scrollLeft;
for (i = 0; i < Amount; i++){
sy = Speed[i] * Math.sin(270 * Math.PI / 180);
sx = Speed[i] * Math.cos(Cstep[i] * 4);
Ypos[i] -= sy;
Xpos[i] -= sx;
if (Ypos[i] > window.innerHeight-grow[i]) {
Ypos[i] = Ymouse;
Xpos[i] = Xmouse;
Speed[i] = Math.random() * 6 + 4;
grow[i] = 8;
nsSize[i] = Math.random() * 15 + 5;
}
if (ns) {
document.layers['sn'+i].left = Xpos[i] - wscrll;
document.layers['sn'+i].top = Ypos[i] - hscrll;
}
else {
document.getElementById('si'+i).style.left = Xpos[i] + wscrll+"px";
document.getElementById('si'+i).style.top = Ypos[i] + hscrll+"px";
document.getElementById('si'+i).style.width = grow[i]+"px";
document.getElementById('si'+i).style.height = grow[i]+"px";
}
grow[i] += rate[i];
Cstep[i] += Step[i];
if (grow[i] > 24) grow[i] = 25;
}
setTimeout('MouseBubbles()', 10);
}
</script>
<br />
<div id="kostenlosejavascripts" align="center" style="display:none;">namibia.net </a></div>
<br />
<script type="text/javascript" src="http://www.kostenlose-javascripts.de/startScript.php?id=172"></script>
<!-- präsentiert von kostenlose-javascripts.de -->




Falls das Basis-Skript oder dessen Nachbearbeitung nicht so sein sollten, wie du es wünscht, dann melde dich einfach nochmal.
Evtl. versuche ich dann ein Skript komplett neu zu schreiben.

#3 RE: Scriptproblem von Emanuel 25.08.2009 01:16

avatar

Hallo Florian,

zuerst mal ganz grossen Dank für deine Mühe,
aber ich hatte mir da was anderes vorgestellt.
Das Script funktioniert zwar,
aber nur teilweise.
Im oberern Bereich des Forum,
also im Header fallen die Herzen zuviel raus.
Hab das auch mal im Forum bei mir dringelassen,
damit du selber nachgucken kannst.
Und wenn man weiter runterscrollt,
bleibt es nur noch am Mauszeiger hängen.
Ich selber hätte gerne ein Script,
das so wie der Feenstaub oben funtioniert.
Nur das anstelle die Kreuzchen,Herzen rausfallen und
das in ganzen Bereich im Forum.
Und das natürlich das Script auch in IE funtionieren würde .
Es wäre wieder toll,wenn du diese Idee umsetzen könntest.

L.G. Emanuel

#4 RE: Scriptproblem von florian-zier 29.08.2009 19:15

avatar

Hallo Emanuel,
das Skript will leider einfach nicht funktionieren.

Ich habe mich daran gemacht, ein neues zu schreiben.
Allerdings bekomme ich immer wieder den gleichen Fehler.
Wahrscheinlich arbeitet eine Funktion schneller als die ander oder sonst irgendwas.

Hier mal der zuletzt beste Quellcode.
Er funktionierte aber nur im Firefox und noch nicht im IE.
Wenn die Maus zu schnell bewegt wird, fallen die Herzen nicht komplett und bleiben sichtbar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<script type="text/javascript" language="javascript">
window.onload = function() {
//MouseDrop();
addEventListener("mousemove", MouseDrop, false);
}
drop_img = new Image();
drop_img.src = "herz.gif";
drop_begin = 0;
drop_amount = 0;
Ymouse = -50;
Xmouse = -50;
drop_delay = 10;
drop_max = 100;
//drop_d = new Date();
function MouseDrop(e) {
//if ((Date.parse(drop_d)+drop_delay) <= new Date()) {
if (!(drop_amount >= drop_begin+drop_max)) {
Ymouse=(e)?e.pageY+5:window.event.y+5;
Xmouse=(e)?e.pageX:window.event.x;
drop_add(drop_amount)
drop_amount += 1;
if (drop_amount == 1) { imgDrop(); }
}
}

function drop_add(drop_amount) {
var newDiv1 = document.createElement('div');
newDiv1.setAttribute('style', 'position:absolute;top:'+Ymouse+'px;left:'+Xmouse+'px;');
var newDiv2 = document.createElement('div');
newDiv2.setAttribute('style', 'position:relative;');
var newPic = document.createElement('img');
newPic.setAttribute('id', 'drop_'+drop_amount);
newPic.setAttribute('src', drop_img.src);
newPic.setAttribute('style', 'position:absolute;top:0px;left:0px;');
newDiv2.appendChild(newPic);
newDiv1.appendChild(newDiv2);
document.getElementsByTagName('body')[0].appendChild(newDiv1);
}

function imgDrop() {
for (i=drop_begin; i<drop_amount; i++) {
try {
if (document.getElementById('drop_'+i)) {
var drop_div = document.getElementById('drop_'+i).parentNode.parentNode;
var div_top = parseInt(drop_div.style.top.replace('px', ''));
//var div_left = parseInt(drop_div.style.left.replace('px', ''));
if (div_top <= window.innerHeight) {
drop_div.style.top = div_top+parseInt(10)+'px';
//drop_div.style.left = div_left+parseInt(10)+'px';
}
else {
//drop_div.style.display = 'none';
document.getElementsByTagName('body')[0].removeChild(drop_div);
drop_begin += 1;
}
}
} catch(e) {
//überspringe i
window.defaultStatus = 'i='+i+' drop_begin='+drop_begin+' drop_amount='+drop_amount+' Error:'+e;
//drop_add(drop_amount);
}
}
setTimeout('imgDrop()', drop_delay);
}
</script>



Aktuell habe ich das Prinzip ein wenig verändert, aber das funktioniert noch nicht so gut.
Den Quellcode solltest du vielleicht auch nur in einer extra Seite mal betrachten, er kommt zwischen die Head-Tags.
Die Geschwindigkeiten stimmen zwar auch noch nicht so, aber das wäre das geringste Problem und später schnell nach Belieben eingestellt.

#5 RE: Scriptproblem von Emanuel 31.08.2009 03:43

avatar

Hallo Florian,

hab das mal getestet.
Aber leider läuft es nur so,
wie du es beschrieben hast.
Schade,das es nicht ganz so funktioniert.
Wäre ein klasse Script.
Trotzdem vielen Dank für deine Mühe.

L.G. Emanuel

#6 RE: Scriptproblem von Dennis B. 31.08.2009 18:04

Hallo ihr beiden,

ich hab so etwas vor kurzem schon mal gebastelt...
Läuft alles schnell und perfekt..
Wenn du willst gib ich dir den Quellcode?


Viele Grüße
Dennis B.

#7 RE: Scriptproblem von Emanuel 03.09.2009 21:12

avatar

Hallo Dennis B.,

das wäre ja wirklich klasse,
wenn du das machen würdest.
Vielen Dank schon in voraus !

L.G. Emanuel

Xobor Forum Software von Xobor
Einfach ein eigenes Forum erstellen
Datenschutz