DCard.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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. &::before {
  84. content: "";
  85. position: absolute;
  86. top: 0;
  87. left: 50%;
  88. transform: translateX(-50%);
  89. width: 278px;
  90. height: 80px;
  91. background: conic-gradient(rgba(125, 70, 255, .4) 0deg, rgba(82, 229, 255, .4) 180deg, rgba(88, 91, 255, .4) 360deg);
  92. filter: blur(50px);
  93. opacity: 1;
  94. transition: opacity 0.3s ease;
  95. }
  96. &:hover::before {
  97. opacity: 0;
  98. }
  99. &::after {
  100. content: "";
  101. position: absolute;
  102. bottom: 0px;
  103. left: 50%;
  104. transform: translateX(-50%);
  105. width: 278px;
  106. height: 60px;
  107. background: linear-gradient(90deg,
  108. rgba(125, 70, 255, 1) 30%,
  109. rgba(82, 229, 255, 1) 30%);
  110. filter: blur(50px);
  111. opacity: 0;
  112. transition: opacity 0.3s ease;
  113. }
  114. &:hover::after {
  115. opacity: 1;
  116. }
  117. .dcard-title {
  118. margin-top: 38px;
  119. font-size: 20px;
  120. font-weight: 500;
  121. }
  122. .dcard-subtitle {
  123. margin-top: 12px;
  124. display: inline-flex;
  125. height: 34px;
  126. width: 146px;
  127. justify-content: center;
  128. align-items: center;
  129. font-size: 16px;
  130. font-weight: 400;
  131. border-radius: 20px;
  132. // border: 1px solid rgba(13, 0, 34, 0.00);
  133. background: linear-gradient(180deg, rgba(32, 0, 84, 0.00) 0%, #4905B7 100%);
  134. box-shadow: 0 4px 4px 0 rgba(98, 0, 255, 0.30) inset;
  135. }
  136. .dcard-desc {
  137. margin-top: 26px;
  138. font-size: 14px;
  139. font-weight: 400;
  140. line-height: 24px;
  141. }
  142. }
  143. }
  144. </style>