awacke1 commited on
Commit
253bb2c
·
verified ·
1 Parent(s): 53f053f

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +65 -175
index.html CHANGED
@@ -5,219 +5,109 @@
5
  .scene-container {
6
  width: 100%;
7
  height: 800px;
8
- background: linear-gradient(
9
- to bottom,
10
- #1a233a 0%,
11
- #2d4065 20%,
12
- #4f7ab3 50%,
13
- #85b1e0 75%,
14
- #b7d9f9 100%
15
- );
16
  position: relative;
17
  overflow: hidden;
18
  }
19
 
20
- /* Waterfall base styles */
21
  .waterfall-container {
22
  position: absolute;
23
  left: 400px;
24
  top: 200px;
25
- width: 120px;
26
  height: 300px;
27
- overflow: visible;
28
- }
29
-
30
- /* River container */
31
- .river-container {
32
- position: absolute;
33
- bottom: 100px;
34
- width: 100%;
35
- height: 150px;
36
  overflow: hidden;
37
- transform: perspective(1000px) rotateX(30deg);
38
- transform-origin: bottom;
39
  }
40
 
41
- /* Particle animations */
42
- @keyframes particleFlow {
43
- 0% {
44
- transform: translate3d(0, -100%, 0) rotate(0deg);
45
- opacity: 0;
46
- }
47
- 10% { opacity: 1; }
48
- 90% { opacity: 1; }
49
- 100% {
50
- transform: translate3d(var(--translateX, 0), 100%, var(--translateZ, 0)) rotate(360deg);
51
- opacity: 0;
52
- }
53
  }
54
 
55
- @keyframes whitewaterFloat {
56
- 0% {
57
- transform: translate3d(-100%, 0, 0);
58
- opacity: 0;
59
- }
60
- 10% { opacity: 1; }
61
- 90% { opacity: 1; }
62
- 100% {
63
- transform: translate3d(100%, 0, 0);
64
- opacity: 0;
65
- }
 
 
 
 
 
 
66
  }
67
 
68
- /* Mist effect */
69
  .mist {
70
  position: absolute;
71
- width: 200px;
72
- height: 100px;
73
- left: 360px;
74
  bottom: 160px;
75
  background: radial-gradient(
76
  ellipse at center,
77
- rgba(255, 255, 255, 0.7) 0%,
78
- rgba(255, 255, 255, 0.3) 40%,
79
  rgba(255, 255, 255, 0) 70%
80
  );
81
- filter: blur(4px);
82
- animation: mistPulse 4s ease-in-out infinite alternate;
83
  }
84
 
85
- @keyframes mistPulse {
86
- 0% {
87
- opacity: 0.4;
88
- transform: translate(0, 0) scale(1);
89
- }
90
- 100% {
91
- opacity: 0.7;
92
- transform: translate(-10px, -15px) scale(1.1);
93
- }
94
  }
95
 
96
- .splash {
97
- position: absolute;
98
- bottom: 250px;
99
- left: 380px;
100
- width: 160px;
101
- height: 40px;
102
- filter: blur(2px);
 
103
  }
104
  </style>
105
  </head>
106
  <body>
107
  <div class="scene-container">
108
- <!-- Main waterfall and river SVG -->
109
- <svg width="100%" height="100%" viewBox="0 0 1200 800" preserveAspectRatio="xMidYMid slice">
110
  <defs>
111
- <!-- Gradients -->
112
- <linearGradient id="waterGradient" x1="0%" y1="0%" x2="100%" y2="0%">
113
- <stop offset="0%" style="stop-color:rgba(173,216,230,0.9)"/>
114
- <stop offset="50%" style="stop-color:rgba(135,206,235,0.8)"/>
115
- <stop offset="100%" style="stop-color:rgba(173,216,230,0.9)"/>
116
  </linearGradient>
117
-
118
- <!-- Filters -->
119
- <filter id="waterBlur" x="-50%" y="-50%" width="200%" height="200%">
120
- <feGaussianBlur in="SourceGraphic" stdDeviation="3"/>
121
- <feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.8 0"/>
122
- </filter>
123
-
124
- <!-- Curved path for waterfall -->
125
- <path id="waterfallPath" d="M0,0 C20,-10 40,10 60,0 S80,-10 100,0" />
126
-
127
- <!-- River flow path -->
128
- <path id="riverFlowPath" d="M0,50 C200,20 400,80 600,50 S800,20 1000,50 S1200,80 1400,50" />
129
-
130
- <!-- Animation paths -->
131
- <animateMotion id="flowAnimation" dur="3s" repeatCount="indefinite">
132
- <mpath href="#riverFlowPath"/>
133
- </animateMotion>
134
  </defs>
135
-
136
- <!-- Layered waterfall -->
137
- <g class="waterfall">
138
- <!-- Base water column -->
139
- <use href="#waterfallPath" stroke="rgba(173,216,230,0.8)" stroke-width="80" filter="url(#waterBlur)">
140
- <animate attributeName="d"
141
- dur="2s"
142
- repeatCount="indefinite"
143
- values="M0,0 C20,-10 40,10 60,0 S80,-10 100,0;
144
- M0,0 C20,10 40,-10 60,0 S80,10 100,0;
145
- M0,0 C20,-10 40,10 60,0 S80,-10 100,0"/>
146
- </use>
147
-
148
- <!-- Transparent overlays for depth -->
149
- <use href="#waterfallPath" stroke="rgba(255,255,255,0.4)" stroke-width="60" filter="url(#waterBlur)"/>
150
- <use href="#waterfallPath" stroke="rgba(173,216,230,0.6)" stroke-width="40" filter="url(#waterBlur)"/>
151
- </g>
152
-
153
- <!-- River with whitewater -->
154
- <g class="river" transform="translate(0,600)">
155
- <!-- Base river flow -->
156
- <use href="#riverFlowPath" stroke="url(#waterGradient)" stroke-width="150" filter="url(#waterBlur)"/>
157
-
158
- <!-- Whitewater patterns -->
159
- <g class="whitewater">
160
- <circle r="5" fill="rgba(255,255,255,0.6)" filter="url(#waterBlur)">
161
- <animateMotion dur="4s" repeatCount="indefinite">
162
- <mpath href="#riverFlowPath"/>
163
- </animateMotion>
164
- </circle>
165
- <!-- Multiple whitewater particles with varying speeds and opacities -->
166
- <!-- Generated dynamically via JavaScript -->
167
- </g>
168
- </g>
169
  </svg>
170
 
171
- <!-- Dynamic particle system -->
172
- <script>
173
- function createWaterParticles() {
174
- const waterfall = document.querySelector('.waterfall-container');
175
- const river = document.querySelector('.river-container');
176
-
177
- // Create waterfall particles
178
- for (let i = 0; i < 50; i++) {
179
- const particle = document.createElement('div');
180
- particle.className = 'water-particle';
181
- particle.style.cssText = `
182
- position: absolute;
183
- width: ${2 + Math.random() * 4}px;
184
- height: ${2 + Math.random() * 4}px;
185
- background: rgba(255, 255, 255, ${0.3 + Math.random() * 0.4});
186
- border-radius: 50%;
187
- left: ${Math.random() * 100}%;
188
- animation: particleFlow ${2 + Math.random() * 2}s linear infinite;
189
- animation-delay: ${Math.random() * 2}s;
190
- filter: blur(1px);
191
- `;
192
- waterfall.appendChild(particle);
193
- }
194
-
195
- // Create river whitewater
196
- for (let i = 0; i < 30; i++) {
197
- const foam = document.createElement('div');
198
- foam.className = 'whitewater-particle';
199
- foam.style.cssText = `
200
- position: absolute;
201
- width: ${5 + Math.random() * 10}px;
202
- height: ${5 + Math.random() * 10}px;
203
- background: rgba(255, 255, 255, ${0.4 + Math.random() * 0.3});
204
- border-radius: 50%;
205
- top: ${Math.random() * 100}%;
206
- animation: whitewaterFloat ${5 + Math.random() * 5}s linear infinite;
207
- animation-delay: ${Math.random() * 5}s;
208
- filter: blur(2px);
209
- `;
210
- river.appendChild(foam);
211
- }
212
- }
213
-
214
- // Initialize particle systems
215
- createWaterParticles();
216
- </script>
217
-
218
- <!-- Mist and splash effects -->
219
  <div class="mist"></div>
220
- <div class="splash"></div>
221
  </div>
222
  </body>
223
  </html>
 
5
  .scene-container {
6
  width: 100%;
7
  height: 800px;
8
+ background: linear-gradient(#1B4B8A, #3A6FB0 40%, #87CEEB 70%);
 
 
 
 
 
 
 
9
  position: relative;
10
  overflow: hidden;
11
  }
12
 
13
+ /* Simple but effective waterfall */
14
  .waterfall-container {
15
  position: absolute;
16
  left: 400px;
17
  top: 200px;
18
+ width: 80px;
19
  height: 300px;
 
 
 
 
 
 
 
 
 
20
  overflow: hidden;
21
+ border-radius: 40px 40px 0 0;
 
22
  }
23
 
24
+ .waterfall-stream {
25
+ width: 100%;
26
+ height: 200%;
27
+ background: linear-gradient(180deg,
28
+ rgba(255, 255, 255, 0.8),
29
+ rgba(173, 216, 230, 0.9),
30
+ rgba(173, 216, 230, 0.7),
31
+ rgba(173, 216, 230, 0.8)
32
+ );
33
+ animation: waterfall 2s linear infinite;
34
+ filter: blur(2px);
 
35
  }
36
 
37
+ /* Basic river with animation */
38
+ .river {
39
+ position: absolute;
40
+ width: 200%;
41
+ height: 100px;
42
+ bottom: 100px;
43
+ left: -50%;
44
+ background: linear-gradient(90deg,
45
+ rgba(173, 216, 230, 0.8),
46
+ rgba(173, 216, 230, 0.9),
47
+ rgba(255, 255, 255, 0.6),
48
+ rgba(173, 216, 230, 0.9),
49
+ rgba(173, 216, 230, 0.8)
50
+ );
51
+ animation: riverFlow 8s linear infinite;
52
+ transform: perspective(500px) rotateX(30deg);
53
+ transform-origin: bottom;
54
  }
55
 
56
+ /* Simple mist effect */
57
  .mist {
58
  position: absolute;
59
+ width: 120px;
60
+ height: 40px;
61
+ left: 380px;
62
  bottom: 160px;
63
  background: radial-gradient(
64
  ellipse at center,
65
+ rgba(255, 255, 255, 0.6) 0%,
 
66
  rgba(255, 255, 255, 0) 70%
67
  );
68
+ filter: blur(3px);
69
+ animation: mist 3s ease-in-out infinite alternate;
70
  }
71
 
72
+ @keyframes waterfall {
73
+ 0% { transform: translateY(-50%); }
74
+ 100% { transform: translateY(0); }
 
 
 
 
 
 
75
  }
76
 
77
+ @keyframes riverFlow {
78
+ 0% { transform: perspective(500px) rotateX(30deg) translateX(0); }
79
+ 100% { transform: perspective(500px) rotateX(30deg) translateX(-50%); }
80
+ }
81
+
82
+ @keyframes mist {
83
+ 0% { opacity: 0.4; transform: translateY(0); }
84
+ 100% { opacity: 0.7; transform: translateY(-10px); }
85
  }
86
  </style>
87
  </head>
88
  <body>
89
  <div class="scene-container">
90
+ <!-- Basic background -->
91
+ <svg width="100%" height="100%" viewBox="0 0 1200 800">
92
  <defs>
93
+ <linearGradient id="rockGradient" x1="0%" y1="0%" x2="0%" y2="100%">
94
+ <stop offset="0%" style="stop-color:#8B4513"/>
95
+ <stop offset="50%" style="stop-color:#A0522D"/>
96
+ <stop offset="100%" style="stop-color:#8B4513"/>
 
97
  </linearGradient>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  </defs>
99
+
100
+ <!-- Simple cliff face -->
101
+ <path d="M0,200 Q300,100 600,250 T1200,200 V800 H0 Z"
102
+ fill="url(#rockGradient)"/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  </svg>
104
 
105
+ <!-- Working water effects -->
106
+ <div class="waterfall-container">
107
+ <div class="waterfall-stream"></div>
108
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  <div class="mist"></div>
110
+ <div class="river"></div>
111
  </div>
112
  </body>
113
  </html>