优学网项目简介
- 优学网项目主要分为首页+登录注册页+视频播放页内容项目模仿网页
- 使用html+css实现基本页面布局,完成ajax请求数据进行页面渲染以及表单正则验证的项目练习。
- 项目源码链接
一、首页
(一) 、轮播图模块
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9d88ec384c356a0b1efd40eb92920d06.png)
1、图片轮播–定时器
- 通过ajax请求图片json数据, JSON.parse()将获取的数据转成js格式数据
- 获取每一张图片、每一个小圆点–for循环
- 初始化页面样式,将图片数据添加进 ul,将小圆点span加入p
- 设置lunBoUl的宽度=图片宽度*图片张数
- 轮播图–每隔一段时间切换图片,当到最后一张后返回第一张
var n = 0;
var timer = setInterval(function () {
n++;
if (n >= arr.length + 1) {
n = 0;
lunBoUl.style.left = 0;
}
jsKu.move(lunBoUl, 'left', 60, -n * 1317);
for (var i = 0; i < lunBoSpans.length; i++) {
lunBoSpans[i].className = '';
}
lunBoSpans[n == arr.length ? 0 : n].className = 'active';
}, 2000);
}
2、鼠标滑入滑出事件
- 当鼠标移入div时,停止图片轮播,鼠标移出div,开启定时器图片轮播
- 设置定时器唯一标识符–用于清除定时器
lunBoDiv.onmouseenter = function () {
clearInterval(timer);
}
lunBoDiv.onmouseleave = function () {
timer = setInterval(function () {
n++;
if (n >= arr.length + 1) {
n = 0;
lunBoUl.style.left = 0;
}
jsKu.move(lunBoUl, 'left', 60, -n * 1317);
for (var i = 0; i < lunBoSpans.length; i++) {
lunBoSpans[i].className = '';
}
lunBoSpans[n == arr.length ? 0 : n].className = 'active';
}, 2000);
}
3、左右箭头事件
- 左箭头:点击左箭头显示上一张图片,第一张图片的上一张图片是最后一张图片
lunBoButtons[0].onclick = function () {
n--;
if (n < 0) {
n = arr.length - 1;
jsKu.move(lunBoUl, 'left', 130, -n * 1317);
}else {
jsKu.move(lunBoUl, 'left', 60, -n * 1317);
}
for (var i = 0; i < lunBoSpans.length; i++) {
lunBoSpans[i].className = '';
}
lunBoSpans[n == arr.length ? 0 : n].className = 'active';
}
- 右箭头:点击右箭头显示下一张图片,最后一张图片的下一张图片是第一张图片
lunBoButtons[1].onclick = function () {
n++;
if (n > arr.length - 1) {
n = 0;
jsKu.move(lunBoUl, 'left', 130, -n * 1317);
} else {
jsKu.move(lunBoUl, 'left', 60, -n * 1317);
}
for (var i = 0; i < lunBoSpans.length; i++) {
lunBoSpans[i].className = '';
}
lunBoSpans[n == arr.length ? 0 : n].className = 'active';
}
4、小圆点点击事件
- 点击每个小圆点可对应显示图片
- 小圆点的样式设置要进行排它处理–即所有小圆点样式初始为空,再设置当