前言
最近挺多人找我要首页的滚动banner教程,所以今天把代码整理了一下放博客里,需要的自取!!
声明一下,这个是张洪heo的原创,被我扒了过来,前段时间发布过一版,最近又在上一版的基础上进行了一些修改和优化,目前还没有对手机端去做一些适配(主要有点懒)!!
目前本站使用的版本是腾飞发给我的,相对于我整理的这一款,他做了右侧的推荐文章,适配了移动端,添加了canvas动画特效,并做成了一个小工具,个人感觉我自己整理出来的这一款已经够用了,毕竟免费发出来了,如果你觉得有所不足,可以自行前往腾飞的站点购买完整版本!!
演示图
](/wp-content/uploads/replace/7b1603d095403365c02863c2d934b2e3.jpeg)
代码
<link rel="stylesheet" href="https://www.xkzhi.cn/wp-content/themes/zibll/css/xkzhi/Banner.css">
<style>
/* 新增幻灯片样式 */
.slideshow-container {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
border-radius: 12px;
}
.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 0.8s ease-in-out;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 2rem;
box-sizing: border-box;
}
.slide.active {
opacity: 1;
}
.slide-content {
position: relative;
z-index: 2;
}
.slide-cover {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
z-index: -1;
}
/* 添加图片链接样式 */
.slide-link {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
/* 确保链接在背景之上,但在内容之下 */
cursor: pointer;
}
.slide-indicators {
position: absolute;
bottom: 1rem;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 8px;
z-index: 3;
}
.slide-indicator {
width: 10px;
height: 10px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.5);
cursor: pointer;
transition: background 0.3s;
}
.slide-indicator.active {
background: white;
}
.slide-nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(255, 255, 255, 0.2);
border: none;
color: white;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 4;
/* 提高层级确保在链接之上 */
backdrop-filter: blur(10px);
transition: background 0.3s;
}
.slide-nav:hover {
background: rgba(255, 255, 255, 0.4);
}
.slide-nav.prev {
left: 1rem;
}
.slide-nav.next {
right: 1rem;
}
/* 保持原有样式 */
.todayCard-title,
.todayCard-tips,
.topGroup.banner-button {
color: #ffffff
}
.topGroup.todayCard {
background: #000000
}
</style>
<link rel="stylesheet" href="https://www.xkzhi.cn/wp-content/themes/zibll/css/xkzhi/Banner.css">
<div id="home_top">
<style type="text/css">
.todayCard-title,
.todayCard-tips,
.topGroup.banner-button {
color: #ffffff
}
.topGroup.todayCard {
background: #000000
}
</style>
<div class="recent-top-post-group" id="recent-top-post-group">
<div class="recent-post-top" id="recent-post-top">
<div id="bannerGroup">
<div id="banners">
<div class="banners-title">
<div class="banners-title-big">
分享设计
</div>
<div class="banners-title-big">
与科技生活
</div>
<div class="banners-title-small">
</div>
</div>
<!--xkzhi.cn -->
<div class="tags-group-all">
<div class="tags-group-wrapper">
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#989bf8">
<img title="AfterEffects"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20239df3f66615b532ce571eac6d14ff21cf072602.png!cover">
</div>
<div class="tags-group-icon" style="background:#ffffff">
<img src="https://p.zhheo.com/2023e0ded7b724a39f12d59c3dc8fbdc7cbe074202.png!cover"
title="Sketch"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#57b6e6">
<img title="Docker"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20231108a540b2862d26f8850172e4ea58ed075102.png!cover">
</div>
<div class="tags-group-icon" style="background:#4082c3">
<img src="https://p.zhheo.com/2023e4058a91608ea41751c4f102b131f267075902.png!cover"
title="Photoshop"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#ffffff">
<img src="https://p.zhheo.com/20233e777652412247dd57fd9b48cf997c01070702.png!cover"
title="FinalCutPro"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
data-ll-status="" class="entered ">
</div>
<div class="tags-group-icon" style="background:#ffffff">
<img src="https://p.zhheo.com/20235c0731cd4c0c95fc136a8db961fdf963071502.png!cover"
title="Python"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#eb6840">
<img title="Swift"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered "
src="https://p.zhheo.com/202328bbee0b314297917b327df4a704db5c072402.png!cover"
data-ll-status="">
</div>
<div class="tags-group-icon" style="background:#8f55ba">
<img title="Principle"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/2023f76570d2770c8e84801f7e107cd911b5073202.png!cover">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f29e39">
<img title="illustrator"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered "
src="https://p.zhheo.com/20237359d71b45ab77829cee5972e36f8c30073902.png!cover"
data-ll-status="">
</div>
<div class="tags-group-icon" style="background:#2c51db">
<img src="https://p.zhheo.com/20237c548846044a20dad68a13c0f0e1502f074602.png!cover"
title="CSS3"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
data-ll-status="" class="entered ">
</div>
</div>
<!--wniui.com -->
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f7cb4f">
<img title="JS"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered "
src="https://p.zhheo.com/2023786e7fc488f453d5fb2be760c96185c0075502.png!cover"
data-ll-status="">
</div>
<div class="tags-group-icon" style="background:#e9572b">
<img title="HTML"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered "
src="https://p.zhheo.com/202372b4d760fd8a497d442140c295655426070302.png!cover"
data-ll-status="">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#df5b40">
<img title="Git"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered "
src="https://p.zhheo.com/2023ffa5707c4e25b6beb3e6a3d286ede4c6071102.png!cover"
data-ll-status="">
</div>
<div class="tags-group-icon" style="background:#1f1f1f">
<img title="Rhino"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered "
src="https://p.zhheo.com/20231ca53fa0b09a3ff1df89acd7515e9516173302.png!cover"
data-ll-status="">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#989bf8">
<img title="AfterEffects"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20239df3f66615b532ce571eac6d14ff21cf072602.png!cover">
</div>
<div class="tags-group-icon" style="background:#ffffff">
<img title="Sketch"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/2023e0ded7b724a39f12d59c3dc8fbdc7cbe074202.png!cover">
</div>
</div>
<!--wniui.com -->
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#57b6e6">
<img title="Docker"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20231108a540b2862d26f8850172e4ea58ed075102.png!cover">
</div>
<div class="tags-group-icon" style="background:#4082c3">
<img title="Photoshop"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/2023e4058a91608ea41751c4f102b131f267075902.png!cover">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#ffffff">
<img title="FinalCutPro"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20233e777652412247dd57fd9b48cf997c01070702.png!cover">
</div>
<div class="tags-group-icon" style="background:#ffffff">
<img title="Python"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20235c0731cd4c0c95fc136a8db961fdf963071502.png!cover">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#eb6840">
<img title="Swift"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/202328bbee0b314297917b327df4a704db5c072402.png!cover">
</div>
<div class="tags-group-icon" style="background:#8f55ba">
<img title="Principle"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/2023f76570d2770c8e84801f7e107cd911b5073202.png!cover">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f29e39">
<img title="illustrator"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20237359d71b45ab77829cee5972e36f8c30073902.png!cover">
</div>
<div class="tags-group-icon" style="background:#2c51db">
<img title="CSS3"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'"
class="entered exited"
src="https://p.zhheo.com/20237c548846044a20dad68a13c0f0e1502f074602.png!cover">
</div>
</div>
<!-- BLOG -->
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#f7cb4f">
<img src="https://p.zhheo.com/2023786e7fc488f453d5fb2be760c96185c0075502.png!cover"
title="JS"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'">
</div>
<div class="tags-group-icon" style="background:#e9572b">
<img src="https://p.zhheo.com/202372b4d760fd8a497d442140c295655426070302.png!cover"
title="HTML"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'">
</div>
</div>
<div class="tags-group-icon-pair">
<div class="tags-group-icon" style="background:#df5b40">
<img src="https://p.zhheo.com/2023ffa5707c4e25b6beb3e6a3d286ede4c6071102.png!cover"
title="Git"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'">
</div>
<div class="tags-group-icon" style="background:#1f1f1f">
<img src="https://p.zhheo.com/20231ca53fa0b09a3ff1df89acd7515e9516173302.png!cover"
title="Rhino"
onerror="this.onerror=null;this.src='https://bu.dusays.com/2023/03/03/6401a79030db5.png'">
</div>
</div>
</div>
</div>
<a id="banner-hover" href="/wp-json/wp/v2/random-post" rel="external nofollow" data-pjax-state="">
<i class="heofont icon-right">
</i>
<span class="bannerText">
随便逛逛
</span>
</a>
</div>
<!-- 星雨-xkzhi.cn -->
<div class="categoryGroup">
<div class="categoryItem">
<a class="categoryButton wniui_one" href="/rebph" data-pjax-state="">
<span class="categoryButtonText">
必看精选
</span>
<i class="heofont icon-star-smile-fill">
</i>
</a>
</div>
<div class="categoryItem">
<a class="categoryButton wniui_two" href="/rebph" data-pjax-state="">
<span class="categoryButtonText">
热门文章
</span>
<i class="heofont icon-fire-fill">
</i>
</a>
</div>
<div class="categoryItem">
<a class="categoryButton wniui_three" href="/category/jsjc" rel="external nofollow" data-pjax-state="">
<span class="categoryButtonText">
实用教程
</span>
<i class="heofont icon-book-mark-fill">
</i>
</a>
</div>
</div>
</div>
<!-- 修改为幻灯片 -->
<div class="topGroup">
<div class="todayCard" id="todayCard" style="z-index: 1;">
<div class="slideshow-container" id="slideshow">
<!-- 幻灯片1 -->
<div class="slide active">
<!-- 添加独立的链接层 -->
<a class="slide-link" href="#blog"></a>
<div class="slide-cover"
style="background: url('https://alist.qindiaos.cn/d/bd/blog/C535C05E-B44F-490F-BF28-3E1994E58746.png') no-repeat center / cover">
</div>
<div class="slide-content">
<div class="todayCard-info">
<div class="todayCard-tips"></div>
<div class="todayCard-title"></div>
</div>
<div class="banner-button-group">
<a class="banner-button" href="/newposts" rel="external nofollow">
<i class="heofont icon-add-circle-fill"></i>
<span class="banner-button-text">发布文章</span>
</a>
</div>
</div>
</div>
<!-- 幻灯片2 -->
<div class="slide">
<!-- 添加独立的链接层 -->
<a class="slide-link" href="#blog"></a>
<div class="slide-cover"
style="background: url('https://alist.qindiaos.cn/d/bd/blog/20251230171037155-2026.png') no-repeat center / cover">
</div>
<div class="slide-content">
<div class="todayCard-info">
<div class="todayCard-tips"></div>
<div class="todayCard-title"></div>
</div>
<div class="banner-button-group">
<a class="banner-button" href="/newposts" rel="external nofollow">
<i class="heofont icon-palette-fill"></i>
<span class="banner-button-text">发布文章</span>
</a>
</div>
</div>
</div>
<!-- 导航按钮 -->
<button class="slide-nav prev">‹</button>
<button class="slide-nav next">›</button>
<!-- 指示器 -->
<div class="slide-indicators">
<span class="slide-indicator active" data-index="0"></span>
<span class="slide-indicator" data-index="1"></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
const slides = document.querySelectorAll('.slide');
const indicators = document.querySelectorAll('.slide-indicator');
const prevBtn = document.querySelector('.slide-nav.prev');
const nextBtn = document.querySelector('.slide-nav.next');
const slideLinks = document.querySelectorAll('.slide-link');
let currentSlide = 0;
let slideInterval = null;
let isTransitioning = false;
const SLIDE_INTERVAL = 5000;
// 切换到指定幻灯片
function goToSlide(index) {
if (isTransitioning) return;
isTransitioning = true;
slides.forEach(slide => slide.classList.remove('active'));
indicators.forEach(indicator => indicator.classList.remove('active'));
slides[index].classList.add('active');
indicators[index].classList.add('active');
currentSlide = index;
setTimeout(() => {
isTransitioning = false;
}, 800);
}
// 下一张幻灯片
function nextSlide() {
let nextIndex = (currentSlide + 1) % slides.length;
goToSlide(nextIndex);
}
// 上一张幻灯片
function prevSlide() {
let prevIndex = (currentSlide - 1 + slides.length) % slides.length;
goToSlide(prevIndex);
}
// 停止自动轮播
function stopSlideShow() {
if (slideInterval) {
clearInterval(slideInterval);
slideInterval = null;
}
}
// 开始自动轮播
function startSlideShow() {
stopSlideShow();
slideInterval = setInterval(nextSlide, SLIDE_INTERVAL);
}
// 手动切换幻灯片
function manualSlideChange(callback) {
stopSlideShow();
callback();
setTimeout(() => {
startSlideShow();
}, 800);
}
// 事件监听 - 阻止链接上的事件冒泡到导航按钮
prevBtn.addEventListener('click', function (e) {
e.stopPropagation();
if (!isTransitioning) {
manualSlideChange(prevSlide);
}
});
nextBtn.addEventListener('click', function (e) {
e.stopPropagation();
if (!isTransitioning) {
manualSlideChange(nextSlide);
}
});
// 指示器点击事件
indicators.forEach(indicator => {
indicator.addEventListener('click', function (e) {
e.stopPropagation();
if (!isTransitioning) {
const targetIndex = parseInt(this.getAttribute('data-index'));
if (targetIndex !== currentSlide) {
manualSlideChange(() => goToSlide(targetIndex));
}
}
});
});
// 链接点击事件 - 允许正常跳转
slideLinks.forEach(link => {
link.addEventListener('click', function (e) {
// 链接正常跳转,不需要阻止默认行为
console.log('跳转到:', this.href);
});
});
// 鼠标悬停时暂停轮播
const slideshow = document.getElementById('slideshow');
slideshow.addEventListener('mouseenter', stopSlideShow);
slideshow.addEventListener('mouseleave', startSlideShow);
// 开始自动轮播
startSlideShow();
// 添加键盘支持
document.addEventListener('keydown', function (e) {
if (!isTransitioning) {
if (e.key === 'ArrowLeft') {
manualSlideChange(prevSlide);
} else if (e.key === 'ArrowRight') {
manualSlideChange(nextSlide);
}
}
});
});
</script>CSS自行本地化
© 版权声明
THE END
-狐狸的小窝&新云工作室](https://alist.qindiaos.cn/d/bd/blog/f6be6a22-df71-4681-959c-198e1c0e2ff2.jpg?sign=onxH7o-OhWYZM7isHT0xI-9ACZ7HosUfjdLHiXt1czw=:0)















暂无评论内容