From 461fbd623a6714fbc5477f009d79385b498d1c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E9=94=8B?= <2069827762@qq.com> Date: Thu, 14 Dec 2023 23:55:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20231214\344\275\234\344\270\232.md" | 248 ++++++++++++++++++ 1 file changed, 248 insertions(+) create mode 100644 "07 \345\210\230\346\226\207\351\224\213/20231214\344\275\234\344\270\232.md" diff --git "a/07 \345\210\230\346\226\207\351\224\213/20231214\344\275\234\344\270\232.md" "b/07 \345\210\230\346\226\207\351\224\213/20231214\344\275\234\344\270\232.md" new file mode 100644 index 0000000..e705637 --- /dev/null +++ "b/07 \345\210\230\346\226\207\351\224\213/20231214\344\275\234\344\270\232.md" @@ -0,0 +1,248 @@ +### tab栏切换 + +~~~ js +// 1. 给 ul 添加点击事件(事件委托) +$('ul').on('click','a',function(){ + // 先删除 li里的 active + $('a.active').removeClass('active') + // 自己添加 active 类 + $(this).addClass('active') + + // 先删除 有item类 里的 active + $('.item.active').removeClass('active') + // 获取当前点击的 a 的索引 + const id = $('a').index($(this)) + // 根据 id 指定某个div添加 active 类 + $(`.item:eq(${id})`).addClass('active') +}) +~~~ + +### 轮播图 + +~~~ js +// 定义起始值 +let i = 0 +// 1. 给 > 按钮 添加点击事件 +$('.next').bind('click', () => { + // 判断 i 是否大于数组长度 + i = i >= sliderData.length - 1 ? 0 : i + 1 + // 调用切换函数 + toggleData() +}) + +// 2. 给 < 按钮添加点击事件 +$('.prev').bind('click', () => { + // 判断 i 是否大于数组长度 + i = i <= 0 ? sliderData.length - 1 : i - 1 + // 调用切换函数 + toggleData() +}) + +// 3. 添加定时器 +let time = setInterval(() => { + $('.next').click() +}, 1000) + +// 4. 添加 鼠标经过、移出事件 +$('.slider-wrapper,.slider-footer').bind({ + 'mouseover': () => { + // console.log(111); + // 暂停定时器 + clearInterval(time) + }, + 'mouseout': () => { + // console.log(222); + // 开启定时器 + time = setInterval(() => { + $('.next').click() + }, 1000) + } +}) + +// 分装一个切换(图片、标题、背景颜色、小圆点)的类 +function toggleData() { + // 切换图片 + $('.slider-wrapper img').attr('src', sliderData[i].url) + // 切换标题 + $('.slider-footer p').html(sliderData[i].title) + // 切换标题背景颜色 + $('.slider-footer').css('background', sliderData[i].color) + // 切换小圆点 + // 先删除 active 类 + $('.slider-indicator li.active').removeClass('active') + // 自己添加 active 类 + $(`.slider-indicator li:eq(${i})`).addClass('active') +} +~~~ + +### 图书管理系统 + +~~~ js +/** + * 目标一: 获取接口数据并渲染 + * 1.1 定义自己的外号 + * 1.2 通过自己的外号,发送异步请求,获取数据 + * 1.3 将获取的数据渲染 + */ + +// 1.1 定义自己的外号 +const creator = '墨下皆是心酸' + +// 因为,添加、删除、编辑后都要渲染一遍,所有分装一个渲染函数 +function getBooksList() { + // 1.2 通过自己的外号,发送异步请求,获取数据 + $.ajax({ + url: 'https://hmajax.itheima.net/api/books', + data: { + creator + }, + success: (result) => { + const data = result.data + // 将获取的数据渲染到页面上 + const htmlStr = $.map(data, (item, index) => { + // 解构数据 + const { id, bookname, author, publisher } = item + return ` +