Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Einfacher Fader mit Javascript
Hallo!
Für meine Homepage hätte ich gern einen einfachen Fader, der auf Javascript basiert. Meine bisherigen Fader basieren auf Flash und da das nicht so benutzerfreundlich ist, möchte ich das Ganze jetzt in Javascript umwandeln.
Da ich auf meiner Seite mehrere Slider habe, benötige ich ein Framework Objekt, das aus dem Head-Bereich meiner Homepage geladen wird. Dort müsste ich also jeweils eine Slider-ID eintragen und das Script dann im Body eintragen.
Hier habe ich ein Beispiel, wie das geschrieben wird: http://aktuell.de.selfhtml.org/artikel/j...k/framework.htm
und so sieht es aus: http://aktuell.de.selfhtml.org/artikel/j.../framework3.htm
Leider verstehe ich die Syntax nicht so gut, also warum wird unter dem ersten animierten Slider noch ein zweiter statischer Slider angezeigt?
Wie muss ich das Script umschreiben, damit ich im Head-Bereich mehrere Slider-IDs zuweisen kann, die dann im Body an beliebiger Stelle angezeigt werden? Ich brauche unbedingt einen einfachen Slider mit Autostart und langsamen Überblendungen
Kann mir vielleicht jemand helfen, ich möchte auf jeden Fall mein Flash loswerden.
Grüße
Hm, also das sieht nach einer SEHR alten Taktik aus, die dein Beispiel verwendet.
Was du willst ist glaube ich eher ein Javascript-Slider-Plugin.
Schau mal z.B. hier:
http://docs.dev7studios.com/jquery-plugins/nivo-slider
zu sehen hier: http://nivo-slider.jimdo.com/
Hallo Ingmar,
danke dir. Ja, der sieht schon ziemlich gut aus und ich habe auch verstanden, wie ich ihn einbinden muss. Allerdings ist mir das schon wieder ein bisschen 'too much'. Ich bräuchte wirklich nur einen ganz einfachen Slider ohne Hintergrund, ohne Pipapo. Also einfach nur ein Script, wo ich Bildpfade eintragen kann und diese werden dann überblendet.
Hier siehst du, wozu ich die Überblendung brauche: http://slideful.com/v20141118_1963543421002473_tv.htm
Natürlich habe ich aber auch Bildergalerien für komplette Slideshows.
Grüße
@Ingmar
Hier habe ich ein sehr gutes Script gefunden, das hat alles, was ich brauche und es funktioniert wunderbar. Einziges Problem ist, dass der Slider übergroß dargestellt wird und das kann ich mir nicht erklären. Die Bildgröße habe ich mit picwid und pichei definiert, habe ich etwas übersehen? Normalerweise haben die eingebundenen Grafiken nur eine Breite von 391 Px, warum werden diese im Slider so groß angezeigt?
Hier ist mal das Script:
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
<html><head>
<script type="text/javascript">
/****************************************************************
"bretteleben.de JavaScript Slideshow" - Version 20090406
License: http://www.gnu.org/copyleft/gpl.html
Author: Andreas Berger
Copyright (c) 2009 Andreas Berger - andreas_berger@bretteleben.de
Project page and Demo at http://www.bretteleben.de
Last update: 2009-04-06
*****************************************************************/
//hier werden die parameter gesetzt:
//zwischen die apostrophe den pfad zu den bildern setzen
var def_imges=new Array (
'http://www.ungott.net/s/cc_images/teaserbox_38613038.png?t=1416333483',
'http://www.ungott.net/s/cc_images/teaserbox_38613070.png?t=1416333509'
);
var def_picwid=799; //setze hier die breite des breitesten bildes in pixeln
var def_pichei=137; //... und hier die hv?he des hv?chsten bildes
var def_sdur=2; //zeit, die das bild angezeigt wird (in sekunden)
var def_fdur=3; //zeit, die das bild fvºr den vºbergang erhv§lt (in sekunden)
var def_steps=80; //anzahl schritte fvºr den vºbergang von einem bild zum nv§chsten
//**************************************************************** ab hier beginnt das eigentliche script
//daisychain onload-events
function daisychain(sl){if(window.onload) {var ld=window.onload;window.onload=function(){ld();sl();};}else{window.onload=function(){sl();};}}
function be_slideshow(be_slideid,be_imges,be_divid,be_picwid,be_pichei,be_backgr,be_sdur,be_fdur,be_steps,be_startwhen){
//declarations and defaults
var slideid=(be_slideid)?be_slideid:"0";
var imges=(be_imges)?be_imges:def_imges;
var divid="slideshow";
var picwid=(be_picwid)?be_picwid:def_picwid;
var pichei=(be_pichei)?be_pichei:def_pichei;
var backgr="none";
var sdur=(be_sdur)?be_sdur:def_sdur;
var fdur=(be_fdur)?be_fdur:def_fdur;
var steps=(be_steps)?be_steps:def_steps;
var startwhen=1;
var ftim=fdur*1000/steps;
var stim=sdur*1000;
var emax=imges.length;
var self = this;
var stopit=1;
var startim=1;
var u=0;
var parr = new Array();
var ptofade,pnext,factor,mytimeout;
//check if there are at least 3 pictures, else double the array
if(imges.length<=2){imges=imges.concat(imges);}
//push images into array and get things going
this.b_myfade = function(){
var a,idakt,paktidakt,ie5exep;
for(a=1;a<=emax;a++){
idakt="img_"+slideid+"_"+a;paktidakt=document.getElementById(idakt);
ie5exep=new Array(paktidakt);parr=parr.concat(ie5exep);
}
if(startwhen){
stopit=0;
mytimeout=setTimeout(function(){self.b_slide();},stim);
}
}
//prepare current and next and trigger slide
this.b_slide = function(){
clearTimeout(mytimeout);
u=0;
ptofade=parr[startim-1];
if(startim<emax){pnext=parr[startim];}
else{pnext=parr[0];}
pnext.style.zIndex=1;
pnext.style.visibility="visible";
pnext.style.filter="Alpha(Opacity=100)";
pnext.style.MozOpacity=1;
pnext.style.opacity=1;
ptofade.style.zIndex=2;
ptofade.style.visibility="visible";
ptofade.style.filter="Alpha(Opacity=100)";
ptofade.style.MozOpacity=1;
ptofade.style.opacity=1;
factor=100/steps;
if(stopit=="0"){
this.b_slidenow();
}
}
//slide as said, then give back
this.b_slidenow = function(){
var check1,maxalpha,curralpha;
check1=ptofade.style.MozOpacity;
maxalpha=(100-factor*u)/100*105;
if(check1<=maxalpha/100){u=u+1;}
curralpha=100-factor*u;
ptofade.style.filter="Alpha(Opacity="+curralpha+")";
ptofade.style.MozOpacity=curralpha/100;
ptofade.style.opacity=curralpha/100;
if(u<steps){ //slide not finished
if(stopit=="0"){mytimeout=setTimeout(function(){self.b_slidenow();},ftim);}
else {this.b_slide();}
}
else{ //slide finished
if(startim<emax){
ptofade.style.visibility="hidden";
ptofade.style.zIndex=1;
pnext.style.zIndex=2;
startim=startim+1;u=0;
mytimeout=setTimeout(function(){self.b_slide();},stim);
}
else{
ptofade.style.visibility="hidden";
ptofade.style.zIndex=1;
pnext.style.zIndex=2;
startim=1;u=0;
mytimeout=setTimeout(function(){self.b_slide();},stim);
}
}
}
//insert css and images
this.b_insert= function(){
var b, thestylid, thez, thevis;
var myhtml="<div style='width:"+picwid+"px;height:"+pichei+"px;'>";
myhtml+="<div style='position:absolute;width:"+picwid+"px;height:"+pichei+"px;'>";
for(b=1;b<=emax;b++){
thez=1;thevis='hidden';
if(b<=1) {thez=2; thevis='visible';}
myhtml+="<div id='img_"+slideid+"_"+b+"' style='font-size:0;line-height:"+pichei+"px;margin:0;padding:0;text-align:center;visibility:"+thevis+";z-index:"+thez+";position:absolute;left:0;top:0;width:"+picwid+"px;height:"+pichei+"px;background-color:"+backgr+";'>";
myhtml+="<img src='"+imges[(b-1)]+"' style='vertical-align:middle;border:0;' alt=''/></div>";
}
myhtml+="</div>";
document.getElementById(divid).innerHTML=myhtml;
self.b_myfade();
}
//call autostart-function
daisychain(this.b_insert);
}
var be_0= new be_slideshow();
</script>
</head>
<body>
<div id="slideshow">
<img src="http://www.ungott.net/s/cc_images/teaserbox_38613038.png?t=1416333483" /> <!-- hier das ausgangsbild setzen, das auch erscheint, falls javascript deaktiviert ist -->
</div>
</body>
Hier kann man sich den Slider mal ansehen (Script einfügen): http://www.onlinehtmleditor.net/
Oh, gibt doch noch ein Problem.
Das Script, das ich oben abgelegt habe, ist nur für eine Slideshow vorgesehen. Ich wüsste ja gern, wie ich das Script verändern muss, um mehrere verschiedene Slideshows auf meiner Seite zu haben? Wäre das vom Grunddesign des JS überhaupt möglich?
Hey King Kurt,
Vermutlich musst du die nur aneinander reihen - kannst du ja mal ausprobieren.
Das Script dann aber besser in einen Spoiler packen, falls du das hier posten möchtest. ;)
Liebe Grüße
River
Hallo King Kurt,
ich war vor Kurzem auf Deiner HP, da war ein Link dazu, den finde ich nun aber nicht mehr, ist übrigens ganz toll gemacht
Habe mir den Slider auch auf der Seite angeschaut, wo man das Script eingeben kann und sehen was es tut, danke dafür.
Ihr habt es also mit viel Geduld hinbekommen, lässt Du uns Interessierten vielleicht daran teilhaben
Kann man den Slider auch in einem HPM Forum einbauen, wie ich sehe hast Du ja auch einen, unten in Deinem Forum (Footer) der würde mir auch passen. Verrätst Du mir, wie der gemacht ist, bitte auch gerne per PN :)
Gabriella
http://www.musengarten.com/
http://www.garten-der-poesie.de/
Layout: Business
King Kurt
(
gelöscht
)
#10 RE: Einfacher Fader mit Javascript
Hallo Shogun,
die Slideshow in meinem Forum habe ich nicht selbst gemacht. Das ist ein Widget von Xobor, jeder kann es bei sich einfügen. Du musst dazu nur das Portal bearbeiten und die Galerie entsprechend einbinden.
Den Fader aus meinem Script in das Forum einzubauen, ist glaube ich nicht so leicht. Man muss Zugriff auf den Head-Bereich der Seite haben und das ist bei den Miranus Foren nicht möglich. Man könnte versuchen, das gesamte Script über ein HTML-Widget in das Forum einzubinden. Dazu öffnest du einfach eine neue HTML-Seite und fügst dort das Script ein. Probiert habe ich das nicht, ich weiß nicht, ob das geht, wäre aber gut möglich. Ich denke aber, mit den Galeriemodulen, die Xobor mitliefert, ist man ganz gut bedient.
Wenn man nur einen einzelnen Fader haben möchte, dann kann man sehr gut dieses Script benutzen: http://www.bretteleben.de/lang-de/javasc...eispiel-01.html
Grüße
Shogun eventuell ist das was für dich. Noch die entsprechenden Bilder und Links einfügen und Testen.
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
<style>
.textstyle {
position:absolute;
visibility:visible;
border-style:solid;
border-width:2px;
border-color:#EEEEEE;
font-family:Arial;
font-size:8pt;
color:#FFFFFF;
text-align:center;
background-color:#CCCCCC;
top:-1000px;
}
</style>
<script>
var rotatingimage=new Array()
var rotatingtext=new Array()
var rotatinglink=new Array()
rotatingimage[0]="../../pics/300x180bluefish.jpg"
rotatingimage[1]="../../pics/300x180bonbons.jpg"
rotatingimage[2]="../../pics/300x180butterfly.jpg"
rotatingimage[3]="../../pics/300x180fruitshop.jpg"
rotatingimage[4]="../../pics/300x180herbstwald.jpg"
rotatingimage[5]="../../pics/300x180castle.jpg"
rotatingimage[6]="../../pics/300x180kleeblaetter.jpg"
rotatingimage[7]="../../pics/300x180lemons.jpg"
rotatingimage[8]="../../pics/300x180tree.jpg"
rotatingtext[0]="Deep blue"
rotatingtext[1]="Not as sweet as you"
rotatingtext[2]="Fly, butterfly, fly"
rotatingtext[3]="Fruit Paradise"
rotatingtext[4]="Lost in the forrest"
rotatingtext[5]="My castle is my home"
rotatingtext[6]="This is my lucky day"
rotatingtext[7]="John Lemon"
rotatingtext[8]="Free the tree"
// Set the the comments corresoponding to the images above (requires the same amount as images!)
// Set "#" if no link is required
rotatinglink[0]="http://www.hotscripts.com"
rotatinglink[1]="http://www.hotscripts.com"
rotatinglink[2]="http://www.hotscripts.com"
rotatinglink[3]="http://www.hotscripts.com"
rotatinglink[4]="http://www.hotscripts.com"
rotatinglink[5]="http://www.hotscripts.com"
rotatinglink[6]="http://www.hotscripts.com"
rotatinglink[7]="http://www.hotscripts.com"
rotatinglink[8]="http://www.hotscripts.com"
// Set the width of the circle (pixels)
var circlewidth=420
// Set the height of the circle (pixels)
var circleheight=240
// Set the width of your small rotating images (pixels)
var imgwidth=150
// Set the height of your small rotating images (pixels)
var imgheight=90
// Set the height of your textbox (pixels). This is the textbox (comment) below the rotating images
var textboxheight=17
// Set the path and name (or URL) of your backgroundimage
// Write "var bgimg=false" if you don't want to add a backgroundimage
var bgimg="../../pics/abendstimmung.jpg"
// Set the number of words that will be displayed at once
var displaymax=7
// Set the speed! Tha values may range from 0.1 to 1.0
var step=0.02;
// Set the zoomfactor for the big picture that appears on mouseover
var zoomfactor=2;
// padding to the margin
var imgpadding=10
/////////////////////////////////////////////////////////////////////////////////////
// END OF SCRIPT-CONFIGURATION ZONE
// Do not edit below this line
////////////////////////////////////////////////////////////////////////////////////
var maxopacity=new Array()
var i_imgcounter=0
var segment=360/(displaymax);
var decrement=0;
var op
var tmr
var opacitystep=Math.round(100/circleinnerheight)
var zoomobj
var twidth
var theight
var windowwidth
var windowheight
var circleinnerwidth=circlewidth-(imgwidth+2*imgpadding)
var circleinnerheight=circleheight-(imgheight+2*imgpadding)
circleinnerwidth=circleinnerwidth/2
circleinnerheight=circleinnerheight/2
var ns4=document.layers?1:0
var ns6=document.getElementById&&!document.all?1:0
var ie=document.all?1:0
var preloadedimages=new Array()
for (i=0;i<rotatingimage.length;i++){
preloadedimages[i]=new Image()
preloadedimages[i].src=rotatingimage[i]
}
for (i=0;i<displaymax;i++) {
maxopacity[i]=1
}
function getpagesize() {
windowwidth=parseInt(document.body.clientWidth)
windowheight=parseInt(document.body.clientHeight)
twidth=Math.floor(circleinnerwidth)
theight=Math.floor(circleinnerheight)
i_imgcounter=0
for (i=0; i<displaymax; i++) {
var thisspan=eval("document.getElementById('span"+i+"').style")
thisspan.left=(twidth*Math.sin(decrement+i*segment*Math.PI/180)+circleinnerwidth+imgpadding)+"px";
thisspan.top=(theight*Math.cos(decrement+i*segment*Math.PI/180)+circleinnerheight+imgpadding)+"px";
thisspan.zIndex=parseInt(thisspan.top)
op=parseInt(100/circleinnerheight*(parseInt(thisspan.top)*0.5))
document.getElementById('span'+i).innerHTML="<a href='"+rotatinglink[i_imgcounter]+"'><img border=0 width="+imgwidth+" src='"+rotatingimage[i_imgcounter]+"' id='im"+i_imgcounter+"' onMouseover='stoprotating(this)' onMouseout='restartrotating()'></a><br>"+rotatingtext[i_imgcounter]
document.getElementById('span'+i).style.visibility="visible"
maxopacity[i]=-1
i_imgcounter++
if (i_imgcounter>=rotatingimage.length) {
i_imgcounter=0
}
}
rotatetext()
}
function rotatetext() {
for (i=0; i<displaymax; i++) {
var thisspan=eval("document.getElementById('span"+i+"').style")
thisspan.left=(twidth*Math.sin(decrement+i*segment*Math.PI/180)+circleinnerwidth+imgpadding)+"px";
thisspan.top=(theight*Math.cos(decrement+i*segment*Math.PI/180)+circleinnerheight+imgpadding)+"px";
thisspan.zIndex=parseInt(thisspan.top)
op=parseInt((100/circleinnerheight*(parseInt(thisspan.top)*0.5))-imgpadding)
if (op<5 && maxopacity[i]==1) {
if (i_imgcounter>=rotatingimage.length) {
i_imgcounter=0
}
document.getElementById('span'+i).innerHTML="<a href='"+rotatinglink[i_imgcounter]+"'><img border=0 width="+imgwidth+" src='"+rotatingimage[i_imgcounter]+"' id='im"+i_imgcounter+"' onMouseover='stoprotating(this)' onMouseout='restartrotating()'></a><br>"+rotatingtext[i_imgcounter]
document.getElementById('span'+i).style.visibility="visible"
maxopacity[i]=-1
i_imgcounter++
}
if (op>90) {
maxopacity[i]=1
}
if (ie) {
var thisfilter=eval("document.getElementById('span"+i+"')")
thisfilter.filters.alpha.opacity=op
}
else {
var thisfilter=eval("document.getElementById('span"+i+"').style")
thisspan.opacity=op/100
}
}
decrement-=step;
tmr=setTimeout('rotatetext()', 50);
}
function stoprotating(thisobj) {
clearTimeout(tmr)
zoomobj=thisobj
document.getElementById(zoomobj.id).style.width=(zoomfactor*imgwidth)+"px"
document.getElementById(zoomobj.parentNode.parentNode.id).style.width=(zoomfactor*imgwidth)+"px"
zoomobj.parentNode.parentNode.style.zIndex=9999
if (ie) {
zoomobj.parentNode.parentNode.filters.alpha.opacity=100
}
else {
zoomobj.parentNode.parentNode.style.opacity=1
}
}
function restartrotating() {
document.getElementById(zoomobj.id).style.width=imgwidth+"px"
document.getElementById(zoomobj.parentNode.parentNode.id).style.width=imgwidth+"px"
rotatetext()
}
document.write('<div id="roof" style="position:relative;width:'+circlewidth+'px;height:'+(circleheight+textboxheight)+'px;">')
if (bgimg) {
document.write('<img src="'+bgimg+'" width="'+circlewidth+'" height="'+(circleheight+textboxheight)+'">')
}
for (i=0;i<displaymax;i++) {
document.write("<div id='span"+i+"' class='textstyle' style='filter:alpha(opacity=80);opacity:0.8;width:"+imgwidth+"px;visibility:hidden'></div>");
i_imgcounter++
if (i_imgcounter>=rotatingimage.length) {
i_imgcounter=0
}
}
document.write('</div>');
window.onload=getpagesize;
</script>
Hallo King Kurt,
vielen Dank, ich möchte das für das Forum brauchen, weil im Portal habe ich das natürlich. Aber ich habe da so verschiedene Wettbewerbe, wo ich dann in einem Thread die Slideshow der Gewinner zeigen möchte, aber dazu nicht ein Album aufmachen möchte.
Hallo Mario,
super danke Dir, natürlich mal wieder ein Riesenscript :) Wenn ich mal viel Zeit habe, werde ich daraus ein Plugin machen, ginge doch oder? Aber helfen müsstest mir dann, Du weisst, ich kann bis jetzt nur die Einfachen ;(
Gabriella
http://www.musengarten.com/
http://www.garten-der-poesie.de/
Layout: Business
#13 RE: Einfacher Fader mit Javascript
Hallo Shogun.
also direkt im Forum kannst du das Javascript vermutlich auch einbinden. Leichter wäre es wirklich mit einem Plugin, vielleicht mag dir ja jemand diesen Wunsch erfüllen. Mit den Xobor Plugins habe ich mich noch nie beschäftigt, ich kann dir da nicht weiterhelfen und im Moment arbeite auch gar nicht an meinem Forum, sondern nur an meiner privaten Homepage. Mit dem Forum bin ich bisher wunschlos glücklich.
Grüße
*lach* Hi Mädel,
also das mit dem Plugin kriegen wir dann schon mal gebacken, wenn ich mal Zeit und Nerven dafür habe. Ja eben genau Deine HP meinte ich, wo ich den Link dazu nicht mehr habe. Ich habe ja schon viel ausprobiert, also auch Baukästen, aber ich komme selbst von phbb3 Foren immer wieder zu Xobor zurück. Erstgenannte sind zu schwer, vorallem für Anfänger, die vielleicht gerne was an Ihren TPL verändern möchten. Baukästen sind sosolala, ich kann selbst mit den Besten nicht viel anfangen. Ebenso ist es mit den Blogs, man hat einfach zuwenig Zugriff. Ich denke mal Deine HP ist wo gehostet? Sonst könntet Ihr wohl nicht soviel selber machen? Verrätst Du mir, wo Du die hast?
Gabriella
http://www.musengarten.com/
http://www.garten-der-poesie.de/
Layout: Business
- Informationen
- Aktuelle News
- Forum Tutorials - Tipps und Anleitungen
- SEO / Werbung fürs Forum
- Verwaltung
- Extras
- Design
- Plugin(system)
- Eure Fragen zu Tutorials
- Forum Support
- Fragen und Antworten
- Pluginsystem
- Plugins
- Templates & Sprachen
- Bugreport
- Verbesserungsvorschläge
- Sponsoren gesucht
- Das neue Xobor Business-Template
- News und Updates
- Bugreport
- Allgemeines Feedback
- Verbesserungsvorschläge
- Sonstiges
- Kaffeeklatsch
- Lob & Kritik
- Verbesserungsvorschläge
- Allgemeine Fragen
- Fehlermeldungen
- Verbesserungsvorschläge Responsive Design
- Bugreport Responsive Design
- Archiv - Alter Betatest
- Responsive Design - Verbesserungsvorschläge
- Responsive Design - Bugreport
- Fragen zum neuen Template
- Neue Administration Beta Test
- Bugreport Neue Administration
- Allgemeines Fragen & Feedback
- Verbesserungsvorschläge zur neuen Administration
- Shoutbox
Ähnliche Themen
Jetzt anmelden!
Jetzt registrieren!
© 2017 Xobor | Forum-Software