DCard.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <section class="mb-about-dcard">
  3. <div class="mb-dcard-item" v-for="item in dcards" :key="item.icon">
  4. <div class="mb-icon-wrapper">
  5. <img :src="item.icon" alt="icon" class="mb-dcard-icon" />
  6. </div>
  7. <div class="mb-dcard-title">{{ item.title }}</div>
  8. <div class="mb-dcard-subtitle">{{ item.subTitle }}</div>
  9. <div class="mb-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. .mb-about-dcard {
  43. width: 100%;
  44. position: relative;
  45. box-sizing: border-box;
  46. margin: 20px auto 32px;
  47. display: grid;
  48. grid-template-columns: repeat(2, 1fr);
  49. gap: 8px;
  50. .mb-icon-wrapper {
  51. position: relative;
  52. .mb-dcard-icon {
  53. position: relative;
  54. width: 48px;
  55. height: auto;
  56. display: block;
  57. z-index: 1;
  58. }
  59. }
  60. .mb-icon-wrapper {
  61. &::before {
  62. content: '';
  63. position: absolute;
  64. top: 50%;
  65. left: 50%;
  66. transform: translate(-50%, -50%);
  67. width: 40px;
  68. height: 40px;
  69. background: #7D46FF;
  70. filter: blur(20px);
  71. z-index: 0;
  72. }
  73. }
  74. .mb-dcard-item {
  75. overflow: hidden;
  76. position: relative;
  77. box-sizing: border-box;
  78. width: 168px;
  79. min-height: 242px;
  80. border-radius: 16px;
  81. border: 1px solid #ADA8FF;
  82. background: #030014;
  83. padding: 8px 14px 16px;
  84. display: flex;
  85. flex-direction: column;
  86. align-items: center;
  87. color: #FFF;
  88. transition: border-color 0.3s ease;
  89. &::after {
  90. content: "";
  91. position: absolute;
  92. bottom: 0px;
  93. left: 50%;
  94. transform: translateX(-50%);
  95. width: 100%;
  96. height: 20px;
  97. background: linear-gradient(90deg,
  98. rgba(125, 70, 255, 1) 30%,
  99. rgba(82, 229, 255, 1) 30%);
  100. filter: blur(50px);
  101. transition: opacity 0.3s ease;
  102. }
  103. .mb-dcard-title {
  104. margin-top: 16px;
  105. font-size: 14px;
  106. font-weight: 500;
  107. text-align: center;
  108. }
  109. .mb-dcard-subtitle {
  110. margin-top: 8px;
  111. display: inline-flex;
  112. height: 24px;
  113. width: auto;
  114. padding: 0 10px;
  115. justify-content: center;
  116. align-items: center;
  117. font-size: 12px;
  118. font-weight: 400;
  119. border-radius: 12px;
  120. background: linear-gradient(180deg, rgba(32, 0, 84, 0.00) 0%, #4905B7 100%);
  121. box-shadow: 0 4px 4px 0 rgba(98, 0, 255, 0.30) inset;
  122. }
  123. .mb-dcard-desc {
  124. margin-top: 12px;
  125. font-size: 10px;
  126. font-weight: 400;
  127. line-height: 18px;
  128. text-align: center;
  129. }
  130. }
  131. }
  132. </style>