JS基础第四课、JQ基础第一课(BOM、JQuery框架)
注意:
使用JQuery一定要记得引入,否则会$报错
回忆:
outline: none; //去掉输入框默认的边框
decodeURI(arr[1]) //解码中文
str.split('&')
(1)proticol:通信协议(http、https)
(2)host:主机域名
(3)post:端口号
(4)path:路径,文件在服务器上的地址
(5)query:参数,一般以键值对的形式提交
(6)fragment:锚点#
2、属性
(1)获取整个url:location.href
(2)获取主机:location.host
(3)获取端口号:location.post
(4)获取路径:location.path
(5)获取参数:location.search
(6)获取片段(锚点):location.hash
3、(1)获取url参数
①登录框
②登录后跳转页面
2、前进:forward()
3、前进和后退:go()
(1)前进一页:go(1)
(2)后退两页:go(-2)
代码例子:三个文件,效果后续发表相关视频给小伙伴看🧐
(1)sessionStorage 5M
(2)localStorage 20M
值存储字符串,可以编码json.stringify编码字符串来存储对象
2、window.sessionStorge
(1)生命周期:关闭浏览器
(2)在同一个页面,数据共享,以键值对的形式存储
3、window.localStorage
(1)生命周期:永久有效,除非手动删除,关闭也会存在
(2)可以多个窗口共享,以键值对的形式存储
(3)删除removeItem
代码例子:效果后续发表相关视频给小伙伴看🧐
(1)JavaScript库:一个封装好的特定的集合(方法和函数),该库里封装了很多定义好的函数,支持js的常规操作以及一些扩展
(2)学习JQuery本质:学习调用函数(方法)
2、jq的引入及输出
$(标签对象)变成jq的对象【单独的标签对象不可以用jq方法,只有用$包裹变成jq的对象才可以用方法】
(1)格式
3、样式操作:CSS()方法修改
(1)获取:参数只写属性名,返回值
(2)设置:参数是属性名和属性值
(3)参数是对象,键值对的形式【注意:属性名为复合属性时,写成驼峰的形式】
4、排他思想:当前元素设置样式,其他兄弟清除样式
(1)sibings():返回其他同级元素对象
(2)结合第3点的样式操作:css('样式属性名','属性值') //修改样式方法
5、链式编程
7、动画
(1)显示隐藏
①显示:show(speed,callback)
②隐藏:hide(speed,callback)
③切换:toggle(speed,callback)
speed:时间
callback:回调函数,显示隐藏之后去做的事情
代码例子:效果后续发表相关视频给小伙伴看🧐
①滑下:sildeDown(speed,callback) //显示
②滑上:sildeUp(speed,callback) //隐藏
③切换sildetoggle(speed,callback)
speed:时间
callback:回调函数,显示隐藏之后去做的事情
(3)stop方法:
stop():停止正在执行的动画
代码例子:效果后续发表相关视频给小伙伴看🧐
①fadeIn(speed,callback)
②fadeOut(speed,callback)
③fadetoggle(speed,callback)
speed:时间
callback:回调函数,显示隐藏之后去做的事情
④fadeTo(时间,透明度,callback)
代码例子:效果后续发表相关视频给小伙伴看🧐
(5)自定义动画:通过css样式将元素从一个状态改变成另一个状态,css属性值是逐渐改变的,这样就可以创建动画效果
①只有数字值可以创建动画(eg:width,margin),背景不会变
②animate(params,speed,easing,callback)
param:最终样式
easing:是否匀速,linear,swing
callback:回调函数,动画做完然后执行的事件
代码例子:效果后续发表相关视频给小伙伴看🧐
使用JQuery一定要记得引入,否则会$报错
回忆:
outline: none; //去掉输入框默认的边框
decodeURI(arr[1]) //解码中文
str.split('&')
BOM
一、location对象:解析URL
1、url:proticol://host:post/pash/pash?query#fragment(1)proticol:通信协议(http、https)
(2)host:主机域名
(3)post:端口号
(4)path:路径,文件在服务器上的地址
(5)query:参数,一般以键值对的形式提交
(6)fragment:锚点#
2、属性
(1)获取整个url:location.href
(2)获取主机:location.host
(3)获取端口号:location.post
(4)获取路径:location.path
(5)获取参数:location.search
(6)获取片段(锚点):location.hash
3、(1)获取url参数
①登录框
<body> <form action="./try.html"> <input type="text" name="user"> <br> <input type="password" name="password"> <br> <button>登录</button> </form> </body>
②登录后跳转页面
<h1>欢迎您,xxx</h1> <script> console.log(location.search); var str = location.search str = str.substr(1) var arr = str.split('&') arr = arr[0].split('=') console.log(arr[1]); var h1 = document.querySelector('h1') h1.innerHTML = '欢迎您,'+decodeURI(arr[1]) </script>
(2)location的方法
①跳转页面:location.assign(href)
②代替页面(没有历史记录):location.replace()
③重新加载页面(f5):location.reload()
<body> <button>点击</button> <script> var btn = document.querySelector('button') btn.onclick = function(){ // location.assign('https://www.baidu.com/') //跳转页面 // location.replace('https://www.baidu.com/') //代替页面 location.reload('https://www.baidu.com/') //刷新加载页面 } </script> </body>
二、navigator对象:监听设备对象
<body> <script> console.log(navigator); if(/Android|webOS|iPhone|BlackBerry/i.test(navigator.userAgent)){ console.log('手机'); } else{ console.log('电脑'); } </script> </body>
三、history对象:与浏览器历史进行交互,修改对象包含用户(在浏览器窗口)访问过的url
1、后退:back()2、前进:forward()
3、前进和后退:go()
(1)前进一页:go(1)
(2)后退两页:go(-2)
代码例子:三个文件,效果后续发表相关视频给小伙伴看🧐
<body> <h1>1</h1> <a href="./try2(1).html">去2</a> <a href="./try2(2).html">去3</a> <div> <button class="add">前进</button> <button class="back">后退</button> <button class="go">前进2页</button> </div> <script> var go = document.querySelector('.go') var add = document.querySelector('.add') var back = document.querySelector('.back') add.onclick = function(){ history.forward() } back.onclick = function(){ history.back() } go.onclick = function(){ history.go(2) } </script> </body>
四、本地存储:数据存储在浏览器中,设置、读取方便,甚至页面刷新也不会消失
1、容器较大(1)sessionStorage 5M
(2)localStorage 20M
值存储字符串,可以编码json.stringify编码字符串来存储对象
2、window.sessionStorge
(1)生命周期:关闭浏览器
(2)在同一个页面,数据共享,以键值对的形式存储
3、window.localStorage
(1)生命周期:永久有效,除非手动删除,关闭也会存在
(2)可以多个窗口共享,以键值对的形式存储
(3)删除removeItem
代码例子:效果后续发表相关视频给小伙伴看🧐
<script> sessionStorage.setItem('index',123);//仅在同一个页面 console.log(sessionStorage.getItem('index')); localStorage.setItem('name','小明')//可以多个窗口共享 console.log(localStorage.getItem('name')); localStorage.removeItem('name')//删除 console.log(localStorage.getItem('name')); </script>
JQuery
一、JQuery:一个快速、简洁的JavaScript库,设计的宗旨"write less,Do More"
1、简介(1)JavaScript库:一个封装好的特定的集合(方法和函数),该库里封装了很多定义好的函数,支持js的常规操作以及一些扩展
(2)学习JQuery本质:学习调用函数(方法)
2、jq的引入及输出
<script src="../jquery-3.6.0.js"></script> console.log(jQuery);
二、入口函数(类似于onload)
1、文档加载完毕,图片不加载时候就可以执行函数
(1)写法一:
<body> <script> $(document).ready(function(){ var div = document.querySelector('div') console.log(div); }) </script> <div></div> </body>(2)写法二
<body> <script> $(function(){ var div = document.querySelector('div') console.log(div); }) </script> <div></div> </body>2、文档加载完毕,图片加载完毕的时候执行该函数
<body> <script> $(window).ready(function(){ var div = document.querySelector('div') console.log(div); }) </script> <div></div> </body>3、顶级对象$,JQuery的别称
console.log($);//相当于console.log(jQuery);需要用jq的方法必须把元素对象包裹成jq对象
$(标签对象)变成jq的对象【单独的标签对象不可以用jq方法,只有用$包裹变成jq的对象才可以用方法】
三、常用API(jQuery 选择器 | 菜鸟教程 (runoob.com))
1、选择器:原生js获取方法有很多,且具有兼容性,jq来给封装,获取元素方法统一标准【放到肚子里面去】(1)格式
$('选择器')(2)方法:和CSS样式获取选择器元素的方法一致
<body> <button>点击</button> <div id="box"> <p>你好</p> </div> <p>外部你好</p> <script> console.log($('button')); $('button').click(function(){ alert('点击成功') }) console.log($('#box p')); </script> </body>
2、隐式迭代:遍历内部的DOM元素(伪数组的形式存储)的过程【给匹配的元素进行循环遍历,方便调用】
(1)获取当前点击下标:$(this).index()
(2)获取指定元素:$('元素').eq(index)
<body> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <script> $('li').click(function(){ console.log($(this).index()); }) $('li').eq(1).click(function(){ alert('点击成功') }) </script> </body>
3、样式操作:CSS()方法修改
(1)获取:参数只写属性名,返回值
(2)设置:参数是属性名和属性值
(3)参数是对象,键值对的形式【注意:属性名为复合属性时,写成驼峰的形式】
4、排他思想:当前元素设置样式,其他兄弟清除样式
(1)sibings():返回其他同级元素对象
(2)结合第3点的样式操作:css('样式属性名','属性值') //修改样式方法
<body> <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <script> $('li').click(function(){ $(this).css('background','red') $(this).siblings().css('background','') console.log($(this).siblings()); }) </script> </body>
5、链式编程
<script> $('li').click(function(){ $(this).css('background','red').siblings().css('background','')//链式 console.log($(this).siblings()); }) </script>
6、类的样式操作:添加类、删除类、切换类
代码例子:效果后续发表相关视频给小伙伴看🧐
<body> <div class="box"></div> <div> <button>添加</button> <button>删除</button> <button>切换</button> </div> <script> $('button').eq(0).click(function(){ $('.box').addClass('active') }) $('button').eq(1).click(function(){ $('.box').removeClass('active') }) $('button').eq(2).click(function(){ $('.box').toggleClass('active') }) </script> </body>
(1)显示隐藏
①显示:show(speed,callback)
②隐藏:hide(speed,callback)
③切换:toggle(speed,callback)
speed:时间
callback:回调函数,显示隐藏之后去做的事情
代码例子:效果后续发表相关视频给小伙伴看🧐
<script> $('button').eq(0).click(function(){ $('.box').show(2000,function(){ console.log('显示'); }) }) $('button').eq(1).click(function(){ $('.box').hide(2000,function(){ console.log('隐藏'); }) }) $('button').eq(2).click(function(){ $('.box').toggle(2000,function(){ console.log('切换'); }) }) </script>(2)滑动
①滑下:sildeDown(speed,callback) //显示
②滑上:sildeUp(speed,callback) //隐藏
③切换sildetoggle(speed,callback)
speed:时间
callback:回调函数,显示隐藏之后去做的事情
(3)stop方法:
stop():停止正在执行的动画
代码例子:效果后续发表相关视频给小伙伴看🧐
<body> <div class="box"></div> <div> <button>添加</button> <button>删除</button> <button>切换</button> <button>停止</button> </div> <script> $('button').eq(0).click(function(){ $('.box').slideDown(2000,function(){ console.log('显示'); }) }) $('button').eq(1).click(function(){ $('.box').slideUp(2000,function(){ console.log('隐藏'); }) }) $('button').eq(2).click(function(){ $('.box').slideToggle(2000,function(){ console.log('切换'); }) }) $('button').eq(3).click(function(){ $('.box').stop() }) </script> </body>(4)淡入淡出
①fadeIn(speed,callback)
②fadeOut(speed,callback)
③fadetoggle(speed,callback)
speed:时间
callback:回调函数,显示隐藏之后去做的事情
④fadeTo(时间,透明度,callback)
代码例子:效果后续发表相关视频给小伙伴看🧐
<script> $('button').eq(0).click(function(){ $('.box').fadeIn(2000,function(){ console.log('淡入'); }) }) $('button').eq(1).click(function(){ $('.box').fadeOut(2000,function(){ console.log('淡出'); }) }) $('button').eq(2).click(function(){ $('.box').fadeToggle(2000,function(){ console.log('切换'); }) }) $('button').eq(3).click(function(){ $('.box').fadeTo(200,'0.3',function(){}) }) </script>
①只有数字值可以创建动画(eg:width,margin),背景不会变
②animate(params,speed,easing,callback)
param:最终样式
easing:是否匀速,linear,swing
callback:回调函数,动画做完然后执行的事件
代码例子:效果后续发表相关视频给小伙伴看🧐
<body> <div class="box"></div> <button>点击</button> <script> //注意animate()无法修改背景颜色 $('button').click(function(){ $('div').animate({height:'500px',background:'red'},1000,'linear',function(){ console.log('执行完成'); }) }) </script> </body>
JS及JQuery框架 文章被收录于专栏
JavaScript的基本语法(变量、数据类型、运算符等等),流程控制(顺序、分支、循环),数组,函数(作用域、预解析),对象(自定义、内置),DOM(节点操作、获取元素),BOM(定时器、回调函数、同步异步) JQuery框架的入口函数,隐式迭代,排他思想,链式编程,样式操作,属性操作,事件监听