|
|
@@ -20,7 +20,6 @@
|
|
|
<Defense />
|
|
|
<SecurityServicesSuite />
|
|
|
<section class="tabs-section">
|
|
|
- <ParticlesCanvas class="tabs-canvas" />
|
|
|
<div class="toggle-container">
|
|
|
<div class="toggle-bg" :class="{ 'right': activeTab === 'defense' }"></div>
|
|
|
<div class="toggle-option" :class="{ 'active': activeTab === 'accelerate' }" @click="activeTab = 'accelerate'">
|
|
|
@@ -61,6 +60,36 @@
|
|
|
</transition>
|
|
|
</div>
|
|
|
</section>
|
|
|
+ <section class="security-section">
|
|
|
+ <div class="container">
|
|
|
+ <div class="text-content">
|
|
|
+ <h2>安全 可靠 极速</h2>
|
|
|
+ <p class="subtitle">防御与加速,一体两面,同时生效</p>
|
|
|
+ <div class="features-grid">
|
|
|
+ <div class="feature-item">
|
|
|
+ <Icon name="material-symbols:check-circle-outline" />
|
|
|
+ <span>1. 单节点2T 防御</span>
|
|
|
+ </div>
|
|
|
+ <div class="feature-item">
|
|
|
+ <Icon name="material-symbols:check-circle-outline" />
|
|
|
+ <span>2. 近源清洗,攻击止步于千里之外</span>
|
|
|
+ </div>
|
|
|
+ <div class="feature-item">
|
|
|
+ <Icon name="material-symbols:check-circle-outline" />
|
|
|
+ <span>4. 一套架构,双重使命</span>
|
|
|
+ </div>
|
|
|
+ <div class="feature-item">
|
|
|
+ <Icon name="material-symbols:check-circle-outline" />
|
|
|
+ <span>3. 提供真正的「安全加速」</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="image-content">
|
|
|
+ <video ref="videoRef" class="video" preload="auto" :src="homeVideo" autoplay loop muted playsinline
|
|
|
+ @loadedmetadata="onVideoLoaded"></video>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </section>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup>
|
|
|
@@ -77,7 +106,7 @@ useHead(() => ({
|
|
|
}))
|
|
|
import SecurityServicesSuite from '~/components/products/SecurityServicesSuite.vue';
|
|
|
import Defense from '~/components/products/Defense.vue';
|
|
|
-import ParticlesCanvas from '~/components/ParticlesCanvas.vue'
|
|
|
+import homeVideo from '~/assets/video/suo.mp4'
|
|
|
|
|
|
const activeTab = ref('accelerate')
|
|
|
|
|
|
@@ -196,13 +225,6 @@ const activeTab = ref('accelerate')
|
|
|
z-index: 1;
|
|
|
}
|
|
|
|
|
|
- .tabs-canvas {
|
|
|
- position: absolute;
|
|
|
- height: 200px;
|
|
|
- top: -10%;
|
|
|
- left: 50%;
|
|
|
- transform: translate(-50%);
|
|
|
- }
|
|
|
|
|
|
.toggle-container {
|
|
|
position: relative;
|
|
|
@@ -311,4 +333,82 @@ const activeTab = ref('accelerate')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.security-section {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ position: relative;
|
|
|
+ padding-bottom: 142px;
|
|
|
+
|
|
|
+ .container {
|
|
|
+ width: 100%;
|
|
|
+ max-width: 1200px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: flex-start;
|
|
|
+ position: relative;
|
|
|
+ z-index: 2;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text-content {
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding-top: 70px;
|
|
|
+ flex: 1;
|
|
|
+ max-width: 600px;
|
|
|
+
|
|
|
+ h2 {
|
|
|
+ color: #FFF;
|
|
|
+ font-size: 45px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 45px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .subtitle {
|
|
|
+ margin-top: 40px;
|
|
|
+ color: #A39DFF;
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .features-grid {
|
|
|
+ margin-top: 70px;
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(2, 1fr);
|
|
|
+ gap:30px 0px;
|
|
|
+
|
|
|
+ .feature-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+
|
|
|
+ .iconify {
|
|
|
+ color: #A39DFF;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ span {
|
|
|
+ color: #FFF;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 24px;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .image-content {
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .video {
|
|
|
+ width: 522px;
|
|
|
+ height: 522px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|