9 前端 jQuery 框架Bootstrap

前端

1 jQuery

1.1 阻止元素发生默认的行为
  1. 当点击提交按钮时阻止自动提交表单行为;
  2. 当点击a标签链接时阻止链接打开URL。
<script>
    $("a").click(function(e) {
		// 阻止链接打开URL
        // 方式1
        return false;
    })
    
    $("a").click(function(e) {
        // 方式2
        e.preventDefault();
    })
</script>
1.2 阻止事件冒泡

事件冒泡:事件从dom 树的特定层开始层层往上传递,直至传递到dom的根节点。
以点击事件为例,当点击子节点时,会自动向上触发其父节点,祖先节点的点击事件。

// 方式1
$("span").click(function(event) {
	return false;
});

// 方式2
$("span").click(function(e) {
	e.stopPropagation();
});
1.3 事件委托

事件委托是利用事件冒泡,只指定一个事件处理,就可以管理某一类型的所有事件。

<script>
    // 为页面上所有的button标签绑定点击事件。
    // 这样添加事件无法影响到动态创建的标签。
    // $('button').click(function() {  
    //     alert(123);
    // });

    // 事件委托
    // 在指定的范围内将事件委托给特定标签,无论该标签是事先写好的还是后面动态创建的。
    $('body').on('click', 'button', function() {
        alert(123);  
    });
</script>
1.4 页面加载

等待页面加载完毕再执行代码

// 原生Javascript
window.onload = function() {
	// 代码
}
// jQuery
// 第一种
$(document).ready(function() {
	// 代码
})

// 第二种
$(function() {
	// 代码
})
1.5 动画效果
$('#d1').hide(5000);  // 5000ms

$('#d1').show(5000);

$('#d1').slideUp(5000);

$('#d1').slideDown(5000);

$('#d1').fadeOut(5000);

$('#d1').fadeIn(5000);

$('#d1').fadeTo(5000,0.4);
1.6 each

为每个匹配元素规定运行的函数。

$(selector).each(function(index, element))

index - 选择器的 index 位置
element - 当前的dom元素
$('div').each(function(index, obj) {
	console.log(index, obj);
});

$.each($('div'), function(index, obj) {
	console.log(index, obj);
});

$.each([111, 222, 333], function(index, obj) {
	console.log(index, obj);
});
1.7 data

向被选元素附加数据,或者从被选元素获取数据。
可以用于标签存储数据,用户无法直接获取。

从被选元素中返回附加的数据。
$(selector).data(name)

向被选元素附加数据。
$(selector).data(name, value)
$('div').data('info', 'Hello');

$('div').first().data('info');  // "Hello"
$('div').last().data('info');  // "Hello"

$('div').first().removeData('info');
$('div').first().data('info');  // undefined

2 Bootstrap

Bootstrap是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。

Bootstrap主页:https://www.bootcss.com/
Bootstrap v3:https://v3.bootcss.com/

2.1 使用方法

方法1
下载:https://v3.bootcss.com/getting-started/#download

方法2
使用CDN服务:https://www.bootcdn.cn/twitter-bootstrap/

<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>

注意:bootstrap的js代码是依赖于jQuery的,使用Bootstrap的动态效果时一定要导入jQuery。

使用Bootstrap时,所有的页面样式只需通过class来调节。

CSS样式:https://v3.bootcss.com/css/

2.2 布局容器

container
container-fluid

.container 类用于固定宽度的容器,左右两侧留有空白区域。
固定宽度的栅格布局

<div class="container">
    ...
</div>

.container-fluid 类用于100%宽度,占据全部视口的容器。
流式布局容器,100%宽度布局。

<div class="container-fluid">
    ...
</div>

制作页面时首先添加布局容器,即一个div,设置其class=“container”。

2.3 栅格系统

row
col-md-8
col-md-offset-2 移动
pull-left / pull-right 浮动

2.3.1 使用方法

栅格系统自动均分为12列。

<div class="container">
	<div class="row">
		<div class="col-md-4"></div>
		<div class="col-md-8"></div>
	</div>
</div>

8份居中

<div class="container">
	<div class="row">
		<!-- 向右移动2份 -->
		<div class="col-md-8 col-md-offset-2"></div>
	</div>
</div>
2.3.2 响应式布局

响应式布局示例

<style>
	.c1 {
		background-color: green;
	}
	@media screen and (max-width: 600px) {
		.c1 {
			background-color: red;
		}
	}
</style>

使用栅格参数制作响应式布局
针对不同种类的显示器bootstrap会自动选择对应的参数,
如果需要兼容所有种类的显示器,可以全部加上。

.col-xs-数字  // 超小屏幕 手机 (<768px)
.col-sm-数字  // 小屏幕 平板 (≥768px)
.col-md-数字  // 中等屏幕 桌面显示器 (≥992px)
.col-lg-数字  // 大屏幕 大桌面显示器 (≥1200px)
<div class="container">
	<div class="row">
		<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4"></div>
		<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8"></div>
	</div>
</div>
2.4 排版

bootstrap将所有原生的HTML标签的文本的字体,大小,粗细等参数统一设置成视觉舒适的样式。

在标题内可以使用small标签设置副标题。

<h1>h1. Bootstrap heading <small>Secondary text</small></h1>
2.5 表格

table
table-hover
table-striped
table-bordered

<table class="table table-hover table-striped table-bordered">
	<thead>
		<tr>
			<th>Head</th>
		</tr>
	</thead>
	<tbody>
		<tr class="active">
			<td>Body</td>
		</tr>
		<tr class="success">
			<td>Body</td>
		</tr>
		<tr class="info">
			<td>Body</td>
		</tr>
		<tr class="warning">
			<td>Body</td>
		</tr>
		<tr class="danger">
			<td>Body</td>
		</tr>
	</tbody>
</table>
2.6 表单

form-control

针对表单标签,使用form-control样式。

<input type="text" class="form-control">
<select name="" id="" class="form-control">
	<option value="">111</option>
    <option value="">222</option>
    <option value="">333</option>
 </select>
 <textarea name="" id="" cols="30" rows="10" class="form-control"></textarea>

针对checkbox和radio,一般不会加样式form-control,直接使用原生样式。

<p class="has-error">
	username:
    <input type="text" class="form-control">
</p>
2.7 按钮

btn
btn-primary

将a标签变为按钮

<a href="https://www.baidu.com/" class="btn btn-primary">百度一下,你就知道。</a>

按钮样式

<!-- 调节按钮颜色 -->
<button class="btn btn-primary">按我</button>
<button class="btn btn-default">按我</button>
<button class="btn btn-success">按我</button>
<button class="btn btn-info">按我</button>
<button class="btn btn-warning">按我</button>
<button class="btn btn-danger">按我</button>

<!-- 调节按钮大小 -->
<button class="btn btn-warning btn-lg">按我</button>
<button class="btn btn-warning btn-sm">按我</button>
<button class="btn btn-warning btn-xs">按我</button>

块级按钮
为按钮添加 .btn-block 类,可以将其拉伸至父元素100%的宽度,而且按钮也变为了块级(block)元素。

<input type="submit" class="btn btn-primary btn-block">  
2.8 图标
2.8.1 Bootstrap

组件:https://v3.bootcss.com/components/

使用方法:span标签 + class样式

<span class="glyphicon glyphicon-pencil"></span>
2.8.2 Font Awesome

Font Awesome:http://www.fontawesome.com.cn/

Font Awesome 完全兼容 Bootstrap 的所有组件。

<link rel="stylesheet" href="font-awesome-4.7.0/css/font-awesome.min.css"></link>

<i class="fa fa-thermometer-quarter" aria-hidden="true"></i>
2.9 弹框

[Sweet Alert](https://lipis.github.io/bootstrap-sweetalert/:https://lipis.github.io/bootstrap-sweetalert/
主页:https://sweetalert.bootcss.com/

<script src="https://cdn.bootcss.com/sweetalert/1.1.3/sweetalert.min.js"></script>

3 知识回顾

3.1 下面这段代码的输出结果是什么,并给出你的解释
def index():
    return [lambda x: i * x for i in range(4)]

print([m(2) for m in index()]) 
  1. 定义函数index,运行打印函数,执行列表生成式 [m(2) for m in index()]
  2. 对于列表生成式,执行后面的for循环语句,先执行in后面的index函数;
  3. index函数执行并返回return后面的语句,即先执行 [lambda x: i * x for i in range(4)]
  4. [lambda x: i * x for i in range(4)] 相当于
def func():
    fun_lambda_list = []
    for i in range(4):
        def lambda_(x):
            return x * i

        fun_lambda_list.append(lambda_)

    return fun_lambda_list
  1. 执行列表生成式先执行后面的循环语句,再将每次获取的值交给前面的表达式;
    前面的表达式是个匿名函数,相当于定义了一个内层函数,并未执行;
    每次循环相当于定义一个内层函数,变量 i 的值由每次循环的range(4)决定,循环次数由range(4)决定,即4次;
    最后获得一个列表,包含4个内层函数定义和一个变量 i,i 的值最后等于3;
  2. 将获得的列表交给 [m(2) for m in index()],每次执行m(2),相当于执行内层函数;
    执行时需要参数x, x 由 m(2) 提供,即 x = 2;
    函数局部变量 i 在函数定义阶段逐层向外寻找,i = 3;
    因此每次执行函数时获得结果 x * i => 2 * 3 = 6
  3. 最后结果为[6, 6, 6, 6]。

补充,注意区别

fun1 = [lambda x: x * i for i in range(4)]
for item in fun1:
    print(item(2))  # 6, 6, 6, 6

fun2 = [lambda x, i=i: x * i for i in range(4)]
for item in fun2:
    print(item(2))  # 0, 2, 4, 6

func1中 i 是函数局部变量,运行时向外逐层寻找,相当于闭包;
func2中 i 是函数的默认形参,每次运行 for i in range(4) 时都会为其传入默认形参并存储在函数func2的命名空间中,即

lambda x, i=0: x * i
lambda x, i=1: x * i
lambda x, i=2: x * i
lambda x, i=3: x * i
3.2 递归调用

什么是函数的递归调用?
书写递归函数需要注意什么?
你能否利用递归函数打印出下面列表中每一个元素(只能打印数字),l = [1, [2, [3, [4, [5, [6, [7, [8, [9]]]]]]]]]

递归调用是指在调用一个函数的过程中直接或间接地调用这个函数本身。
函数递归调用需要结束条件。
函数每调用一次都会产生自己的局部空间。
如果允许无限地递归调用,则会无限地申请内存空间,这样会耗尽可用内存空间。
python解释器对递归调用深度进行了限制,默认是1000层。
不应该让递归调用触发解释器的限制条件,一般需要自己添加递归调用的结束条件。

l = [1, [2, [3, [4, [5, [6, [7, [8, [9]]]]]]]]]

def print_num(lst):
    for each_item in lst:
        if isinstance(each_item, int):
            print(each_item)
        else:
            print_num(each_item)

print_num(l)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高清完整版,自己做的目录。 前言 课程设计说明 关于引用作品版权说明 第1章 Bootstrap入门 1 Bootstrap简介 1.1 Bootstrap简介 1.2 Bootstrap文件结构和标准模板 操作案例:在页面中使用Bootstrap 2 Bootstrap功能介绍 2.1.Bootstrap构成模块 2.2 Bootstrap的特色和功能介绍 2.2.1 Bootstrap的特色 2.2.2 媒体查询 2.2.3 Bootstrap主要功能 2.3 Bootstrap优秀插件 2.4 Bootstrap版本变化 3 Bootstrap优秀网站示例 本章总结 本章作业 第2章 Bootstrap布局 1 Bootstrap的结构 1.1 使用栅格系统 1.1.1 绘制栅格 1.1.2 栅格系统的列偏移 操作案例1:制作音乐网站首页 1.1.3 栅格系统的列交换 1.1.4 栅格系统的嵌套 1.2 响应式栅格 操作案例2:组合栅格系统 2 CSS布局概要 2.1 CSS布局简介 2.2 基础排版 2.2.1 标题 2.2.2 主体内容 2.2.3 对齐方式 2.2.4 列表 3 禁用响应式布局 本章总结 本章作业 第3章 Bootstrap组件 1 按钮 操作案例1:制作Bootstrap官网案例页面 2 表格 3 CSS组件 3.1 表单 3.2 输入框组 3.3 图标 3.4 下拉菜单 操作案例2:制作收集用户信息页面 3.5 按钮组 3.6 导航和导航条 操作案例3:制作导航栏 3.7 缩略图 3.8 媒体对象 本章总结 本章作业 第4章 Bootstrap插件 l 动画过渡 2 Bootstrap中的JS插件 2.1 模态框 操作案例1:利用模态窗体制作百度登录框 2.2 轮播图 操作案例2:利用.Bootstrap制作携程网首页的轮播图 2.3 选项卡 2.4 折叠 操作案例3:利用Bootstrap制作导航菜单 本章总结 本章作业 第5章jQuery Mobile入门 l jQuery Mobile入门 1.1 jQuery Mobile简介 1.2 jQuery Mobile准备文档 1.3 jQuery Mobile架构 1.3.1 jQuery Mobile属性 1.3.2 jQuery Mobile主题 1.3.3 jQuery Mobile视图 操作案例1:制作jQuery Mobile基本页面 1.3.4 jQuery Mobile对话框 1.4 与电话整合 操作案例2:制作商家信息展示页面 2 jQuery Mobile UI组件 2.1 网格系统 2.2 格式化内容 2.3 可折叠的内容 2.4 工具栏 操作案例3:制作影视介绍页面 2.5 按钮 操作案例4:制作音乐播放器页面 本章总结 本章作业 第6章jQuery Mobile基础 1 列表 1.1 整页列表与插入列表 1.2 视觉分隔符 1.3 交互行 1.4 图片 1.4.1 图标 1.4.2 缩略图 1.4.3 计数气泡 2 表单组件 2.1 表单动作 2.2 表单元素 2.2.1 文本标签和容器标签 2.2.2 文本输入框 2.2.3 textarea输入区域 2.2.4 HTML5新增标签 操作案例:制作信息收集页面 3 jQuery Mobile API 3.1 jQuery:Mobile API 3.2 jQuery Mobile事件 3.2.1 页面事件 3.2.2 方向事件 3.2.3 触摸事件 本章总结 本章作业

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值