内容概述:
全局变量和局部变量,
jQuery 介绍
获取标签
jQuery 操作样式
点击事、this 关键字
动画 animate
全局变量和局部变量
全局变量
定义在函数外面
作用范围:是全局的
局部变量
定义在函数里面
作用的范围是局部,函数内部
可以在函数中直接修改全局变量
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
// 定义全局变量
var iNum01 = 33;
function fnMyfunc(){
// 在函数内部定义局部变量,需要加 var ,如果不加 var ,那么定义的就是一个全局变量
var iNum02 = 66;
// 这里就是一个全局变量
iNum03 = 88;
// 使用变量
console.log('函数内部调用全局变量 iNum01: ' + iNum01);
console.log('函数内部调用局部变量 iNum02: ' + iNum02);
iNum01 = 22;
console.log('函数内部调用全局变量 iNum01: ' + iNum01);
}
fnMyfunc();
console.log('函数内部调用全局变量 iNum01: ' + iNum01);
console.log('函数外部调用全局变量 iNum03: ' + iNum03);
</script>
</head>
<body>
</body>
</html>
jquery 介绍
jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。
jQuery的版本分为1.x系列和2.x、3.x系列,1.x系列兼容低版本的浏览器,2.x、3.x系列放弃支持低版本浏览器,目前使用最多的是1.x系列的。
jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用。
使用:
<script src=“js/jquery-1.12.4.min.js”></script>
$(function(){代码功能})
jquery的口号和愿望 Write Less, Do More(写得少,做得多)
获取标签
jquery 选择器:
jquery 选择器可以快速地选择元素,选择规则和 css 样式相同,使用length 属性判断是否选择成功。
找标签
$(“#id”) 通过 id 名找元素
$(“.类名”) 通过类名找元素
$(“ 标签名”) 通过标签名找元素
$(“div p”) 通过标签名层级找元素
过滤
$(‘div’).has(‘span’); // 选择包含span元素的div元素
$(‘div’).not(’.box’); // 选择class不是 .box的div元素
$(‘li’).eq(2); // 选择li标签的第2个元素
转移
prev() 当前元素的上一个
prevAll() 当前元素的上面所有的
next() 当前元素的下一个
nextAll() 当前元素的下面所有
parent() 当前元素的父元素
children() 当前元素的所有子元素
siblings() 当前元素的所有同级元素
find() 通过指定条件找当前元素的某一个子元素
判断是否选择到了元素
jquery有容错机制,即使没有找到元素,也不会出错,可以用length属性来判断是否找到了元素,length等于0,就是没选择到元素,length大于0,就是选择到了元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>,
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $div = $('#div1');
var $div2 = $('.box');
var $li = $('li');
var $span = $('.box span')
var $div3 = $('div[class="box2"]');
var $div4 = $('div').has('span'); // 选择包含span元素的div元素
var $div5 = $('div').not('.box'); // 选择class不是 .box的div元素
var $li2 = $('li').eq(2); // 选择li标签的第2个元素
$div.css({'color':'red','font-size':30});
$div2.css({'color':'green','fontSize':'30px'});
$li.css({'background':'gold'});
$span.css({'color':'#666','font-size':50});
$div3.css({'color':'#aaa','font-size':20});
$div4.css({'text-indent':50});
$div5.css({'text-decoration':'underline'});
$li2.css({'list-style':'none'})
})
</script>
</head>
<body>
<div id="div1">这是第一个div</div>
<div class="box">这是第二个<span>div</span></div>
<div class="box">这是第三个div</div>
<div class="box2">这是第四个div</div>
<ul>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
</ul>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $div = $('#div1');
$div.prev().css({'color':'red'}); // 选择 id 前面紧挨的一个元素
$div.prevAll().css({'text-indent':40}); // 选择id前面的所有元素
$div.next().css({'color':'blue'}); // 选择id后面紧挨的一个元素
$div.nextAll().css({'text-decoration':'underline'}); // 选择id后面所有的元素
$div.parent().css({'background':"#ccc"}); // 选择id的父元素
$div.children().css({'color':'red','font-size':40}); // 选择id的子元素
$div.siblings().css({'background':'gold'}); // 除选择id外的所有元素
$div.find('.sp02').css({'font-weight':'bold'}); // 通过类找选择id中的某一个子元素
})
</script>
</head>
<body>
<div>
<h2>这是一个 h2 标题</h2>
<p>这是一个段落</p>
<div id="div1">这是一个<span>div</span><span class="sp02">span02</span></div>
<h3>这是一个h3标题</h3>
<p>这个第二个段落</p>
</div>
</body>
</html>
jquery 操作样式
行内style
css()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $div = $('#div1');
// 读取样式属性
var sSize = $div.css('font-size');
// console.log(sSize); 16px
// 原生方法设置文字大小, 原生需要在标签中声明这个样式属性才可以获取到
var sSize2 = document.getElementById('div1').style.fontSize;
// console.log(sSize2 );
// 写样式属性,也叫做设置或修改样式属性
$div.css('color',"red");
$div.css({'font-size':30,'background':'#666'});
// 获取多个元素的属性值,得到的是第一个元素的属性值
var $div2 = $('div');
var sSize3 = $div2.css('font-size');
console.log(sSize3);
})
</script>
</head>
<body>
<div id="div1">这是一个div</div>
</body>
</html>
类选择器
addClass() 追加样式
removeClass() 删除样式
toggleClass() 重复切换样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.big {
font-size: 30px;
}
.red {
color:red;
}
.noline {
text-decoration: none;
}
</style>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $a = $('#link01');
// 增加样式类名
$a.addClass('big');
$a.addClass('red');
$a.addClass('noline');
// 删除样式类名
$a.removeClass('big');
$a.removeClass('red noline');
})
</script>
</head>
<body>
<a href="#" id="link01">这是一个链接</a>
</body>
</html>
点击事件,this 关键字
click() 点击事件
$(this) 当前点击的事件 this是原生js,
index() 获取元素的索引
mouseover() 鼠标移入
mouseout() 鼠标移除
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $li = $('.list li');
var $p = $('p');
// 绑定 click 事件
$li.click(function(){
// this 指的是当前发生点击事件的那个对象,它是原生对象
// this.style.background = 'gold';
// $(this) 指的是当前发生点击事件的那个对象,它是 jquery 对象
$(this).css({'background':'red'});
// 获取元素的索引值
console.log( $(this).index() );
})
$p.click(function(){
console.log($(this).index());
})
})
</script>
</head>
<body>
<ul class="list">
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
<li>列表文字</li>
</ul>
<div>
<p>这是第一个p标签</p>
</div>
<div>
<p>这是第二个p标签</p>
</div>
</body>
</html>
动画 animate
animate(样式,时间,动画曲线,回调函数)
第一个参数:要做动画的样式属性,写成字典的形式
第二个参数:动画持续的时间,默认是 400 毫秒,默认单位是毫秒,定义时不写单位
第三个参数:动画曲线,默认是 ‘swing’ 缓冲运动,还有 ‘linear’ 匀速运动
第四个参数:回调函数,动画完成后执行的匿名函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box {
width: 200px;
height: 200px;
background: #666;
}
</style>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(function(){
var $btn = $('#btn');
var $div = $('.box');
$btn.click(function(){
// $div.css({'width':500});
// animate 实现动画效果
$div.animate({'width':500},1000,function(){
$div.animate({'margin-top':300}, 1000,function(){
$div.animate({'width':200,'margin-top':0}, 1000)
})
});
})
})
</script>
</head>
<body>
<input type="button" value="动画" id="btn">
<div class="box"></div>
</body>
</html>