python全栈开发day46-BOM、位置信息、jQurey
一、昨日内容回顾
1.DOM节点获取:三种方式
2.属性的设置:
getAttirbute()
setAttribute()
.点设置,【】设置
3.节点的创建:
var oDiv = createElement('div')
设置节点属性、内容(innerText,innerHTML,value)、添加节点至html
节点的添加:
父节点.appendChild(子节点)
父节点.insertBefore(新的子节点,参考的子节点)
如果参考节点为null,相当于appendChild方法
节点的删除:
父节点.removeChild(子节点)
4.定时器(一定要清除定时器):
var a = setTimeOut(fn,5000);
var b = setInterVal(fn,5000);
clearTimeOut(a);
clearInterVal(a);
二、今日内容总结
1.js中对象的创建方式(js中的面向对象是伪面向对象)
1.字面量方式创建 简单粗暴
var p = {
name:'鞠疼',
age:18,
fav:function(){}
}
2.内置构造函数
var p = new Object()
3.工厂模式
function person(){
var p = new Object();
...
return p
};
var p1 = person();
var p2 = person();
4.构造函数
闭包函数:解决全局污染的问题
function Person(){
this.name = name;
this.age = age;
this.fav = fn;
this.fav1 = fn2;
};
function Ooo(){
this.fav = fn;
this.fav1 = fn2;
}
var p1 = new Person();
p1 instanceOf Object ===true
p1 instanceOf Person ===true
p1 instanceOf fruite ===false
5.原型链继承方式创建 ****
function Student() {
this.name = 'easy';
this.age = 20;
}
Student.prototype.alertName = function(){
alert(this.name);
};
Student.prototype.alertName2 = function(){
alert(this.age);
};
var stu1 = new Student();
//var stu2 = new Student();
window.aaa = stu1;
stu1.alertName(); //easy
stu2.alertName(); //easy
alert(stu1.alertName == stu2.alertName); //true 二者共享同一函数
2. 模块抛出
抛出模块
在js中模块抛出 有两种
//前端也有模块,前端的模块抛出的方案不同
//同步和异步
//现在学到的模块技术是不完善 我们是希望我们的是异步方案
# js模块抛出分两种(对象和构造函数)
1.必须使用闭包函数,将抛出的内容(对象)挂在到window
//1.js
(function(window){
function Student() {
this.name = 'alex';
this.age = 20;
} Student.prototype.alertName = function(){
alert(this.name);
}; var stu1 = new Student(); window.stu1 = stu1; })(window) <script src="./1.js"></script>
<script src="./2.js"></script> <script> //使用对象调用方法,调属性
stu1.alertName(); </script>
1.js
2.必须使用闭包函数,将抛出的内容(构造函数)挂在到window
//2.js
(function(window){
function Student() {
this.name = 'alex';
this.age = 20;
} Student.prototype.alertName = function(){
alert(this.name);
}; var stu2 = Student; window.stu2 = stu2; })(window) <script src="./1.js"></script>
<script src="./2.js"></script> <script> //构造函数使用关键字new来创建对象,然后才可以调用属性和方法
var s = new stu2();
s.alertName(); </script> 时刻看源码
3. BOM
1) window.open()、window.close()
2) window.location.XXX
herf :跳转
hash:返回url中#后面的内容,包含#
host: 主机名+端口
hostname: 主机名
pathname: url中的路径部分
protocol: 协议 一般是http、https
search: 查询字符串?后边的用心
reload() :全局刷新页面
3) window.navigator.userAgent .platform
4) history.forward,back,go(1),go(-1)
4.位置信息:
client系列
1.获取屏幕和内容可视区域:
console.log(oBox.clientTop); # 内容到上边框距离,就是上边框宽度
console.log(oBox.clientLeft);# 内容到左边框距离,就是左边框宽度
console.log(oBox.clientWidth); # 内容宽度+左右padding
console.log(oBox.clientHeight); # 内容宽度+上下padding onresize:
// 窗口大小发生变化时,会调用此方法
console.log(document.documentElement.clientWidth);
console.log(document.documentElement.clientHeight);
offset系列
console.log(box.offsetTop)
console.log(box.offsetLeft)
console.log(box.offsetWidth)
console.log(box.offsetHeight)
offsetWidth占位宽 内容+padding+border
offsetHeight占位高
* offsetTop: 如果盒子没有设置定位 到body的顶部的距离,如果盒子设置定位,那么是以父辈为基准的top值
* offsetLeft: 如果盒子没有设置定位 到body的左部的距离,如果盒子设置定位,那么是以父辈为基准的left值
scroll系列
//实施监听滚动事件
window.onscroll = function(){
// console.log(1111)
// console.log('上'+document.documentElement.scrollTop)
// console.log('左'+document.documentElement.scrollLeft)
// console.log('宽'+document.documentElement.scrollWidth)
// console.log('高'+document.documentElement.scrollHeight)
}
onresize()
onscroll()
三、预习和扩展
1.同源策略
源(origin)就是协议、域名和端口号。
同源策源:
http://127.0.0.1:8080/index.html
http://localhost:8080/index2.html
跨域问题:了解
前端跨域:
script jsonp(get请求的跨域)废弃
后端跨域
cors跨域(重点)
第三方模块
扩展链接:https://www.cnblogs.com/rockmadman/p/6836834.html
2.两个页面之间传数据
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<button id="btn">跳转</button>
<script type="text/javascript">
oBtn = document.getElementById("btn");
oBtn.onclick=function () {
var name ='alex';
window.location.href='http://localhost:63342/py笔记/day46/test1.html?usename='+ name;
}
</script>
</body>
</html>
home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是谁!!!!!!!!!!</h1>
<script type="text/javascript">
var data =window.location.search
document.write(data)
</script>
</body>
</html>
test1.html
3.通过jsonp获取跨域数据:jsonp.html获取main.js中的数据。
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<button id="btn">跳转</button>
<script type="text/javascript">
oBtn = document.getElementById('btn');
function addScriptTag(src){
var script = document.createElement('script');
script.setAttribute("type","text/javascript");
script.src = src;
document.body.appendChild(script);
}
window.onload = function () {
addScriptTag('http://localhost:63342/py笔记/day46/main.js?callback=foo');
} //window.onload是为了让页面加载完成后再执行
function foo(data) {
console.log(data.name+"欢迎您");
};
</script>
</body>
</html>
a.com/jsono.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>我是谁!!!!!!!!!!</h1>
<script type="text/javascript">
var data =window.location.search
document.write(data)
</script>
</body>
</html>
main.js
4.背景图颜色渐变:linear-gradient
backgroud-img:linear-gradient(to bottom,red,blue)
https://www.w3cplus.com/css3/do-you-really-understand-css-linear-gradients.html
5.backgroud-size:
1、定义: background-size 用来调整背景图像的尺寸大小。 2、语法: 以下为引用内容:
background-size : contain | cover | 100px 100px | 50% 100%; 3、参数: background-size:contain; // 缩小图片来适应元素的尺寸(保持像素的长宽比);
background-size :cover; // 扩展图片来填满元素(保持像素的长宽比);
background-size :100px 100px; // 调整图片到指定大小;
background-size :50% 100%; // 调整图片到指定大小,百分比相对于包含元素的尺寸。
background-size 用来调整背景图像的尺寸大小。
python全栈开发day46-BOM、位置信息、jQurey的更多相关文章
- python全栈开发day49-jquery的位置信息、事件流、事件对象,事件委托,事件绑定和解绑
一.昨日内容回顾 1. jQuery的属性操作 1) html属性操作:attr 2) DOM属性操作:prop 3) 类样式操作:addClass.removeClass.toggleClas ...
- python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)
python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
python全栈开发笔记第二模块 第四章 :常用模块(第二部分) 一.os 模块的 详解 1.os.getcwd() :得到当前工作目录,即当前python解释器所在目录路径 impor ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
随机推荐
- mysql的事件
mysql的事件定时器的使用: SHOW VARIABLES LIKE 'event_scheduler' --查询event_scheduler开启状态 SET GLOBAL event_sched ...
- VxWorks Fuzzing 之道:VxWorks 工控实时操作系统漏洞挖掘调试与利用揭秘
转载:freebuf 0×00 前言 关于VxWorks,这里引用44CON议题<攻击 VxWorks:从石器时代到星际>探究 一文章中的介绍: VxWorks 是世界上使用最广泛的一种在 ...
- luogu P3760 [TJOI2017]异或和
传送门 对于每个二进制位考虑有多少区间和这一位上为1 从前往后扫每个前缀和,如果当前这个前缀和某一个二进制位上为1,因为区间和由这个前缀和减去前面的前缀和得来,如果减去了这一位为0的前缀和,那么 减去 ...
- luogu P2480 [SDOI2010]古代猪文
M_sea:这道题你分析完后就是一堆板子 废话 理解完题意后,我们要求的东西是\(G^s(s=\sum_{d|n} \binom{n}{d})\) 但是这个指数\(s\)算出来非常大,,, 我们可以利 ...
- 第16月第6天 vs2005 lseek directdraw
1. //_lseek(file_handle, -(int)pbitmap->bitmapinfoheader.biSizeImage, SEEK_END); SetFilePointer(( ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K题
题目链接: https://nanti.jisuanke.com/t/31452 AC代码(看到不好推的定理就先打表!!!!): #include<bits/stdc++.h> using ...
- python - 计算器 程序练习
v1.0 计算器(数据内不含括号方式:) import re def jisuan(a,b,c): sun_count = 0 if c =="+": sun_count = st ...
- Dom4j向XML中增加节点与属性——(四)
先获取到节点,然后在节点山添加Element 添加节点 添加属性 设置开始标签与结束标签的值book.addElement("描述").addAttribute("nam ...
- 【tomcat】Web环境(tomcat)下新增一个访问路径(虚拟路径)
在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:(在server.xml最好不要添加中文注释,在有些操作系统会启动失败) <Context docBase ...
- mysql重置登录密码
1.停止mysql服务. services.msc进入服务界面 停止mysql服务 2.打开一个cmd窗口. 输入mysqld --skip-grant-tables 启动了一个新的mysql服务 跳 ...