优设是一个设计师喜欢的网站,仿一个它的幻灯片。
点击图片查看具体效果。
功能:
1、数组存放图片路径和标题信息。
2、点击上一张、下一张图片滑动切换。
3、图片切换的时候标题的高亮对应切换。
4、点击标题可以切换到对应的图片。
5、自动播放图片,鼠标经过幻灯,停止自动播放,移开又恢复自动播放。
核心代码:
// 初始化值
const url = ["images/1.png", "images/2.jpg", "images/3.jpg", "images/4.jpg", "images/5.jpg", "images/6.jpg"];
const title = ["手绘课程", "手绘技法", "ps合成", "品牌设计", "海报设计", "软件班"];
const len = url.length;
// 找对象
const oBanner = $('.banner');
const oUl = $('.pic-lists');
const oUlTitle = $('.title-lists');
const oBtnNext = $('.next');
const oBtnPrev = $('.prev');
const oLisTitle = oUlTitle.getElementsByTagName('li');
// 初始化界面
let str = ''
url.forEach(function (item) {
str += `<li><a href="#"><img src="${item}"></a></li>`;
})
oUl.innerHTML = str;
let str1 = '';
title.forEach(function (item) {
str1 += `<li><a href="#">${item}</a></li>`
})
oUlTitle.innerHTML = str1;
let num = 0;
oLisTitle[num].classList.add('active');
let width = parseInt(getComputedStyle(oBanner).width);
// console.log(width)
// 点击下一张,让ul整体往左边移动一张图片的宽度
oBtnNext.onclick = function () {
num++;
if (num >= len) {
num = 0;
}
tab(num);
}
// 点击上一张
oBtnPrev.onclick = function () {
num--;
if (num <= -1) {
num = len - 1;
}
tab(num);
}
let timer = null;
// 初始化自动播放
autoPlay();
oBanner.addEventListener('mouseenter', function () {
clearInterval(timer);
})
oBanner.addEventListener('mouseleave', function () {
// 再开定时器的时候,确保前面的定时器已经关闭。
autoPlay();
})
// 自动播放函数
function autoPlay() {
timer = setInterval(function () {
num++;
if (num >= len) {
num = 0;
}
tab(num);
console.log(timer)
}, 3000)
}
// 点击标题切换
for (let i = 0; i < oLisTitle.length; i++) {
oLisTitle[i].addEventListener('click', function () {
num = i;
tab(num);
})
}
// 幻灯切换函数
function tab(num) {
oUl.style.transform = `translateX(-${width * num}px)`;
[...oLisTitle].forEach(function (item) {
item.classList.remove('active');
})
oLisTitle[num].classList.add('active');
}
function $(selector) {
return document.querySelector(selector);
}
发表评论:
◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。