diff --git a/app/service/ContentService.php b/app/service/ContentService.php index 89fcde6..3a371d4 100644 --- a/app/service/ContentService.php +++ b/app/service/ContentService.php @@ -467,8 +467,13 @@ class ContentService { 'check_status' => 3, 'is_del'=>1, ]; - if($param['isTop'] != 2){ - $where['is_top'] = 1; + switch ($param['isTop']) { + case 1: + $where['is_top'] = 1; + break; + case 2: + $where['is_top'] = 2; + break; } if($param['isCommend'] != 2){ $where['is_recommend'] = 1; diff --git a/public/themes/dist_static/static/css/solution.css b/public/themes/dist_static/static/css/solution.css index c1f62fc..f9b4fd8 100644 --- a/public/themes/dist_static/static/css/solution.css +++ b/public/themes/dist_static/static/css/solution.css @@ -203,6 +203,9 @@ font-weight: 400; line-height: var(--font-64); } +.sl-clients__viewport { + width: 100%; +} .sl-clients__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); @@ -227,6 +230,34 @@ object-fit: contain; } +/* 超过 5 个:CSS 横向无缝循环(内容在模板里复制一份) */ +.sl-clients__viewport.is-marquee { + overflow: hidden; + container-type: inline-size; +} +.sl-clients__viewport.is-marquee .sl-clients__grid { + display: flex; + width: max-content; + gap: 1.5rem; + animation: sl-clients-marquee 30s linear infinite; +} +.sl-clients__viewport.is-marquee .sl-clients__item { + flex: 0 0 calc((100cqi - 6rem) / 5); + width: calc((100cqi - 6rem) / 5); +} +.sl-clients__viewport.is-marquee:hover .sl-clients__grid { + animation-play-state: paused; +} +@keyframes sl-clients-marquee { + from { transform: translateX(0); } + to { transform: translateX(-50%); } +} +@media (prefers-reduced-motion: reduce) { + .sl-clients__viewport.is-marquee .sl-clients__grid { + animation: none; + } +} + .sl-cases { position: relative; padding-top: 7.5rem; @@ -418,6 +449,10 @@ .sl-clients__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } + .sl-clients__viewport.is-marquee .sl-clients__item { + flex-basis: calc((100cqi - 4.5rem) / 4); + width: calc((100cqi - 4.5rem) / 4); + } .sl-cases__body { grid-template-columns: 1fr; gap: 40Px; @@ -442,6 +477,10 @@ .sl-clients__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } + .sl-clients__viewport.is-marquee .sl-clients__item { + flex-basis: calc((100cqi - 3rem) / 3); + width: calc((100cqi - 3rem) / 3); + } .sl-cases__nav { margin-top: 24Px; } @@ -471,6 +510,13 @@ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12Px; } + .sl-clients__viewport.is-marquee .sl-clients__grid { + gap: 12Px; + } + .sl-clients__viewport.is-marquee .sl-clients__item { + flex-basis: calc((100cqi - 12Px) / 2); + width: calc((100cqi - 12Px) / 2); + } .sl-clients__item { height: 100Px; } diff --git a/public/themes/dist_static/static/js/solution2.js b/public/themes/dist_static/static/js/solution2.js index bf92b4e..7c7b128 100644 --- a/public/themes/dist_static/static/js/solution2.js +++ b/public/themes/dist_static/static/js/solution2.js @@ -75,6 +75,13 @@ function initMoreSwiper() { const root = document.querySelector(".sl2-more"); const el = root?.querySelector(".sl2-more__swiper"); if (!root || !el || !window.Swiper) return; + const slideCount = el.querySelectorAll(".swiper-wrapper > .swiper-slide").length; + // 一屏展示 3 条,不超过 3 条时隐藏切换按钮 + if (slideCount <= 3) { + root.querySelectorAll(".sl2-more__head .s-arrows, .sl2-more__arrows-mobile").forEach((node) => { + node.style.display = "none"; + }); + } new window.Swiper(el, { slidesPerView: 3, spaceBetween: 40, diff --git a/public/themes/website/1/zh/demo/news.html b/public/themes/website/1/zh/demo/news.html index cb59d25..ab7700c 100644 --- a/public/themes/website/1/zh/demo/news.html +++ b/public/themes/website/1/zh/demo/news.html @@ -93,11 +93,16 @@