首页 前端知识 jQuery简单小案例

jQuery简单小案例

2024-04-29 11:04:39 前端知识 前端哥 300 751 我要收藏

//this是移入的li

// 移入li的索引值 $(this).index()

// 让 span 滑块 的 left 值跟着改变就可以了

// 运动就使用 animate() 函数

// $(‘span’).animate({

// left: $(this).index() * 100 第n个选项卡*选项卡宽度

// })

// 每次移入的时候, 都让之前的动画停止, 直接做最新的这个动画

$(‘span’).stop().animate({

left: $(this).index() * 100

})

})

二、选项卡

在这里插入图片描述

实现思想
  • 利用添加删除类名来实现选项卡的切换

  • 一个类名控制选项卡的颜色变化,一个类名控制内容的显示隐藏也就是display的改变

程序代码

*{margin: 0;padding: 0;}

ul,li{list-style: none;}

.box{border: 10px solid;width: 600px;margin: auto;height: 400px;}

.ul1{display: flex;text-align: center;font-size: 30px;}

.ul1>li{flex: 1;background: rgba(168, 255, 251, 0.7);height: 60px;line-height: 60px;}

.ul2{width: 100%;background: rgb(241, 138, 250);height: 340px;display:flex;justify-content:center;align-items:center;}

.ul2>li{font-size: 80px;display: none;}

/* 控制选项卡背景颜色的改变 */

.ul1 .active{background: rgb(255, 211, 91);}

/* 控制内容的显示隐藏 */

.ul2 .active{display: block;}

    • 1
    • 2
    • 3
      • 1
      • 2
      • 3
      • // 第一种方法

        $(‘.ul1>li’).click(function(){

        $(this)

        .addClass(‘active’)//在点击的按钮上添加active类名

        .siblings()//找到其余兄弟元素

        .removeClass(‘active’)//删除其余兄弟元素上的active类名

        .parent()//找到父元素 ul1

        .next()//找到父元素的下一个兄弟元素ul2

        .children()//找到ul2下所有的子元素

        .removeClass(‘active’)//删除所有子元素的active类名

        .eq($(this).index())//找到与点击按钮this对应的元素的索引

        .addClass(‘active’)//添加active类名

        })

        //第二种方法

        $(‘.ul1>li’).click(function(){

        $(‘.box li’).removeClass(‘active’)//所有li移除属性active

        $(this).addClass(‘active’)//在点击按钮上添加类名active

        ( ′ . u l 2 > l i ′ ) . e q ( ('.ul2>li').eq( (.ul2>li).eq((this).index()).addClass(‘active’)//在相应的内容上添加active类名

        })

        三、树状菜单

        在这里插入图片描述

        实现思想
        • 点击某一个一级菜单,其下的二级菜单显示,其余一级菜单的二级菜单隐藏

        • 二级菜单均隐藏display:none,当点击相应的一级菜单后,该二级菜单显示slideDown(),其余二级菜单隐藏slideUp()

        • 一种伪元素的方式写+ -

        程序代码
        • {

        margin: 0;

        padding: 0;

        }

        ul, ol, li {

        list-style: none;

        }

        ul {

        width: 300px;

        /* 高不需要写, 让内容撑开 */

        border: 3px solid pink;

        margin: 30px auto;

        padding-left: 20px;

        }

        ul > li {

        cursor: pointer;

        }

        /* 二级菜单 所有二级菜单隐藏*/

        li > ol {

        padding-left: 20px;

        display: none;

        }

        /*

        使用一种伪元素的方式写 + -

        */

        /* 包含一级菜单和二级菜单的所有 li */

        li::before {

        content: '+ ';

        }

        /* 有 active 类名的 li 的 before 伪元素样式 */

        li.active::before {

        content: '- ';

        }

        • 一级菜单
          1. 二级菜单
          2. 二级菜单
          3. 二级菜单
          4. 一级菜单
            1. 二级菜单
            2. 二级菜单
            3. 二级菜单
            4. 二级菜单
            5. 二级菜单
            6. 一级菜单
              1. 二级菜单
              2. 二级菜单
              3. 二级菜单
              4. 二级菜单
              5. 二级菜单
              6. 二级菜单
              7. 二级菜单
              8. // 每一个一级菜单都有一个点击事件

                // 注意: ul > li 子代选择器 选择的就是一级菜单的 li

                // ul li 后代选择器 选择的是所有一级菜单和二级菜单的 li

                // 给所有一级菜单添加点击事件

                $(‘ul > li’).click(function () {

                // 点击的时候, 自己有 active 类名, 并且自己的子元素的 ol slideDown()

                // 兄弟元素取消 active 类名, 并且兄弟元素下的 ol slideUp()

                $(this)// 找到 点击的一级菜单

                .toggleClass(‘active’)//切换 有类名就添加 没有就删除 更改一级菜单前的加减

                .children(‘ol’)// 找到该一级菜单的子元素 ol 二级菜单

                .slideToggle()// 切换 显示和隐藏 如果隐藏就让其显示 如果显示就让其隐藏

                .parent()// 找到 ol 二级菜单 的父元素一级菜单 也就是重新返回点击的一级菜单

                .siblings()//找到点击菜单的所有兄弟元素

                .removeClass(‘active’)//让兄弟元素全部移除类名active 其余一级菜单前变为 减号

                .children(‘ol’)// 找到其余一级菜单的所有二级菜单

                .slideUp()//让其二级菜单 隐藏

                })

                四、回到顶部

                在这里插入图片描述

                实现思想
                • 判断浏览器卷去高度,在某一特定高度时隐藏,超过这一高度时显示

                • 点击该按钮回到顶部,并利用定时器,让页面缓慢回到顶部

                程序代码

                p {

                width: 60px;

                height: 60px;

                background-color: purple;

                font-size: 24px;

                line-height: 24px;

                text-align: center;

                color: #fff;

                cursor: pointer;

                display: none;

                position: fixed;

                right: 30px;

                bottom: 50px;

                }

                body {

                height: 5000px;

                }

                回到顶部

                // 1. 通过浏览器卷去的高度来决定按钮显示和隐藏

                // 需要一个浏览器的滚动事件

                $(window).scroll(() => {

                // 通过判断卷去的高度来决定 隐藏或者显示 回到顶部按钮

                if ($(window).scrollTop() >= 300) {

                //卷去高度大于300 让回到顶部按钮显示

                $(‘p’).fadeIn()

                } else {

                //卷去高度小于300 让回到顶部按钮隐藏

                $(‘p’).fadeOut()

                }

                })

                // 2. 点击按钮的时候让页面回到顶部

                $(‘.goTop’).click(() => {

                // 让页面回到顶部 -> 滚回去

                // 让页面滚回去, 需要用到 animate() 函数

                // 滚动的不是窗口, 是页面

                // 所以我们是在这里让 页面的 scrollTop 变成 0

                $(‘html’).animate({

                scrollTop: 0

                }, 1000)

                // animate 是要操作元素的

                // document 是根节点 不是 元素

                // html 是根元素节点

                })

                五、全选反选案例

                在这里插入图片描述

                实现思想
                • 全选按钮:点击全选按钮时,获取其状态,让所有单选按钮保持跟全选按钮的状态一致

                • 单选按钮:当单选按钮每个都被选中时,让全选按钮也被选中

                • 单选按钮从全部选中,变为非全部选中,全选按钮也取消选中

                • 反选按钮:点击反选按钮,每一个单选按钮的状态都与之前相反

                程序代码
                • {

                margin: 0;

                padding: 0;

                }

                .box {

                width: 200px;

                border: 10px solid #333;

                margin: 50px auto;

                padding: 20px;

                }

                hr {

                margin: 20px 0;

                }

                .fan {

                float: right;

                }

                反选

                全选


                选项一:

                选项二:

                选项三:

                选项四:

                // 1. 全选按钮

                $(‘.all > input’).click(function () {

                // 先拿到自己的状态 获取自己的 checked 属性 true或者false

                //this.checked

                // 让 单选按钮 与全选按钮保持一致

                $(‘.select > input’).prop(‘checked’, this.checked)

                })

                // 2. 单选按钮

                $(‘.select > input’).click(function () {

                // 判断一下四个选项是不是都是true

                //如果是 全选按钮就选中 true 如果不是 全选按钮就取消选中 false

                //方法一

                // 定义一个变量假设他们都是 true

                var flag = true

                // 遍历四个按钮, 只要有一个是 false, 那么就把 flag 变成 false

                $(‘.select > input’).each(function (index, item) {

                // 只要有一个的 checked 是 false , 那么我就让 flag 是 false

                if (item.checked === false) {

                flag = false

                }

                })

                //循环结束设置全选按钮的值

                $(‘.all > input’).prop(‘checked’, flag)

                //方法二

                // 利用数组方 every()

                //如果数组中每一个元素都满足条件就返回 true, 只要有一个不满足条件就返回 false

                // 因为 jQuery 元素集合不能使用 数组的方法

                // 我们可以使用 call 借用一下

                // call 是改变 this 指向, 从第二个参数开始时给函数传递参数

                $(‘.all > input’)

                .prop(‘checked’, [].every.call($(‘.select > input’), function (item, index) {

                return item.checked === true

                }))

                })

                // 3. 反选按钮

                $(‘.fan > button’).click(function () {

                // 让每一个 select 下面的 input 都改变自己的状态

                // 遍历每一个单选按钮

                $(‘.select > input’).each(function (index, item) {

                item.checked = !item.checked

                })

                //跟单选按钮的 代码一样 选择其中一种即可

                ( ′ . a l l > i n p u t ′ ) . p r o p ( ′ c h e c k e d ′ , [ ] . e v e r y . c a l l ( ('.all > input').prop('checked', [].every.call( (.all>input).prop(checked,[].every.call((‘.select > input’), function (item, index) { return item.checked === true }))

                })

                六、手风琴

                在这里插入图片描述

                实现思想

                自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

                深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

                因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

                img

                既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

                由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

                如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

                最后

                javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

                资料领取方式:点击这里获取前端全套学习资料

                css源码pdf

                JavaScript知识点
                [外链图片转存中…(img-hFkcsrVk-1711680579760)]

                [外链图片转存中…(img-Z3aw4Pca-1711680579760)]

                既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

                [外链图片转存中…(img-uwPs3non-1711680579761)]

                由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

                如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

                最后

                javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

                资料领取方式:点击这里获取前端全套学习资料

                [外链图片转存中…(img-bARz42uB-1711680579761)]

                [外链图片转存中…(img-McVA1RQ5-1711680579761)]

              转载请注明出处或者链接地址:https://www.qianduange.cn//article/6273.html
              标签
              评论
              发布的文章

              @JsonCreator和@JsonValue

              2024-05-05 22:05:05

              Python 字符串转换为 JSON

              2024-05-05 22:05:00

              大家推荐的文章
              会员中心 联系我 留言建议 回顶部
              复制成功!