refactor: 专题 - 电力品线 修改

This commit is contained in:
2025-11-26 17:46:09 +08:00
parent 61c627305b
commit 0ff0b17f7a
8 changed files with 1135 additions and 879 deletions

View File

@@ -20,15 +20,16 @@
</div> </div>
</a> </a>
<!-- 轮播核心容器 --> <!-- 轮播核心容器 -->
<div class="swiper-container auto-swiper-container"> <div class="swiper-container auto-swiper-container" >
{notempty name="data.focus_image"} {notempty name="data.focus_image"}
<div class="swiper-wrapper"> <div class="swiper-wrapper">
{volist name="data.focus_image" id="fo"} {volist name="data.focus_image" id="fo"}
<a class="swiper-slide auto-swiper-slide"> <a class="swiper-slide auto-swiper-slide" href="{$fo.link}">
<img src="{$fo.image}" alt="{$fo.title}" href="{$fo.link}" /> <img src="{$fo.image}" alt="{$fo.title}" />
</a> </a>
{/volist} {/volist}
</div> </div>
<div class="swiper-pagination"></div>
{/notempty} {/notempty}
</div> </div>
<!-- 分类 --> <!-- 分类 -->
@@ -49,18 +50,21 @@
<h2 class="advantage-section__title">{$why_choose_title.title|default=''}</h2> <h2 class="advantage-section__title">{$why_choose_title.title|default=''}</h2>
<div class="advantage-section__list"> <div class="advantage-section__list">
{volist name="data.why_choose" id="ch"} {volist name="data.why_choose" id="ch"}
<div class="advantage-card" data-target="design">
<img src="{$ch.image}" alt="{$ch.title}:{$ch.short_title}" class="advantage-card__img"> <div class="advantage-card-wrap">
<div class="advantage-card__content"> <div class="advantage-card" data-target="design">
<!-- 标题+箭头容器:水平+垂直双居中,内部文字左、箭头右 --> <img src="{$ch.image}" alt="{$ch.title}:{$ch.short_title}" class="advantage-card__img">
<div class="advantage-card__heading-wrap"> <div class="advantage-card__content">
<div class="advantage-card__heading" {:style(['color'=>$ch.title_txt_color])}>{$ch.title}</div> <!-- 标题+箭头容器:水平+垂直双居中,内部文字左、箭头右 -->
<img src="__IMAGES__/jiant.png" alt="" class="card-arrow"> <div class="advantage-card__heading-wrap">
<div class="advantage-card__heading" {:style(['color'=>$ch.title_txt_color])}>{$ch.title}</div>
<img src="__IMAGES__/jiant.png" alt="" class="card-arrow">
</div>
<div class="advantage-card__description" {:style(['color'=>$ch.short_title_txt_color])}>{$ch.short_title}</div>
<div style="display:none;" class="mack-conten-text">{$ch.desc|raw}</div>
</div> </div>
<div class="advantage-card__description" {:style(['color'=>$ch.short_title_txt_color])}>{$ch.short_title}</div>
<div style="display:none;" class="mack-conten-text">{$ch.desc|raw}</div>
</div> </div>
</div> </div>
{/volist} {/volist}
</div> </div>
</div> </div>
@@ -99,16 +103,18 @@
<div class="product-card-box"> <div class="product-card-box">
<div class="product-card-container"> <div class="product-card-container">
{volist name="tc_second_section" id="tss"} {volist name="tc_second_section" id="tss"}
<a class="product-card" href="{$tss.link}"> <a class="product-card-wrap" href="{$tss.link}">
<div class="product-card-img"> <div class="product-card" >
<img src="{$tss.image}" alt="{$tss.title}"> <div class="product-card-img">
</div> <img src="{$tss.image}" alt="{$tss.title}">
<div class="product-card-text"> </div>
<div class="product-card-title" {:style(['color'=>$tss.title_txt_color])}>{$tss.title}</div> <div class="product-card-text">
<div class="product-card-desc" {:style(['color'=>$tss.short_title_txt_color])}>{$tss.short_title}</div> <div class="product-card-title" {:style(['color'=>$tss.title_txt_color])}>{$tss.title}</div>
</div> <div class="product-card-desc" {:style(['color'=>$tss.short_title_txt_color])}>{$tss.short_title}</div>
<div class="product-card-link"> </div>
<img src="__IMAGES__/ljgd.png" alt="查看更多"> <div class="product-card-link">
<img src="__IMAGES__/ljgd.png" alt="查看更多">
</div>
</div> </div>
</a> </a>
{/volist} {/volist}
@@ -159,16 +165,18 @@
<div class="product-card-box"> <div class="product-card-box">
<div class="product-card-container"> <div class="product-card-container">
{volist name="hc_second_section" id="hcs"} {volist name="hc_second_section" id="hcs"}
<a class="product-card" href="#"> <a class="product-card-wrap" href="{$tss.link}">
<div class="product-card-img"> <div class="product-card" href="#">
<img src="{$hcs.image}" alt="{$hcs.short_title}"> <div class="product-card-img">
</div> <img src="{$hcs.image}" alt="{$hcs.short_title}">
<div class="product-card-text"> </div>
<div class="product-card-title">{$hcs.title}</div> <div class="product-card-text">
<div class="product-card-desc">{$hcs.short_title}</div> <div class="product-card-title">{$hcs.title}</div>
</div> <div class="product-card-desc">{$hcs.short_title}</div>
<div class="product-card-link"> </div>
<img src="__IMAGES__/ljgd.png" alt="查看更多"> <div class="product-card-link">
<img src="__IMAGES__/ljgd.png" alt="查看更多">
</div>
</div> </div>
</a> </a>
{/volist} {/volist}
@@ -198,7 +206,7 @@
<a class="product-left" href="{$tc_first_section_lf.link}"> <a class="product-left" href="{$tc_first_section_lf.link}">
<img src="{$dc_first_section_lf.image}" alt="{$dc_first_section_lf.short_title}" class="product-img"> <img src="{$dc_first_section_lf.image}" alt="{$dc_first_section_lf.short_title}" class="product-img">
<!-- 公共类+定位类:尺寸和第一个完全一致,仅定位不同 --> <!-- 公共类+定位类:尺寸和第一个完全一致,仅定位不同 -->
<div class="product-img-hover product-img-2"> <div class="product-img-hover product-img-2" >
<img src="{$dc_first_section_lf.extra_image}" alt="{$dc_first_section_lf.short_title}"> <img src="{$dc_first_section_lf.extra_image}" alt="{$dc_first_section_lf.short_title}">
</div> </div>
</a> </a>
@@ -208,9 +216,10 @@
<div class="product-right"> <div class="product-right">
<img src="{$dc_first_section_lr.image}" <img src="{$dc_first_section_lr.image}"
alt="使用场景" class="right-content right-img"> alt="使用场景" class="right-content right-img">
<!--muted loop playsinline controls-->
<video <video
src="https://www.orico.com.cn/storage/videos/banner/20250712/403305b404b4b46f5ef6b43e3f2e8761.mp4" src="{$dc_first_section_lr.video}"
class="right-content right-video" muted loop playsinline controls style="display: none;"> class="right-content right-video" style="display: none;">
您的浏览器不支持HTML5视频播放请升级浏览器 您的浏览器不支持HTML5视频播放请升级浏览器
</video> </video>
</div> </div>
@@ -305,11 +314,11 @@
{notempty name="cts_lf"} {notempty name="cts_lf"}
<a class="product-left" href="{$cts_lf.link}"> <a class="product-left" href="{$cts_lf.link}">
<img src="{$cts_lf.image}" alt="{$cts_lf.title}" class="product-img"> <img src="{$cts_lf.image}" alt="{$cts_lf.title}" class="product-img">
<!-- 公共类+定位类:尺寸统一,定位不同 --> <!-- 公共类+定位类:尺寸统一,定位不同 -->
<!--style="display:flex;justify-content: center;"--> <!--style="display:flex;justify-content: center;"-->
<div class="product-img-hover product-img-1" > <div class="product-img-hover product-img-1" >
<!--style="width:70%"--> <!-- style="width:70%"-->
<img src="{$cts_lf.extra_image}" alt="{$cts_lf.title}" > <img src="{$cts_lf.extra_image}" alt="{$cts_lf.title}">
</div> </div>
</a> </a>
{/notempty} {/notempty}
@@ -348,84 +357,109 @@
<div class="mask" id="mask"> <div class="mask" id="mask">
<div class="mask-content" > <div class="mask-content" >
<span class="close-btn">&times;</span> <span class="close-btn">&times;</span>
<div class="mask-scroll-content"></div>
</div> </div>
</div> </div>
{/block} {/block}
{block name="script"} {block name="script"}
<script type="text/javascript"> <script type="text/javascript">
let swiper=null;
const advantageItems = document.querySelectorAll('.advantage-card'); const advantageItems = document.querySelectorAll('.advantage-card');
const mask = document.getElementById('mask');
const closeBtn = document.querySelector('.close-btn');
const maskContent = document.querySelector('.mask-content');
const mackContentText = document.querySelector('.mack-conten-text');
let closeBtnHtml = null
let scrollTop = 0; // 保存页面滚动位置 let scrollTop = 0; // 保存页面滚动位置
// 显示蒙版:禁止滚动 + 保存滚动位置 let closeBtnHtml = null; // 关闭按钮元素(全局变量,避免重复创建)
function createCloseBtn() { const mask = document.getElementById('mask');
const maskContent = document.querySelector('.mask-content');
const maskScrollContent = document.querySelector('.mask-scroll-content'); // 滚动容器(关键!)
const closeBtn = document.querySelector('.close-btn')
// 初始化:确保 maskScrollContent 存在于 maskContent 中(避免被清空)
if (!maskScrollContent) {
// 如果页面没有 mask-scroll-content动态创建确保结构稳定
const scrollContent = document.createElement('div');
scrollContent.className = 'mask-scroll-content';
maskContent.appendChild(scrollContent);
}
function createCloseBtn() {
if (closeBtnHtml) { if (closeBtnHtml) {
closeBtnHtml.remove(); closeBtnHtml.remove();
} }
// 创建关闭按钮元素
closeBtnHtml = document.createElement('span'); closeBtnHtml = document.createElement('span');
closeBtnHtml.className = 'close-btn'; closeBtnHtml.className = 'close-btn';
closeBtnHtml.innerHTML = '&times;'; // 关闭符号(×) closeBtnHtml.innerHTML = '&times;';
// 绑定关闭事件
closeBtnHtml.addEventListener('click', hideMask); closeBtnHtml.addEventListener('click', hideMask);
// 添加到maskScrollContent(作为第一个子元素) // 挂载到 maskContent而非 scrollContent),避免被滚动影响位置
maskContent.prepend(closeBtnHtml); maskContent.prepend(closeBtnHtml);
} }
function showMask(contentHtml) { function showMask(contentHtml) {
// 保存当前页面滚动位置(避免 fixed 导致页面跳顶) // 保存页面滚动位置
scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
maskContent.innerHTML = contentHtml;
createCloseBtn()
// 显示蒙版
mask.style.display = 'flex';
// 禁止 html + body 滚动 // 关键:将内容填充到 scrollContent 中(而非直接替换 maskContent
document.documentElement.classList.add('no-scroll'); maskScrollContent.innerHTML = contentHtml;
document.body.classList.add('no-scroll'); createCloseBtn();
// 强制让页面停留在原滚动位置(关键!)
document.body.style.top = `-${scrollTop}px`; // 显示蒙版
mask.style.display = 'flex';
// 禁止滚动(复用你的逻辑)
document.documentElement.classList.add('no-scroll');
document.body.classList.add('no-scroll');
document.body.style.top = `-${scrollTop}px`;
// 额外:打开蒙版时就重置滚动位置(避免残留上次滚动状态)
maskScrollContent.scrollTop = 0;
} }
// 隐藏蒙版:恢复滚动 + 还原滚动位置
function hideMask() { function hideMask() {
// 隐藏蒙版 // 关键步骤 1先重置 scrollContent 的滚动位置(此时元素还未被销毁)
mask.style.display = 'none'; maskScrollContent.scrollTop = 0;
// 恢复 html + body 滚动
document.documentElement.classList.remove('no-scroll');
document.body.classList.remove('no-scroll');
maskContent.innerHTML = ""
// 还原页面到之前的滚动位置
window.scrollTo(0, scrollTop);
document.body.style.top = ''; // 清除临时样式
}
// 点击卡片显示详情 // 关键步骤 2清空 scrollContent 的内容(而非 maskContent
maskScrollContent.innerHTML = "";
// 隐藏蒙版
mask.style.display = 'none';
// 恢复滚动(复用你的逻辑)
document.documentElement.classList.remove('no-scroll');
document.body.classList.remove('no-scroll');
document.body.style.top = '';
// 还原页面滚动位置
window.scrollTo(0, scrollTop);
// 移除关闭按钮(可选,避免残留)
if (closeBtnHtml) {
closeBtnHtml.remove();
closeBtnHtml = null;
}
}
// 点击卡片显示详情
advantageItems.forEach((item) => { advantageItems.forEach((item) => {
item.addEventListener('click', (e) => { item.addEventListener('click', (e) => {
// 获取当前点击卡片内的.mack-conten-text元素 // 获取当前点击卡片内的.mack-conten-text元素
const currentMackContent = e.currentTarget.querySelector('.mack-conten-text'); const currentMackContent = e.currentTarget.querySelector('.mack-conten-text');
if (currentMackContent) { if (currentMackContent) {
// 关键修改获取该元素的子内容innerHTML 本身就是内部HTML不含当前元素标签 // 关键修改获取该元素的子内容innerHTML 本身就是内部HTML不含当前元素标签
// 若想更彻底,可遍历子节点拼接内容(兼容特殊场景) // 若想更彻底,可遍历子节点拼接内容(兼容特殊场景)
let contentHtml = ''; let contentHtml = '';
Array.from(currentMackContent.childNodes).forEach(child => { Array.from(currentMackContent.childNodes).forEach(child => {
// 只保留元素节点和文本节点(过滤空节点) // 只保留元素节点和文本节点(过滤空节点)
if (child.nodeType === 1 || child.nodeType === 3) { if (child.nodeType === 1 || child.nodeType === 3) {
contentHtml += child.outerHTML || child.textContent; contentHtml += child.outerHTML || child.textContent;
} }
}); });
// 显示蒙版并传入纯净的子内容 // 显示蒙版并传入纯净的子内容
showMask(contentHtml); showMask(contentHtml);
} }
});
}); });
});
// 关闭按钮事件 // 关闭按钮事件
closeBtn.addEventListener('click', hideMask); closeBtn.addEventListener('click', hideMask);
// 点击蒙版背景关闭(可选) // 点击蒙版背景关闭(可选)
@@ -505,5 +539,47 @@
stopAllVideos(); // 无活跃视频时停止所有播放 stopAllVideos(); // 无活跃视频时停止所有播放
} }
}); });
window.onload = function () {
if (typeof Swiper === 'undefined') {
console.error('Swiper加载失败请刷新页面重试');
return;
}
swiper = new Swiper('.auto-swiper-container', {
autoplay: {
delay: 113000, // 3秒切换
disableOnInteraction: false,
},
loop: true,
slidesPerView: 1,
spaceBetween: 0,
// 启用分页指示标(核心配置)
pagination: {
el: '.swiper-pagination', // 对应 HTML 中的指示标容器
clickable: true, // 允许点击指示标切换
// dynamicBullets: true, // 动态指示标(当前激活放大)
//dynamicMainBullets: 3, // 动态模式显示3个核心指示标
},
navigation: false,
scrollbar: false,
on: {
resize: function () {
this.update();
},
},
});
window.addEventListener('resize', function () {
swiper.update();
});
// 初始化时触发滚动事件,确保状态正确
window.dispatchEvent(new Event('scroll'));
};
</script> </script>
{/block} {/block}

View File

@@ -20,22 +20,23 @@
</div> </div>
</a> </a>
<!-- 轮播核心容器 --> <!-- 轮播核心容器 -->
<div class="swiper-container auto-swiper-container"> <div class="swiper-container auto-swiper-container" >
{notempty name="data.focus_image"} {notempty name="data.focus_image"}
<div class="swiper-wrapper"> <div class="swiper-wrapper">
{volist name="data.focus_image" id="fo"} {volist name="data.focus_image" id="fo"}
<a class="swiper-slide auto-swiper-slide"> <a class="swiper-slide auto-swiper-slide" href="{$fo.link}">
<img src="{$fo.image}" alt="{$fo.title}" href="{$fo.link}" /> <img src="{$fo.image}" alt="{$fo.title}" />
</a> </a>
{/volist} {/volist}
</div> </div>
<div class="swiper-pagination"></div>
{/notempty} {/notempty}
</div> </div>
<!-- 分类 --> <!-- 分类 -->
{notempty name="data.category"} {notempty name="data.category"}
<div class="nav-box"> <div class="nav-box">
{volist name="data.category" id="ca"} {volist name="data.category" id="ca"}
<a class="nav-item" href="https://www.baidu.com"> <a class="nav-item" href="{$ca.link}">
<img src="{$ca.image}" alt="{$ca.title}"> <img src="{$ca.image}" alt="{$ca.title}">
<p {:style(['color'=>$ca.title_txt_color])}>{$ca.title}</p> <p {:style(['color'=>$ca.title_txt_color])}>{$ca.title}</p>
</a> </a>
@@ -45,21 +46,25 @@
<!-- 500万 --> <!-- 500万 -->
{notempty name="data.why_choose"} {notempty name="data.why_choose"}
<div class="advantage-section"> <div class="advantage-section">
<h2 class="advantage-section__title">为什么500万+消费者 选择奥睿科?</h2> {assign name="why_choose_title" value=":array_shift($data.why_choose)" /}
<h2 class="advantage-section__title">{$why_choose_title.title|default=''}</h2>
<div class="advantage-section__list"> <div class="advantage-section__list">
{volist name="data.why_choose" id="ch"} {volist name="data.why_choose" id="ch"}
<div class="advantage-card" data-target="design">
<img src="{$ch.image}" alt="{$ch.title}:{$ch.short_title}" class="advantage-card__img"> <div class="advantage-card-wrap">
<div class="advantage-card__content"> <div class="advantage-card" data-target="design">
<!-- 标题+箭头容器:水平+垂直双居中,内部文字左、箭头右 --> <img src="{$ch.image}" alt="{$ch.title}:{$ch.short_title}" class="advantage-card__img">
<div class="advantage-card__heading-wrap"> <div class="advantage-card__content">
<div class="advantage-card__heading" {:style(['color'=>$ch.title_txt_color])}>{$ch.title}</div> <!-- 标题+箭头容器:水平+垂直双居中,内部文字左、箭头右 -->
<img src="__IMAGES__/jiant.png" alt="" class="card-arrow"> <div class="advantage-card__heading-wrap">
<div class="advantage-card__heading" {:style(['color'=>$ch.title_txt_color])}>{$ch.title}</div>
<img src="__IMAGES__/jiant.png" alt="" class="card-arrow">
</div>
<div class="advantage-card__description" {:style(['color'=>$ch.short_title_txt_color])}>{$ch.short_title}</div>
<div style="display:none;" class="mack-conten-text">{$ch.desc|raw}</div>
</div> </div>
<div class="advantage-card__description" {:style(['color'=>$ch.short_title_txt_color])}>{$ch.short_title}</div>
<div style="display:none;" class="mack-conten-text">{$ch.desc|raw}</div>
</div> </div>
</div> </div>
{/volist} {/volist}
</div> </div>
</div> </div>
@@ -67,9 +72,10 @@
<!-- 产品差旅充 --> <!-- 产品差旅充 -->
{notempty name="data.travel_charger"} {notempty name="data.travel_charger"}
<div class="product-box"> <div class="product-box">
{assign name="tc_title" value=":array_shift($data.travel_charger)" /}
<div class="product-title"> <div class="product-title">
<h2 class="product-title-h2">差旅充</h2> <h2 class="product-title-h2">{$tc_title.title|default=''}</h2>
<p class="product-title-p">出差旅行, 一收就走</p> <p class="product-title-p">{$tc_title.short_title|default=''}</p>
</div> </div>
<div class="product-container" > <div class="product-container" >
{assign name="tc_first_section_lf" value=":array_shift($data.travel_charger)" /} {assign name="tc_first_section_lf" value=":array_shift($data.travel_charger)" /}
@@ -97,16 +103,18 @@
<div class="product-card-box"> <div class="product-card-box">
<div class="product-card-container"> <div class="product-card-container">
{volist name="tc_second_section" id="tss"} {volist name="tc_second_section" id="tss"}
<a class="product-card" href="{$tss.link}"> <a class="product-card-wrap" href="{$tss.link}">
<div class="product-card-img"> <div class="product-card" >
<img src="{$tss.image}" alt="{$tss.title}"> <div class="product-card-img">
</div> <img src="{$tss.image}" alt="{$tss.title}">
<div class="product-card-text"> </div>
<div class="product-card-title" {:style(['color'=>$tss.title_txt_color])}>{$tss.title}</div> <div class="product-card-text">
<div class="product-card-desc" {:style(['color'=>$tss.short_title_txt_color])}>{$tss.short_title}</div> <div class="product-card-title" {:style(['color'=>$tss.title_txt_color])}>{$tss.title}</div>
</div> <div class="product-card-desc" {:style(['color'=>$tss.short_title_txt_color])}>{$tss.short_title}</div>
<div class="product-card-link"> </div>
<img src="__IMAGES__/ljgd.png" alt="查看更多"> <div class="product-card-link">
<img src="__IMAGES__/ljgd.png" alt="查看更多">
</div>
</div> </div>
</a> </a>
{/volist} {/volist}
@@ -126,9 +134,10 @@
<!-- 产品 家居充--> <!-- 产品 家居充-->
{notempty name="data.home_charger"} {notempty name="data.home_charger"}
<div class="product-box"> <div class="product-box">
{assign name="hc_title" value=":array_shift($data.home_charger)" /}
<div class="product-title"> <div class="product-title">
<h2 class="product-title-h2">家居充</h2> <h2 class="product-title-h2">{$hc_title.title|default=''}</h2>
<p class="product-title-p">自在充能, 邂逅生活美学</p> <p class="product-title-p">{$hc_title.short_title|default=''}</p>
</div> </div>
<div class="product-container"> <div class="product-container">
{assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /} {assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /}
@@ -156,16 +165,18 @@
<div class="product-card-box"> <div class="product-card-box">
<div class="product-card-container"> <div class="product-card-container">
{volist name="hc_second_section" id="hcs"} {volist name="hc_second_section" id="hcs"}
<a class="product-card" href="#"> <a class="product-card-wrap" href="{$tss.link}">
<div class="product-card-img"> <div class="product-card" href="#">
<img src="{$hcs.image}" alt="{$hcs.short_title}"> <div class="product-card-img">
</div> <img src="{$hcs.image}" alt="{$hcs.short_title}">
<div class="product-card-text"> </div>
<div class="product-card-title">{$hcs.title}</div> <div class="product-card-text">
<div class="product-card-desc">{$hcs.short_title}</div> <div class="product-card-title">{$hcs.title}</div>
</div> <div class="product-card-desc">{$hcs.short_title}</div>
<div class="product-card-link"> </div>
<img src="__IMAGES__/ljgd.png" alt="查看更多"> <div class="product-card-link">
<img src="__IMAGES__/ljgd.png" alt="查看更多">
</div>
</div> </div>
</a> </a>
{/volist} {/volist}
@@ -184,9 +195,10 @@
{/notempty} {/notempty}
<!-- 产品 桌面充(悬浮图上右超出)底部列表样式不一样(左文右图) --> <!-- 产品 桌面充(悬浮图上右超出)底部列表样式不一样(左文右图) -->
<div class="product-box"> <div class="product-box">
{assign name="dc_title" value=":array_shift($data.desktop_charger)" /}
<div class="product-title"> <div class="product-title">
<h2 class="product-title-h2">桌面充</h2> <h2 class="product-title-h2">{$dc_title.title|default=''}</h2>
<p class="product-title-p">精致桌面 高效美学</p> <p class="product-title-p">{$dc_title.short_title|default=''}</p>
</div> </div>
<div class="product-container"> <div class="product-container">
{assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /} {assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /}
@@ -204,9 +216,10 @@
<div class="product-right"> <div class="product-right">
<img src="{$dc_first_section_lr.image}" <img src="{$dc_first_section_lr.image}"
alt="使用场景" class="right-content right-img"> alt="使用场景" class="right-content right-img">
<!--muted loop playsinline controls-->
<video <video
src="https://www.orico.com.cn/storage/videos/banner/20250712/403305b404b4b46f5ef6b43e3f2e8761.mp4" src="{$dc_first_section_lr.video}"
class="right-content right-video" muted loop playsinline controls style="display: none;"> class="right-content right-video" style="display: none;">
您的浏览器不支持HTML5视频播放请升级浏览器 您的浏览器不支持HTML5视频播放请升级浏览器
</video> </video>
</div> </div>
@@ -248,9 +261,10 @@
<!-- 墙插 --> <!-- 墙插 -->
{notempty name="data.wall_charger"} {notempty name="data.wall_charger"}
<div class="product-box"> <div class="product-box">
{assign name="wc_title" value=":array_shift($data.wall_charger)" /}
<div class="product-title"> <div class="product-title">
<h2 class="product-title-h2">墙插</h2> <h2 class="product-title-h2">{$wc_title.title|default=''}</h2>
<p class="product-title-p">1转多</p> <p class="product-title-p">{$wc_title.short_title|default=''}</p>
</div> </div>
<div class="product-container"> <div class="product-container">
{assign name="wc_first_section_lf" value=":array_shift($data.wall_charger)" /} {assign name="wc_first_section_lf" value=":array_shift($data.wall_charger)" /}
@@ -286,9 +300,10 @@
{notempty name="data.converter"} {notempty name="data.converter"}
<!-- 转换器 --> <!-- 转换器 -->
<div class="product-box"> <div class="product-box">
{assign name="ct_title" value=":array_shift($data.converter)" /}
<div class="product-title"> <div class="product-title">
<h2 class="product-title-h2">转换器</h2> <h2 class="product-title-h2">{$ct_title.title|default=''}</h2>
<p class="product-title-p">随你看世界</p> <p class="product-title-p">{$ct_title.short_title|default=''}</p>
</div> </div>
{assign name="ct_more_section" value=":array_pop($data.converter)" /} {assign name="ct_more_section" value=":array_pop($data.converter)" /}
{assign name="ct_chunk_section" value=":array_chunk($data.converter, 2)" /} {assign name="ct_chunk_section" value=":array_chunk($data.converter, 2)" /}
@@ -342,65 +357,90 @@
<div class="mask" id="mask"> <div class="mask" id="mask">
<div class="mask-content" > <div class="mask-content" >
<span class="close-btn">&times;</span> <span class="close-btn">&times;</span>
<div class="mask-scroll-content"></div>
</div> </div>
</div> </div>
{/block} {/block}
{block name="script"} {block name="script"}
<script type="text/javascript"> <script type="text/javascript">
let swiper=null;
const advantageItems = document.querySelectorAll('.advantage-card'); const advantageItems = document.querySelectorAll('.advantage-card');
const mask = document.getElementById('mask');
const closeBtn = document.querySelector('.close-btn');
const maskContent = document.querySelector('.mask-content');
const mackContentText = document.querySelector('.mack-conten-text');
let closeBtnHtml = null
let scrollTop = 0; // 保存页面滚动位置 let scrollTop = 0; // 保存页面滚动位置
// 显示蒙版:禁止滚动 + 保存滚动位置 let closeBtnHtml = null; // 关闭按钮元素(全局变量,避免重复创建)
function createCloseBtn() { const mask = document.getElementById('mask');
const maskContent = document.querySelector('.mask-content');
const maskScrollContent = document.querySelector('.mask-scroll-content'); // 滚动容器(关键!)
const closeBtn = document.querySelector('.close-btn')
// 初始化:确保 maskScrollContent 存在于 maskContent 中(避免被清空)
if (!maskScrollContent) {
// 如果页面没有 mask-scroll-content动态创建确保结构稳定
const scrollContent = document.createElement('div');
scrollContent.className = 'mask-scroll-content';
maskContent.appendChild(scrollContent);
}
function createCloseBtn() {
if (closeBtnHtml) { if (closeBtnHtml) {
closeBtnHtml.remove(); closeBtnHtml.remove();
} }
// 创建关闭按钮元素
closeBtnHtml = document.createElement('span'); closeBtnHtml = document.createElement('span');
closeBtnHtml.className = 'close-btn'; closeBtnHtml.className = 'close-btn';
closeBtnHtml.innerHTML = '&times;'; // 关闭符号(×) closeBtnHtml.innerHTML = '&times;';
// 绑定关闭事件
closeBtnHtml.addEventListener('click', hideMask); closeBtnHtml.addEventListener('click', hideMask);
// 添加到maskScrollContent(作为第一个子元素) // 挂载到 maskContent而非 scrollContent),避免被滚动影响位置
maskContent.prepend(closeBtnHtml); maskContent.prepend(closeBtnHtml);
} }
function showMask(contentHtml) { function showMask(contentHtml) {
// 保存当前页面滚动位置(避免 fixed 导致页面跳顶) // 保存页面滚动位置
scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
maskContent.innerHTML = contentHtml;
createCloseBtn()
// 显示蒙版
mask.style.display = 'flex';
// 禁止 html + body 滚动 // 关键:将内容填充到 scrollContent 中(而非直接替换 maskContent
document.documentElement.classList.add('no-scroll'); maskScrollContent.innerHTML = contentHtml;
document.body.classList.add('no-scroll'); createCloseBtn();
// 强制让页面停留在原滚动位置(关键!)
document.body.style.top = `-${scrollTop}px`; // 显示蒙版
mask.style.display = 'flex';
// 禁止滚动(复用你的逻辑)
document.documentElement.classList.add('no-scroll');
document.body.classList.add('no-scroll');
document.body.style.top = `-${scrollTop}px`;
// 额外:打开蒙版时就重置滚动位置(避免残留上次滚动状态)
maskScrollContent.scrollTop = 0;
} }
// 隐藏蒙版:恢复滚动 + 还原滚动位置
function hideMask() { function hideMask() {
// 隐藏蒙版 // 关键步骤 1先重置 scrollContent 的滚动位置(此时元素还未被销毁)
mask.style.display = 'none'; maskScrollContent.scrollTop = 0;
// 恢复 html + body 滚动
document.documentElement.classList.remove('no-scroll');
document.body.classList.remove('no-scroll');
maskContent.innerHTML = ""
// 还原页面到之前的滚动位置
window.scrollTo(0, scrollTop);
document.body.style.top = ''; // 清除临时样式
}
// 点击卡片显示详情 // 关键步骤 2清空 scrollContent 的内容(而非 maskContent
maskScrollContent.innerHTML = "";
// 隐藏蒙版
mask.style.display = 'none';
// 恢复滚动(复用你的逻辑)
document.documentElement.classList.remove('no-scroll');
document.body.classList.remove('no-scroll');
document.body.style.top = '';
// 还原页面滚动位置
window.scrollTo(0, scrollTop);
// 移除关闭按钮(可选,避免残留)
if (closeBtnHtml) {
closeBtnHtml.remove();
closeBtnHtml = null;
}
}
// 点击卡片显示详情
advantageItems.forEach((item) => { advantageItems.forEach((item) => {
item.addEventListener('click', (e) => { item.addEventListener('click', (e) => {
// 获取当前点击卡片内的.mack-conten-text元素 // 获取当前点击卡片内的.mack-conten-text元素
@@ -499,5 +539,47 @@
stopAllVideos(); // 无活跃视频时停止所有播放 stopAllVideos(); // 无活跃视频时停止所有播放
} }
}); });
window.onload = function () {
if (typeof Swiper === 'undefined') {
console.error('Swiper加载失败请刷新页面重试');
return;
}
swiper = new Swiper('.auto-swiper-container', {
autoplay: {
delay: 113000, // 3秒切换
disableOnInteraction: false,
},
loop: true,
slidesPerView: 1,
spaceBetween: 0,
// 启用分页指示标(核心配置)
pagination: {
el: '.swiper-pagination', // 对应 HTML 中的指示标容器
clickable: true, // 允许点击指示标切换
// dynamicBullets: true, // 动态指示标(当前激活放大)
//dynamicMainBullets: 3, // 动态模式显示3个核心指示标
},
navigation: false,
scrollbar: false,
on: {
resize: function () {
this.update();
},
},
});
window.addEventListener('resize', function () {
swiper.update();
});
// 初始化时触发滚动事件,确保状态正确
window.dispatchEvent(new Event('scroll'));
};
</script> </script>
{/block} {/block}

View File

@@ -1,229 +1,254 @@
/* 核心模块固定90%宽度PC端优化移动端边距 */ /* 核心模块固定90%宽度PC端优化移动端边距 */
.advantage-section { .advantage-section {
width: 90%; width: 90%;
margin: 0 auto; margin: 0 auto;
padding: 4rem 0 3rem 0; padding: 2rem 0;
position: relative; position: relative;
z-index: 1; z-index: 1;
} }
/* 标题容器:恢复原有居中样式 */ /* 标题容器:恢复原有居中样式 */
.advantage-section__title { .advantage-section__title {
font-size: clamp(1.5rem, 3vw, 2rem); font-size: clamp(1.5rem, 3vw, 2rem);
font-weight: 700; font-weight: 700;
text-align: center; text-align: center;
color: #333; color: #333;
line-height: 1.2; line-height: 1.2;
margin-bottom: clamp(1.5rem, 2vw, 2.5rem); margin-bottom: clamp(1.5rem, 2vw, 2.5rem);
} }
/* 列表容器优化gap确保移动端5列不溢出 */ /* 列表容器优化gap确保移动端5列不溢出 */
.advantage-section__list { .advantage-section__list {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
gap: clamp(0.1rem, 0.3vw, 0.8rem); gap: clamp(0.1rem, 0.3vw, 0.8rem);
width: 100%; width: 100%;
flex-wrap: nowrap; flex-wrap: nowrap;
overflow: hidden; overflow: hidden;
padding: 0 0.1rem; padding: 0 0.1rem;
} }
/* 卡片核心:优化宽高比和尺寸计算 */ /* 新增:卡片外层容器(专门控制圆角,避免缩放时丢失) */
.advantage-card { .advantage-card-wrap {
flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
min-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); min-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
max-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); max-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
border-radius: 0.5rem; border-radius: 0.5rem; /* 外层容器承担圆角 */
overflow: hidden; overflow: hidden; /* 裁剪内部缩放的卡片 */
box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); /* 阴影移到外层,避免缩放时阴影变形 */
transition: transform 0.3s ease; position: relative;
cursor: pointer; z-index: 1;
background: #fff; aspect-ratio: 1 / 1.7;
position: relative; }
z-index: 1;
aspect-ratio: 1 / 1.7; /* 卡片核心:优化宽高比和尺寸计算 */
/* PC端卡片高度略缩短更紧凑 */ .advantage-card {
} width: 100%;
height: 100%;
.advantage-card__img { cursor: pointer;
width: 100%; background: #fff;
height: 72%; position: relative;
/* PC端图片占比提升至72%,文字区域压缩 */ z-index: 1;
object-fit: cover; /* 关键修复添加will-change优化渲染移除原圆角和阴影移到外层 */
background-color: #f9f9f9; will-change: transform; /* 告知浏览器准备变换,避免圆角渲染异常 */
display: block; transition: transform 0.3s ease;
} }
/* 文字区域flex垂直分布确保标题和描述都垂直居中 */ .advantage-card__img {
.advantage-card__content { width: 100%;
width: 100%; height: 72%;
height: 28%; /* PC端图片占比提升至72%,文字区域压缩 */
/* PC端文字区域占比降至28% */ object-fit: cover;
padding: clamp(0.3rem, 0.4vw, 0.75rem); background-color: #f9f9f9;
display: flex; display: block;
flex-direction: column; }
justify-content: center;
/* 整体垂直居中 */ /* 文字区域flex垂直分布确保标题和描述都垂直居中 */
align-items: center; .advantage-card__content {
/* 子元素水平居中(关键) */ width: 100%;
/* text-align: center; */ height: 28%;
flex-shrink: 0; /* PC端文字区域占比降至28% */
gap: 4px; padding: clamp(0.3rem, 0.4vw, 0.75rem);
/* 标题和描述之间的垂直间距,避免贴边 */ display: flex;
} flex-direction: column;
justify-content: center;
/* 标题容器:水平居中+内部两端对齐,同时垂直居中 */ /* 整体垂直居中 */
.advantage-card__heading-wrap { align-items: center;
display: flex; /* 子元素水平居中(关键) */
align-items: center; /* text-align: center; */
/* 内部标题和箭头垂直对齐 */ flex-shrink: 0;
justify-content: space-between; gap: 4px;
/* 文字左、箭头右 */ /* 标题和描述之间的垂直间距,避免贴边 */
gap: 8px; }
width: 80%;
/* 限制宽度,体现居中效果 */ /* 标题容器:水平居中+内部两端对齐,同时垂直居中 */
/* 移除底部margin通过父容器gap控制间距 */ .advantage-card__heading-wrap {
} display: flex;
align-items: center;
/* 卡片标题:居左显示 */ /* 内部标题和箭头垂直对齐 */
.advantage-card__heading { justify-content: space-between;
font-size: clamp(0.85rem, 1.5vw, 1.4rem); /* 文字左、箭头右 */
/* 比原尺寸放大PC端更醒目移动端自适应 */ gap: 8px;
font-weight: 600; width: 80%;
color: #333; /* 限制宽度,体现居中效果 */
line-height: 1.3; /* 移除底部margin通过父容器gap控制间距 */
white-space: nowrap; }
overflow: hidden;
text-overflow: ellipsis; /* 卡片标题:居左显示 */
} .advantage-card__heading {
font-size: clamp(0.85rem, 1.5vw, 1.4rem);
/* 卡片标题右侧箭头:居右显示 */ /* 比原尺寸放大PC端更醒目移动端自适应 */
.card-arrow { font-weight: 600;
color: #409eff; color: #333;
line-height: 1.3;
/* 箭头尺寸跟随标题放大,避免不协调 */ white-space: nowrap;
transition: transform 0.3s ease; overflow: hidden;
display: inline-block; text-overflow: ellipsis;
width: 24px; }
/* 箭头宽度同步增加 */
text-align: center; /* 卡片标题右侧箭头:居右显示 */
} .card-arrow {
color: #409eff;
/* 卡片hover时箭头动画 */ font-size: clamp(0.7rem, 1vw, 1rem);
.advantage-card:hover .card-arrow { /* 箭头尺寸跟随标题放大,避免不协调 */
transform: translateX(3px); transition: transform 0.3s ease;
} display: inline-block;
width: 16px;
/* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */ /* 箭头宽度同步增加 */
.advantage-card__description { text-align: center;
font-size: clamp(0.6rem, 0.9vw, 0.9rem); }
/* PC端描述文字略放大 */
color: #78787a; /* 卡片hover时箭头动画 */
line-height: 1.2; .advantage-card:hover .card-arrow {
/* PC端行高略紧凑 */ transform: translateX(3px);
white-space: normal; }
overflow: hidden;
width: 80%; /* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */
/* 与标题容器宽度一致 */ .advantage-card__description {
display: -webkit-box; font-size: clamp(0.6rem, 0.9vw, 0.9rem);
-webkit-line-clamp: 2; /* PC端描述文字略放大 */
/* 最多2行避免高度溢出 */ color: #666;
-webkit-box-orient: vertical; line-height: 1.2;
/* 核心修复:固定最小高度=2行文字高度确保1行时也占满空间 */ /* PC端行高略紧凑 */
min-height: calc(clamp(0.6rem, 0.9vw, 0.9rem) * 2 * 1.4); white-space: normal;
/* 确保文字垂直居中 */ overflow: hidden;
display: flex; width: 80%;
align-items: center; /* 与标题容器宽度一致 */
justify-content: left; display: -webkit-box;
} -webkit-line-clamp: 2;
/* 最多2行避免高度溢出 */
/* 卡片hover效果 */ -webkit-box-orient: vertical;
.advantage-card:hover { /* 核心修复:固定最小高度=2行文字高度确保1行时也占满空间 */
transform: scale(1.03); min-height: calc(clamp(0.6rem, 0.9vw, 0.9rem) * 2 * 1.4);
/* z-index: 10; */ /* 确保文字垂直居中 */
/* box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15); */ display: flex;
} align-items: center;
justify-content: left;
/* 移动端适配 */ }
@media (max-width: 767px) {
.advantage-card:active { /* 卡片hover效果仅保留缩放阴影移到外层 */
transform: scale(1.01); .advantage-card:hover {
} transform: scale(1.03);
z-index: 10;
.advantage-section { }
width: 95%;
/* 移动端扩大容器宽度 */ /* 外层容器hover时增强阴影更自然的浮起效果 */
} .advantage-card-wrap:hover {
box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
.advantage-section__list { }
gap: 0.1rem;
} /* 移动端适配 - 核心修改一行2个显示2行隐藏第5个 */
@media (max-width: 767px) {
.advantage-card { .advantage-card:active {
aspect-ratio: 1 / 1.8; transform: scale(1.01);
/* 移动端恢复更高的卡片高度 */ }
}
.advantage-section {
.advantage-card__img { width: 95%;
height: 62%; /* 移动端扩大容器宽度 */
/* 移动端图片占比回到62% */ }
}
.advantage-section__list {
.advantage-card__content { gap: 0.5rem; /* 优化间距,更美观 */
height: 38%; flex-wrap: wrap; /* 允许换行 */
/* 移动端文字区域占比回到38% */ overflow: visible; /* 取消溢出隐藏,显示多行 */
padding: 0.2rem 0.15rem; justify-content: space-between; /* 两端对齐确保2个卡片均匀分布 */
gap: 6px; }
/* 移动端间距略大,易读性更好 */
} /* 移动端卡片宽度一行2个 */
.advantage-card-wrap {
/* 移动端标题容器宽度放宽 */ flex: 0 0 calc(50% - 0.25rem); /* 50%宽度减去一半间距,避免溢出 */
.advantage-card__heading-wrap { min-width: calc(50% - 0.25rem);
width: 90%; max-width: calc(50% - 0.25rem);
} aspect-ratio: 1 / 1.8;
margin-bottom: 0.5rem; /* 行与行之间的间距 */
.advantage-card__description { }
line-height: 1.2;
width: 90%; /* 隐藏第5个卡片 */
-webkit-line-clamp: 2; .advantage-card-wrap:nth-child(5) {
/* 移动端同步添加最小高度 */ display: none;
min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5); }
}
.advantage-card__img {
/* 移动端箭头和文字尺寸缩小 */ height: 62%;
.card-arrow { /* 移动端图片占比回到62% */
font-size: clamp(0.45rem, 0.7vw, 0.8rem); }
width: 10px;
} .advantage-card__content {
height: 38%;
.advantage-card__heading { /* 移动端文字区域占比回到38% */
font-size: clamp(0.6rem, 1vw, 1rem); padding: 0.2rem 0.15rem;
} gap: 6px;
/* 移动端间距略大,易读性更好 */
.advantage-card__description { }
font-size: clamp(0.5rem, 0.8vw, 0.8rem);
} /* 移动端标题容器宽度放宽 */
} .advantage-card__heading-wrap {
width: 90%;
/* 超小屏适配 */ }
@media (max-width: 374px) {
.advantage-section { .advantage-card__description {
width: 98%; line-height: 1.2;
} width: 90%;
-webkit-line-clamp: 2;
.advantage-card__heading { /* 移动端同步添加最小高度 */
font-size: clamp(0.55rem, 0.9vw, 0.9rem); min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5);
} }
.advantage-card__heading-wrap { /* 移动端箭头和文字尺寸缩小 */
width: 95%; .card-arrow {
gap: 5px; font-size: clamp(0.45rem, 0.7vw, 0.8rem);
} width: 10px;
}
.advantage-card__description {
width: 95%; .advantage-card__heading {
/* 超小屏保持最小高度 */ font-size: clamp(0.6rem, 1vw, 1rem);
min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5); }
}
} .advantage-card__description {
font-size: clamp(0.5rem, 0.8vw, 0.8rem);
}
}
/* 超小屏适配 */
@media (max-width: 374px) {
.advantage-section {
width: 98%;
}
.advantage-card__heading {
font-size: clamp(0.55rem, 0.9vw, 0.9rem);
}
.advantage-card__heading-wrap {
width: 95%;
gap: 5px;
}
.advantage-card__description {
width: 95%;
/* 超小屏保持最小高度 */
min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5);
}
}

View File

@@ -31,7 +31,8 @@ html {
} }
} }
body { body {
background: rgb(242, 243, 245);
background: #f2f3f5;
} }
a { a {
text-decoration: none; text-decoration: none;
@@ -70,4 +71,5 @@ a {
align-items: center; align-items: center;
padding-top: 0.5rem; padding-top: 0.5rem;
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
} }

View File

@@ -13,6 +13,8 @@
overflow: hidden; /* 阻止蒙版自身滚动 */ overflow: hidden; /* 阻止蒙版自身滚动 */
touch-action: none; /* 禁止触摸行为 */ touch-action: none; /* 禁止触摸行为 */
pointer-events: auto; /* 确保蒙版能接收事件 */ pointer-events: auto; /* 确保蒙版能接收事件 */
backdrop-filter: blur(8px); /* 模糊半径可调整4px-15px为宜 */
-webkit-backdrop-filter: blur(8px); /* 兼容Safari */
} }
/* 蒙版内容容器 - 新增触摸事件传递控制 */ /* 蒙版内容容器 - 新增触摸事件传递控制 */
@@ -28,17 +30,26 @@
max-height: 90vh; max-height: 90vh;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
pointer-events: auto; /* 确保内容区域能正常交互 */ pointer-events: auto; /* 确保内容区域能正常交互 */
} }
/* 滚动内容容器 - 保持不变 */ /* 内容滚动容器 - 禁止横向滚动,仅纵向滚动 */
.mask-e-scroll-content { .mask-scroll-content {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto; /* 仅纵向滚动 */
padding: 20px; overflow-x: hidden !important; /* 强制禁止横向滚动(关键) */
-webkit-overflow-scrolling: touch; /* 移动端顺滑滚动 */ width: 100%; /* 确保容器宽度不超出父级 */
height: 100%;
} }
/* 关键:图片自适应,不撑开容器 */
.mask-scroll-content img {
max-width: 100% !important; /* 图片最大宽度=容器宽度,不溢出 */
height: auto !important; /* 保持图片宽高比,不拉伸 */
display: block; /* 消除图片底部多余空白(可选) */
object-fit: contain; /* 若图片比例特殊,完整显示图片不裁剪 */
}
/* 升级:同时禁止 html 和 body 滚动(关键兼容) */ /* 升级:同时禁止 html 和 body 滚动(关键兼容) */
.no-scroll { .no-scroll {
overflow: hidden !important; overflow: hidden !important;

View File

@@ -1,206 +1,206 @@
.product-card-container2 { .product-card-container2 {
display: flex; display: flex;
flex-wrap: nowrap; flex-wrap: nowrap;
gap: 10px; gap: 24px;
align-items: stretch; align-items: stretch;
} }
/* 产品卡片样式 */ /* 产品卡片样式 */
.product-card2 { .product-card2 {
box-sizing: border-box; box-sizing: border-box;
background: rgb(242, 243, 245); background: rgb(242, 243, 245);
border-radius: 8px; border-radius: 8px;
cursor: pointer; cursor: pointer;
flex: 1 1 50%; flex: 1 1 50%;
/* 一行2个 */ /* 一行2个 */
min-width: 180px; min-width: 180px;
/* 保证图片显示 */ /* 保证图片显示 */
/* max-width: calc(50% - 10px); */ /* max-width: calc(50% - 10px); */
/* 适配gap */ /* 适配gap */
height: 240px; height: 240px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
display: flex; display: flex;
text-decoration: none; text-decoration: none;
transition: transform 0.3s ease, box-shadow 0.3s ease; transition: transform 0.3s ease, box-shadow 0.3s ease;
overflow: hidden; overflow: hidden;
} }
/* 核心修改:文字区域相对于父盒子居中,内部内容左对齐 */ /* 核心修改:文字区域相对于父盒子居中,内部内容左对齐 */
.product-text2 { .product-text2 {
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
/* 文字区域整体水平居中相对于product-card1 */ /* 文字区域整体水平居中相对于product-card1 */
justify-content: center; justify-content: center;
/* 文字区域整体垂直居中相对于product-card1 */ /* 文字区域整体垂直居中相对于product-card1 */
text-align: left; text-align: left;
/* 内部文字左对齐 */ /* 内部文字左对齐 */
min-width: 70px; min-width: 70px;
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
} }
/* 内部内容容器:统一承载标题、描述、链接,确保左对齐一致性 */ /* 内部内容容器:统一承载标题、描述、链接,确保左对齐一致性 */
.product-text-content2 { .product-text-content2 {
width: 100%; width: 100%;
/* 继承product-text的宽度确保左对齐范围完整 */ /* 继承product-text的宽度确保左对齐范围完整 */
max-width: 280px; max-width: 280px;
/* 新增限制最大宽度避免PC端父容器过宽时内容排版松散 */ /* 新增限制最大宽度避免PC端父容器过宽时内容排版松散 */
} }
/* 标题:超出一行显示省略号(左对齐) */ /* 标题:超出一行显示省略号(左对齐) */
.product-card-title2 { .product-card-title2 {
font-size: clamp(12px, 2vw, 18px); font-size: clamp(12px, 2vw, 18px);
font-weight: 600; font-weight: 600;
color: #333; color: #333;
margin-bottom: 5px; margin-bottom: 5px;
letter-spacing: 0.2px; letter-spacing: 0.2px;
/* 超出一行省略号核心样式 */ /* 超出一行省略号核心样式 */
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
width: 100%; width: 100%;
/* 基于内部容器左对齐,省略号生效 */ /* 基于内部容器左对齐,省略号生效 */
} }
/* 描述超出2行显示省略号左对齐 */ /* 描述超出2行显示省略号左对齐 */
.product-card-desc2 { .product-card-desc2 {
font-size: clamp(12px, 1.8vw, 14px); font-size: clamp(12px, 1.8vw, 14px);
color: #656565; color: #656565;
margin-bottom: 15px; margin-bottom: 15px;
letter-spacing: 0.1px; letter-spacing: 0.1px;
/* 超出2行显示省略号核心样式 */ /* 超出2行显示省略号核心样式 */
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
white-space: normal; white-space: normal;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
width: 100%; width: 100%;
/* 基于内部容器左对齐 */ /* 基于内部容器左对齐 */
line-height: 1.4; line-height: 1.4;
/* 优化行高2行高度适中 */ /* 优化行高2行高度适中 */
} }
/* 图片容器:确保移动端显示 */ /* 图片容器:确保移动端显示 */
.product-card-img2 { .product-card-img2 {
flex: 1; flex: 1;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
min-width: 70px; min-width: 70px;
/* 强制保留图片区域,避免被挤压 */ /* 强制保留图片区域,避免被挤压 */
} }
.product-card-img2 img { .product-card-img2 img {
width: 100%; width: 100%;
height: auto; height: auto;
max-height: 144px; max-height: 144px;
min-height: 80px; min-height: 80px;
object-fit: contain; object-fit: contain;
/* 保持图片比例完整,不拉伸 */ /* 保持图片比例完整,不拉伸 */
} }
/* 链接图标:左对齐(基于内部容器) */ /* 链接图标:左对齐(基于内部容器) */
.product-card-link2 { .product-card-link2 {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
/* 图标左对齐 */ /* 图标左对齐 */
} }
.product-card-link2 img { .product-card-link2 img {
width: clamp(60px, 4vw, 76px); width: clamp(60px, 4vw, 76px);
margin: 0; margin: 0;
/* 清除居中margin */ /* 清除居中margin */
} }
/* hover效果 */ /* hover效果 */
.product-card2:hover { .product-card2:hover {
transform: scale(1.03); transform: scale(1.03);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
} }
/* 媒体查询平板端768px ~ 1023px */ /* 媒体查询平板端768px ~ 1023px */
@media (max-width: 1023px) and (min-width: 768px) { @media (max-width: 1023px) and (min-width: 768px) {
.product-card2 { .product-card2 {
height: 224px; height: 224px;
min-width: 170px; min-width: 170px;
} }
.product-text2 { .product-text2 {
padding-left: 20px; padding-left: 20px;
} }
.product-card-img2 img { .product-card-img2 img {
max-height: 128px; max-height: 128px;
} }
} }
/* 媒体查询移动端≤767px */ /* 媒体查询移动端≤767px */
@media (max-width: 767px) { @media (max-width: 767px) {
.product-card-box2 { .product-card-box2 {
margin-top: 19px; margin-top: 19px;
} }
.product-card2 { .product-card2 {
padding: 0 8px; padding: 0 8px;
} }
.product-card-container2 { .product-card-container2 {
gap: 8px; gap: 12px;
} }
.product-card2 { .product-card2 {
height: 208px; height: 208px;
min-width: 160px; min-width: 160px;
} }
.product-card-img2 img { .product-card-img2 img {
max-height: 120px; max-height: 120px;
min-height: 72px; min-height: 72px;
} }
} }
/* 媒体查询小屏手机≤375px */ /* 媒体查询小屏手机≤375px */
@media (max-width: 375px) { @media (max-width: 375px) {
.product-card2 { .product-card2 {
height: 192px; height: 192px;
min-width: 140px; min-width: 140px;
} }
/* 强制文字最小12px保证可读性 */ /* 强制文字最小12px保证可读性 */
.product-card-title2, .product-card-title2,
.product-card-desc2 { .product-card-desc2 {
font-size: 12px; font-size: 12px;
} }
.product-card-img2 img { .product-card-img2 img {
max-height: 104px; max-height: 104px;
min-height: 64px; min-height: 64px;
} }
.product-card2 { .product-card2 {
padding: 0 5px; padding: 0 5px;
} }
.product-card-link2 img { .product-card-link2 img {
width: 40px; width: 40px;
/* 固定图标尺寸,节省空间 */ /* 固定图标尺寸,节省空间 */
} }
} }
/* 媒体查询超小屏手机≤320px */ /* 媒体查询超小屏手机≤320px */
@media (max-width: 320px) { @media (max-width: 320px) {
.product-card2 { .product-card2 {
min-width: 120px; min-width: 120px;
} }
.product-text2 { .product-text2 {
padding: 0 5px; padding: 0 5px;
} }
.product-card-img2 { .product-card-img2 {
min-width: 60px; min-width: 60px;
/* 缩小图片区域最小宽度,平衡文字空间 */ /* 缩小图片区域最小宽度,平衡文字空间 */
} }
} }

View File

@@ -1,246 +1,264 @@
/* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */ /* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */
.product-card-box { .product-card-box {
width: 90%; width: 90%;
margin: clamp(1rem, 2vw, 1.5rem) auto 0; margin: clamp(1rem, 2vw, 1.5rem) auto 0;
padding: 0; padding: 0;
} }
.product-card-container { .product-card-container {
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
display: flex; display: flex;
flex-wrap: nowrap; flex-wrap: nowrap;
overflow: hidden; overflow: hidden;
padding: 0 clamp(0.2rem, 0.6vw, 0.3rem); /* 关键修改1增大间距值原 clamp(0.3rem, 0.5vw, 0.36rem) → 现在放大2倍左右 */
} gap: clamp(0.6rem, 1vw, 0.8rem);
padding: 0; /* 保持无内边距,避免间距叠加 */
/* ######################################################################### */ }
/* 移动端样式单独配置max-width: 1023px- 后续修改仅改这里 */
/* ######################################################################### */ /* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */
@media (max-width: 1023px) { .product-card-wrap {
/* 卡片容器:移动端特有 */ /* 卡片的宽度计算逻辑移到外层 */
.product-card-container { width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4));
align-items: stretch; flex: none;
} border-radius: clamp(0.375rem, 1vw, 0.5rem); /* 外层承载圆角 */
overflow: hidden; /* 裁剪内层缩放的卡片 */
/* 卡片核心:移动端固定宽高比 */ box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); /* 外层承载阴影 */
.product-card { position: relative;
background: rgb(242, 243, 245); z-index: 1;
border-radius: clamp(0.375rem, 1vw, 0.5rem); }
cursor: pointer;
width: calc(25% - clamp(0.3rem, 0.5vw, 0.36rem)); /* ######################################################################### */
flex: none; /* 移动端样式单独配置max-width: 1023px- 后续修改仅改这里 */
box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) /* ######################################################################### */
clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); @media (max-width: 1023px) {
margin: 0 clamp(0.16rem, 0.24vw, 0.2rem); /* 卡片容器:移动端特有 */
display: flex; .product-card-container {
flex-direction: column; align-items: stretch;
aspect-ratio: 3 / 4.2; }
/* 移动端固定宽高比 */
} /* 外层容器移动端适配:宽高比移到外层 */
.product-card-wrap {
/* 卡片hover效果移动端特有 */ aspect-ratio: 3 / 4.2;
.product-card:hover { }
transform: scale(clamp(1.01, 1.02, 1.03));
transition: transform 0.3s ease; /* 卡片核心移动端调整移除圆角、阴影添加will-change */
} .product-card {
background: rgb(242, 243, 245);
/* 图片容器:移动端固定占比 */ cursor: pointer;
.product-card-img { width: 100%; /* 内层卡片占满外层容器 */
display: flex; height: 100%;
justify-content: center; flex: none;
align-items: center; margin: 0; /* 保持无margin间距由gap控制 */
width: 100%; display: flex;
flex: 0 0 72%; flex-direction: column;
/* 移动端图片区占比 */ will-change: transform; /* 优化渲染,避免圆角异常 */
margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem); }
overflow: hidden;
border-radius: clamp(0.2rem, 0.4vw, 0.25rem); /* 卡片hover效果移动端特有 */
} .product-card:hover {
transform: scale(clamp(1.01, 1.02, 1.03));
/* 产品图片:移动端特有 */ transition: transform 0.3s ease;
.product-card img { }
width: 100%;
height: 100%; /* 外层容器hover增强阴影更自然的浮起效果 */
object-fit: contain; .product-card-wrap:hover {
object-position: center; box-shadow: 0 clamp(0.2rem, 0.4vw, 0.25rem) clamp(0.5rem, 1vw, 0.8rem) rgba(0, 0, 0, 0.08);
} }
/* 文字容器:移动端固定占比 */ /* 图片容器:移动端固定占比 */
.product-card-text { .product-card-img {
flex: 0 0 20%; display: flex;
/* 移动端文字区占比 */ justify-content: center;
display: flex; align-items: center;
flex-direction: column; width: 100%;
justify-content: center; flex: 0 0 72%;
padding-left: clamp(0.8rem, 2vw, 1.5rem); margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
padding-right: clamp(0.8rem, 2vw, 1.5rem); overflow: hidden;
} border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
}
/* 标题样式:移动端特有 */
.product-card-title { /* 产品图片:移动端特有 */
font-size: clamp(0.8rem, 1.3vw, 1.2rem); .product-card img {
font-weight: 600; width: 100%;
color: #333; height: 100%;
white-space: nowrap; object-fit: contain;
overflow: hidden; object-position: center;
text-overflow: ellipsis; }
height: 35%;
/* 移动端标题固定高度 */ /* 文字容器:移动端固定占比 */
line-height: 1.2; .product-card-text {
} flex: 0 0 20%;
display: flex;
/* 描述样式移动端固定2行高度 */ flex-direction: column;
.product-card-desc { justify-content: center;
font-size: clamp(0.7rem, 1.1vw, 0.9rem); padding-left: clamp(0.8rem, 2vw, 1.5rem);
color: #656565; padding-right: clamp(0.8rem, 2vw, 1.5rem);
word-break: break-word; }
height: 65%;
/* 移动端描述固定高度2行 */ /* 标题样式:移动端特有 */
overflow: hidden; .product-card-title {
display: -webkit-box; font-size: clamp(0.8rem, 1.3vw, 1.2rem);
-webkit-line-clamp: 2; font-weight: 600;
-webkit-box-orient: vertical; color: #333;
line-height: 1.4; white-space: nowrap;
} overflow: hidden;
text-overflow: ellipsis;
/* 链接图标容器:移动端固定占比 */ height: 35%;
.product-card-link { line-height: 1.2;
width: 100%; }
display: flex;
align-items: center; /* 描述样式移动端固定2行高度 */
flex: 0 0 10%; .product-card-desc {
/* 移动端链接区占比 */ font-size: clamp(0.7rem, 1.1vw, 0.9rem);
padding: clamp(0.8rem, 2vw, 1.5rem); color: #656565;
} word-break: break-word;
height: 65%;
/* 链接图标:移动端特有 */ overflow: hidden;
.product-card-link img { display: -webkit-box;
width: clamp(2.5rem, 5vw, 4.5rem); -webkit-line-clamp: 2;
height: auto; -webkit-box-orient: vertical;
object-fit: contain; line-height: 1.4;
} }
/* 移动端768px以上补充样式 */ /* 链接图标容器:移动端固定占比 */
@media (min-width: 768px) and (max-width: 1023px) { .product-card-link {
.product-card-img { width: 100%;
flex: 0 0 72%; display: flex;
} align-items: center;
flex: 0 0 10%;
.product-card-link img { padding: clamp(0.8rem, 2vw, 1.5rem);
width: clamp(5rem, 4vw, 6rem); }
}
} /* 链接图标:移动端特有 */
} .product-card-link img {
width: clamp(2.5rem, 5vw, 4.5rem);
/* ######################################################################### */ height: auto;
/* PC端样式单独配置min-width: 1024px- 后续修改仅改这里 */ object-fit: contain;
/* ######################################################################### */ }
@media (min-width: 1024px) {
/* 卡片容器PC端特有高度自适应 */ /* 移动端768px以上补充样式 */
.product-card-container { @media (min-width: 768px) and (max-width: 1023px) {
align-items: stretch; .product-card-img {
height: clamp(30vw, 35vw, 480px); flex: 0 0 72%;
/* PC端容器高度自适应 */ }
}
.product-card-link img {
/* 卡片核心PC端高度自适应 */ width: clamp(5rem, 4vw, 6rem);
.product-card { }
background: rgb(242, 243, 245); }
border-radius: clamp(0.375rem, 1vw, 0.5rem); }
cursor: pointer;
width: calc(25% - clamp(0.3rem, 0.5vw, 0.36rem)); /* ######################################################################### */
flex: none; /* PC端样式单独配置min-width: 1024px- 后续修改仅改这里 */
box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) /* ######################################################################### */
clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); @media (min-width: 1024px) {
margin: 0 clamp(0.16rem, 0.24vw, 0.2rem); /* 卡片容器PC端特有高度自适应 */
display: flex; .product-card-container {
flex-direction: column; align-items: stretch;
height: 100%; height: clamp(30vw, 35vw, 480px);
/* PC端卡片高度继承父容器 */ /* 关键修改3PC端同步增大gap间距与通用容器一致 */
} gap: clamp(0.6rem, 1vw, 0.8rem);
padding: 0;
/* 卡片hover效果PC端特有 */ }
.product-card:hover {
transform: scale(clamp(1.01, 1.02, 1.03)); /* 外层容器PC端适配高度占满容器 */
transition: transform 0.3s ease; .product-card-wrap {
} height: 100%;
}
/* 图片容器PC端固定占比 */
.product-card-img { /* 卡片核心PC端调整移除圆角、阴影添加will-change */
display: flex; .product-card {
justify-content: center; background: rgb(242, 243, 245);
align-items: center; cursor: pointer;
width: 100%; width: 100%; /* 内层卡片占满外层容器 */
flex: 0 0 72%; height: 100%;
/* PC端图片区占比 */ flex: none;
margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem); margin: 0; /* 保持无margin */
overflow: hidden; display: flex;
border-radius: clamp(0.2rem, 0.4vw, 0.25rem); flex-direction: column;
} will-change: transform; /* 优化渲染,避免圆角异常 */
}
/* 产品图片PC端特有 */
.product-card img { /* 卡片hover效果PC端特有 */
width: 100%; .product-card:hover {
height: 100%; transform: scale(clamp(1.01, 1.02, 1.03));
object-fit: contain; transition: transform 0.3s ease;
object-position: center; }
}
/* 外层容器hover增强阴影 */
/* 文字容器PC端固定占比 */ .product-card-wrap:hover {
.product-card-text { box-shadow: 0 clamp(0.2rem, 0.4vw, 0.25rem) clamp(0.5rem, 1vw, 0.8rem) rgba(0, 0, 0, 0.08);
flex: 0 0 15%; }
/* PC端文字区占比 */
/* display: flex; */ /* 图片容器PC端固定占比 */
flex-direction: column; .product-card-img {
justify-content: center; display: flex;
padding-left: clamp(0.8rem, 2vw, 1.5rem); justify-content: center;
padding-right: clamp(0.8rem, 2vw, 1.5rem); align-items: center;
} width: 100%;
flex: 0 0 72%;
/* 标题样式PC端特有 */ margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
.product-card-title { overflow: hidden;
font-size: clamp(0.8rem, 1.3vw, 1.2rem); border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
font-weight: 600; }
color: #333;
white-space: nowrap; /* 产品图片PC端特有 */
overflow: hidden; .product-card img {
text-overflow: ellipsis; width: 100%;
/* height: 35%; */ height: 100%;
/* PC端标题固定高度 */ object-fit: contain;
line-height: 1.2; object-position: center;
display: flex; }
align-items: center;
} /* 文字容器PC端固定占比 */
.product-card-text {
/* 描述样式PC端固定2行高度 */ flex: 0 0 15%;
.product-card-desc { display: flex; /* 补充display: flex原代码遗漏 */
font-size: clamp(0.7rem, 1.1vw, 0.9rem); flex-direction: column;
color: #656565; justify-content: center;
word-break: break-word; padding-left: clamp(0.8rem, 2vw, 1.5rem);
/* height: 65%; */ padding-right: clamp(0.8rem, 2vw, 1.5rem);
/* PC端描述固定高度2行 */ }
overflow: hidden;
display: -webkit-box; /* 标题样式PC端特有 */
-webkit-line-clamp: 2; .product-card-title {
-webkit-box-orient: vertical; font-size: clamp(0.8rem, 1.3vw, 1.2rem);
line-height: 1.4; font-weight: 600;
} color: #333;
white-space: nowrap;
/* 链接图标容器PC端固定占比 */ overflow: hidden;
.product-card-link { text-overflow: ellipsis;
width: 100%; line-height: 1.2;
/* display: flex; */ display: flex;
/* align-items: center; */ align-items: center;
flex: 0 0 12%; }
/* PC端链接区占比 */
padding-left: clamp(0.8rem, 2vw, 1.5rem); /* 描述样式PC端固定2行高度 */
} .product-card-desc {
font-size: clamp(0.7rem, 1.1vw, 0.9rem);
/* 链接图标PC端特有 */ color: #656565;
.product-card-link img { word-break: break-word;
width: clamp(2.5rem, 5vw, 4.5rem); overflow: hidden;
height: auto; display: -webkit-box;
object-fit: contain; -webkit-line-clamp: 2;
} -webkit-box-orient: vertical;
} line-height: 1.4;
}
/* 链接图标容器PC端固定占比 */
.product-card-link {
width: 100%;
flex: 0 0 12%;
padding-left: clamp(0.8rem, 2vw, 1.5rem);
display: flex; /* 补充display: flex确保图标垂直居中 */
align-items: center;
}
/* 链接图标PC端特有 */
.product-card-link img {
width: clamp(2.5rem, 5vw, 4.5rem);
height: auto;
object-fit: contain;
}
}

View File

@@ -2,28 +2,70 @@
.auto-swiper-container { .auto-swiper-container {
width: 100%; width: 100%;
/* 关键:高度 = 视口高度的百分比可调整如60vh=屏幕高度60% */ /* 关键:高度 = 视口高度的百分比可调整如60vh=屏幕高度60% */
height: 60vh;
max-height: 800px; /* 限制最大高度(避免大屏过高) */
min-height: 300px; /* 限制最小高度(避免小屏过低) */
overflow: hidden;
margin-bottom: 5.625rem; margin-bottom: 5.625rem;
} max-height: 900px;
min-height: 300px;
/* 轮播项 - 填充容器高度 */ /* 轮播项 - 填充容器高度 */
.auto-swiper-slide { .auto-swiper-slide {
width: 100%; width: 100%;
height: 100%; /*height: 100%;*/
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background: #333; /* 图片加载前占位 */
} }
/* 图片自适应核心:填充屏幕比例高度,保持比例 */ /* 图片自适应核心:填充屏幕比例高度,保持比例 */
.auto-swiper-slide img { .auto-swiper-slide img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; /* 优先填充容器,裁剪超出部分(无拉伸) */ object-fit: contain; /* 替换 cover 为 contain完整显示图片 */
/* object-fit: contain; 可选:完整显示图片,不裁剪(可能留黑边) */ display: block;
display: block; background-color: #f5f5f5; /* 图片未填充区域用浅色背景,避免黑边 */
} }
/* 轮播容器保持相对定位 */
.auto-swiper-container {
position: relative;
width: 100%;
}
/* 轮播容器保持相对定位 */
.auto-swiper-container {
position: relative;
width: 100%;
}
/* 指示标容器:居中排列 */
.swiper-pagination {
position: absolute;
bottom: 10%; /* 距离底部的距离,可调整 */
left: 50%;
transform: translateX(-50%);
width:100%;
display: flex;
justify-content: center;
z-index: 10;
}
/* 激活状态:白色长条 */
.swiper-pagination-bullet-active {
background:#fff !important;
}
/* 未激活状态:黑色透明圆点(可调整透明度) */
.swiper-pagination-bullet {
display: inline-block;
width: 16px !important;
height: 16px !important;
border-radius: 8px;
/*background: #555;*/
margin: 0 5px;
/*opacity: 0.8;*/
border: 1px solid #fff;
/*cursor: pointer;*/
}