-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshowSlide.html
120 lines (113 loc) · 2.81 KB
/
showSlide.html
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
<!DOCTYPE html>
<html>
<head>
<title>showSlide</title>
<style>
body {margin:0;padding:0;}
#showSlide {
width: 100%;
height: 100%;
position: absolute;
left:0;
top:0;
overflow: hidden;
}
.showSlide {
width: 100%;
height: 100%;
background-color: #ccc;
position: absolute;
z-index:1;
left: 0;
top: 0;
transition: left .5s;
}
.currentSlide {
z-index: 2;
left: 100%;
top: 0;
transition: left .5s .5s;
}
</style>
</head>
<body>
<div id="showSlide"></div>
<script>
var showSlide = {
containerName: 'showSlide',
className: 'showSlide',
slides: [],
currentSlideNumber: 0,
totalSlideNumber: 0,
init: function() {
var self = this;
self.totalSlideNumber = self.slides.length;
self.generateSlideDivs();
self.startShow();
},
generateSlideDivs: function() {
console.log('Generating Divs');
var self = this;
var showDiv = document.getElementById(self.containerName);
for(var i = 0; i < self.slides.length; i++) {
// self.slides
var divHTML = '<div class="'+self.className+'" id="'+self.className+i+'" style="'+self.slides[i].css+'">'+self.slides[i].text+'</div>';
showDiv.insertAdjacentHTML('beforeend', divHTML);
}
},
startShow: function() {
console.log('Starting Show');
var self = this;
var currentSlide = document.getElementById(self.className+self.currentSlideNumber);
addClass(currentSlide,'currentSlide');
setTimeout(self.showNext, self.slides[self.currentSlideNumber].duration, self);
},
showNext: function(self) {
console.log('Show Next');
var previousSlide = document.getElementById(self.className+self.currentSlideNumber);
removeClass(previousSlide,'currentSlide');
if(self.currentSlideNumber<self.totalSlideNumber-1){
self.currentSlideNumber++;
} else {
self.currentSlideNumber = 0;
}
//self.slides[self.currentSlideNumber].transition;
var currentSlide = document.getElementById(self.className+self.currentSlideNumber);
addClass(currentSlide,'currentSlide');
setTimeout(self.showNext, self.slides[self.currentSlideNumber].duration, self);
}
};
function hasClass(ele,cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}
showSlide.slides = [
{
transition: '',
duration: '3000',
background: "altranlogo.jpg",
text: "Test",
code: '',
css: 'background-color: #eee;'
},
{
transition: '',
duration: '3000',
background: "altranlogo.jpg",
text: "Slide number 2",
code: '',
css: 'background-color: #fdd'
}
];
showSlide.init();
</script>
</body>
</html>