DCard.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <section class="about-dcard">
  3. <div class="dcard-item" v-for="item in dcards" :key="item.icon">
  4. <div class="icon-wrapper">
  5. <img :src="item.icon" alt="icon" class="dcard-icon" />
  6. </div>
  7. <div class="dcard-title">{{ item.title }}</div>
  8. <div class="dcard-subtitle">{{ item.subTitle }}</div>
  9. <div class="dcard-desc">{{ item.desc }}</div>
  10. </div>
  11. </section>
  12. </template>
  13. <script setup>
  14. const dcards = [
  15. {
  16. icon: '/images/about/icon-dc1.png',
  17. title: '黑洞级流量清洗',
  18. subTitle: '清洗能力:T级+',
  19. desc: ' 自研分布式清洗架构,多节点协同作战,从网络层到应用层全方位识别并拦截恶意流量,确保正常业务零损耗通过。 '
  20. },
  21. {
  22. icon: '/images/about/icon-dc2.png',
  23. title: '五重防线联防',
  24. subTitle: '防护覆盖:100%',
  25. desc: 'CDN · 游戏盾 · 高防服务器 · 高防IP · SDK五大产品不是各自为战,而是智能协同、实时联动,构建无死角立体防御体系。'
  26. },
  27. {
  28. icon: '/images/about/icon-dc3.png',
  29. title: '毫秒级智能调度',
  30. subTitle: '切换响应:<50ms',
  31. desc: '基于实时流量分析的智能调度系统,攻击发生时自动识别、秒级切换防御节点,业务端完全无感知。'
  32. },
  33. {
  34. icon: '/images/about/icon-dc4.png',
  35. title: '全天候安全值守',
  36. subTitle: '服务响应:7×24h',
  37. desc: '7×24小时专业安全团队在线,攻击告警秒级推送,VIP客户专属技术通道,确保任何时刻都有人为你的业务兜底。'
  38. }
  39. ]
  40. </script>
  41. <style lang="scss" scoped>
  42. .about-dcard {
  43. position: relative;
  44. box-sizing: border-box;
  45. max-width: 1200px;
  46. margin: 64px auto 130px;
  47. display: flex;
  48. gap: 30px;
  49. .icon-wrapper {
  50. position: relative;
  51. .dcard-icon {
  52. width: auto;
  53. height: auto;
  54. display: block;
  55. }
  56. }
  57. .dcard-item:hover .icon-wrapper {
  58. &::before {
  59. content: '';
  60. position: absolute;
  61. top: 50%;
  62. left: 50%;
  63. transform: translate(-50%, -50%);
  64. width: 86px;
  65. height: 86px;
  66. background: #7D46FF;
  67. filter: blur(38px);
  68. }
  69. }
  70. .dcard-item {
  71. overflow: hidden;
  72. position: relative;
  73. width: 278px;
  74. height: 400px;
  75. border-radius: 24px;
  76. border: 1px solid rgba(163, 157, 255, 0.30);
  77. background: #030014;
  78. padding: 28px 22px 0;
  79. display: flex;
  80. flex-direction: column;
  81. align-items: center;
  82. color: #FFF;
  83. transition: border-color 0.3s ease;
  84. &:hover {
  85. border-color: #ADA8FF;
  86. }
  87. &::before {
  88. content: "";
  89. position: absolute;
  90. top: 0;
  91. left: 50%;
  92. transform: translateX(-50%);
  93. width: 278px;
  94. height: 80px;
  95. background: conic-gradient(rgba(125, 70, 255, .4) 0deg, rgba(82, 229, 255, .4) 180deg, rgba(88, 91, 255, .4) 360deg);
  96. filter: blur(50px);
  97. opacity: 1;
  98. transition: opacity 0.3s ease;
  99. }
  100. &:hover::before {
  101. opacity: 0;
  102. }
  103. &::after {
  104. content: "";
  105. position: absolute;
  106. bottom: 0px;
  107. left: 50%;
  108. transform: translateX(-50%);
  109. width: 278px;
  110. height: 60px;
  111. background: linear-gradient(90deg,
  112. rgba(125, 70, 255, 1) 30%,
  113. rgba(82, 229, 255, 1) 30%);
  114. filter: blur(50px);
  115. opacity: 0;
  116. transition: opacity 0.3s ease;
  117. }
  118. &:hover::after {
  119. opacity: 1;
  120. }
  121. .dcard-title {
  122. margin-top: 38px;
  123. font-size: 20px;
  124. font-weight: 500;
  125. }
  126. .dcard-subtitle {
  127. margin-top: 12px;
  128. display: inline-flex;
  129. height: 34px;
  130. width: 164px;
  131. justify-content: center;
  132. align-items: center;
  133. font-size: 16px;
  134. font-weight: 400;
  135. border-radius: 20px;
  136. background: linear-gradient(180deg, rgba(32, 0, 84, 0.00) 0%, #4905B7 100%);
  137. box-shadow: 0 4px 4px 0 rgba(98, 0, 255, 0.30) inset;
  138. }
  139. .dcard-desc {
  140. margin-top: 26px;
  141. font-size: 14px;
  142. font-weight: 400;
  143. line-height: 24px;
  144. }
  145. }
  146. }
  147. </style>