<读书笔记>《锋利的jQuery》

2016年4月3日
第4章 jq中的事件和动画
4.1 jq中的事件
(1)window.onload、$(documet).ready()的区别:
1.执行时机:window.onload需要整个页面加载完毕后才能运行脚本,而$(documet).ready()只需要dom树加载完毕便可以进行jq操作。
2.使用次数:window.onload只能使用一次,而$(documet).ready()可以使用多次且都可以得到执行。
(2)$(documet).ready() 三种简写方式:
Jquery ready 函数:
$(document).ready(function(){
alert('I am ready. keleyi.com');
}
);
简写为:
$(function(){
alert("I am ready. keleyi.com");
}
);
即
$(document).ready();
等同于
$();
(3)bind绑定事件:
- 可以发现,jq中的事件绑定类型比普通的javascript事件绑定类型少了"on"。
- 常使用简写方式
(4)合成事件
hover():模拟光标悬停事件。
mouseover与mouseenter
- 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。
- 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。
mouseout与mouseleave
- 不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。
- 只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。
toggle():模拟鼠标连续单击事件。
toggle() 方法切换元素的可见状态。
(5)事件冒泡
- 表单中event.preventDefault、冒泡事件中的event.stopPropagation(),都可以用return false替换以达到阻止事件冒泡效果。
(6)事件捕获:是与事件冒泡相反的过程,事件捕获是从最顶端往下开始触发。
特别的:
- 并非所有主流浏览器都支持事件捕获,并且这个缺陷无法通过javascript来修复。
- jq不支持事件捕获,如果需要,请直接使用原生javascript。
(7)事件对象的属性
- event.type
- event.preventDefault
- event.stopPropagation
- event.target
- event.pageX和event.pageY
- event.which
- event.metaKey
(8)移除事件
$().unbind();
(9)模拟操作
(10)其他用法
4.2 jq中的动画
(1)show()和hide()方法
- show()、hide()是jq中最基本的动画方法。
- 某元素调用该方法会使得该元的display样式改为"none"或者"block"。
- 值得注意的是:hide()会记住元素原先的display属性,当调用show()时,会根据hide()记住的属性值来显示元素。
- show()、hide()方法在不带任何参数的情况下,相当于css("display","none/block/inline")。
$("element").hide();
$("element").css("display","none");
//以上两种方法等效 - show()、hide()方法有一个参数代表动作的耗时:
$("element").show(1000);
$("element").hide(1000);
(2)fadeIn()、fadeOut()
- fadeOut():会在指定的时间内降低透明度,直到元素完全消失("display:none");,fadeIn()方法则相反。
- 即淡入淡出的效果
(3)slideUp()、slideDown()
- slideUp()、slideDown()只会改变元素的高度。
- 如果一个元素的display属性值为"none",当调用slideDown()时,这个元素将由上至下延伸显示,slideUp()则与之相反。
jQuery中的任何动画效果,都可以指定是种速度参数,即“slow”“normal”和“fast”(事件长度分别为0.6秒、0.4秒、0.2秒)。当使用速度关键字时要加引号,输入使用数字作为事件参数则无需引号。
$("element").show("slow");
$("element").show(10000);
(4)自定义动画方法animate()
由于上述三类动画方法无法满足各种各样的动画需求,于是有了animate()方法来自定义动画,其语法结构如下:
animate( params , speed , callback );
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
详情请访问:http://www.w3school.com.cn/jquery/jquery_animate.asp
(5)p131 动画方法概括
4.3 视频展示效果实例
2016年4月2日
第3章 jq中的dom操作
3.1分类
(1)dom core
(2)html-dom
(3)css-dom
3.2 jq dom具体操作
1."增删改查"api
待实例化:
(1)如果给一个元素添加多个class值,那么就相当于合并了它们的样式
(2)如果有不同的class设定了同一个属性,则后者覆盖前者。
2.p78 attr()和addClass()的区别:
本质:前者会覆盖class值;后者则是是add即添加。
3.设置和获取html、文本和值
(1)html()
(2)text()
(3)val()
4.demo——yahoo邮箱登录框的提示效果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<script type="text/javascript" src="框架/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
$(function() {
//对地址进行操作
$("#address").focus(function() {
var txt_value = $(this).val();
if(txt_value=="请输入邮箱地址");
$(this).val("");
});
$("#address").blur(function() {
var txt_value = $(this).val();
if(txt_value=="");
$(this).val("请输入邮箱地址");
}); //对密码框进行操作
$("#password").focus(function() {
var txt_value = $(this).val();
if(txt_value=="请输入邮箱密码");
$(this).val("");
});
$("#password").blur(function() {
var txt_value = $(this).val();
if(txt_value=="");
$(this).val("请输入邮箱密码");
});
});
</script>
</head>
<body>
<input type="text" id="address" value="请输入邮箱地址" />
<input type="text" id="password" value="请输入邮箱密码" />
<input type="button" value="登陆" />
</body>
</html>
3.3 网站的超链接和图片提示效果
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<script type="text/javascript" src="框架/jquery-1.3.1.js"></script>
<script type="text/javascript">
$(function() {
var x = 10;
var y = 20;
$("a.tooltip").mouseover(function(e) {
this.myTitle = this.title;
this.title = "";
var imgTitle = this.myTitle?"<br />"+this.myTitle:"";
var tooltip = "<div id='tooltip'><img src='"+ this.href +"' alt='产品预览图'/>"+imgTitle+"</div>"; //创建 div 元素
$("body").append(tooltip); //追加至文档
$("#tooltip")
.css({
"top":(e.pageY+y) + "px",
"left":(e.pageX+x) + "px"
}).show("fast");
}).mouseout(function() {
this.title = this.myTitle;
$("#tooltip").remove(); //从文档删除
}).mousemove(function(e) {
$("#tooltip")
.css({
"top":(e.pageY+y) + "px",
"left":(e.pageX+x) + "px"
});
});
})
</script>
<style type="text/css">
* {margin: 0;padding: 0;font-size: 18px;}
/* tooltip */
#tooltip{
position:absolute;
border:1px solid #ccc;
background:#333;
padding:2px;
display:none;
color:#fff;
}
body{
margin:0;
padding:40px;
background:#fff;
font:80% Arial, Helvetica, sans-serif;
color:#555;
line-height:180%;
}
img{border:none;}
ul,li{
margin:0;
padding:0;
}
li{
list-style:none;
float:left;
display:inline;
margin-right:10px;
border:1px solid #AAAAAA;
}
</style>
</head>
<body>
<ul>
<li><a href="images/apple_1_bigger.jpg" class="tooltip" title="苹果 iPod"><img src="data:images/apple_1.jpg" alt="苹果 iPd" /></a></li>
<li><a href="images/apple_2_bigger.jpg" class="tooltip" title="苹果 iPod nano"><img src="data:images/apple_2.jpg" alt="苹果 iPod nano"/></a></li>
<li><a href="images/apple_3_bigger.jpg" class="tooltip" title="苹果 iPhone"><img src="data:images/apple_3.jpg" alt="苹果 iPhone"/></a></li>
<li><a href="images/apple_4_bigger.jpg" class="tooltip" title="苹果 Mac"><img src="data:images/apple_4.jpg" alt="苹果 Mac"/></a></li>
</ul>
</body>
</html>
2016年4月1日
1.p51 如果你的项目较早的使用了jq代码或插件,若把jq升级到最新后,出错或者不能运行,那么很有可能是因为代码中使用了属性选择器的@符号而引起的。
2.p52 带空格与否的问题
var $t_a = $('.test :hidden');
以上代码是选取class为"test"的元素里面的隐藏元素
var $t_b = $('.test:hidden');
以上代码是选取隐藏的class为"test"的元素
3.$a.click(){return false}; //超链接不跳转(之前在《js dom编程艺术》一书中学到过,再次巩固)
4.其他选择器
jQuery的选择器插件扩展
(1)MoreSelectors for jQuery
(2)Basic XPath
其他使用css选择器的方法
(1)document.getElenmentsBySelector()
(2)cssQuery()
(3)querySelectorAll()
2016年3月31日
1.$=jQuery
2.p13 jq对象和dom对象的转换方法
3.p14 $()函数就是一个jquery对象的制造工厂
4.p27 $("#id")获取的永远是对象,所以不需要担心会出错,仅仅考虑length值,为1时,do something。
5.p50 一系列精准的选择器
6.p51 利用jq来改写前面的例子,然后进行列表效果实现,待练习
春上来 尺八 乐谱
6 .3 .2
<读书笔记>《锋利的jQuery》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- MySQL-第一篇认识MySQL
1.什么是mysql mysql是一种关系型数据库,是瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品. 2.mysql的安装 下载mysql-installer-community- ...
- Codeforces 1082G(最大权闭合子图)
题面 传送门 分析 没想到压轴题是道模板裸题 由于子图的权值=边权和-点权和 将边和点都看成新图中的点 S向原来的边i连边,权值为边权 点i向T连边,权值为点权 边i:(u,v,w)向u,v,连边,权 ...
- NGUI的滚动条的制作(scroll bar script)
一,我们添加一个sprite,添加一个box collider,然后添加一个scroll bar script,我们来看看scroll bar script的属性 看到background和forgr ...
- css标签学习-vertical-align标签
今天在学习查阅代码的时候,发现了一个不认识的CSS代码,于是进行学习. <html> <head> <style type="text/css"> ...
- 基于GPU的图像处理平台
基于GPU的图像处理平台 1. (309)英伟达推Jetson TX1 GPU模块力推人工智能 1.1 产品概述 Jetson TX1 GPU模块,主要针对近年来蓬勃发展的人工智能市场,包括无人机. ...
- XILINX FPGA 开发板 XC3S250E 核心板 学习板+12模块
北京太速科技有限公司为广大合作单位特设海外代购业务,主要包括各类板卡.相机.传感器.仪器仪表.专用芯片等.代购业务仅收取基本的手续费. 北京太速科技有限公司在线客服:QQ:448468544 淘宝网站 ...
- Tomcat-部署多个项目(不同端口)
20190713 整理 参考文档 https://blog.csdn.net/chenchunlin526/article/details/78799772 如何在Tomcat服务中,为不同端口部署 ...
- 简单说下cookie,LocalStorage与SessionStorage.md
最近在网上看到有人讨论这三个的一些概念与区别,发现自己也一直没有较好的总结,所以查阅了一些资料来阐述一下. 基本概念 cookie cookie英文意思是小甜饼,是原来的网景公司创造,目前是在客户端存 ...
- ResourceBundle读取配置文件
import java.util.ResourceBundle; /** * Created by win7 on 2017/5/20. */public class Test1 { public s ...
- 应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序
一开始是报缺少dll,随便在电脑里找个同名的dll放下面就报这个错误,网上查的都没有用.后来又找了一个dll,问题就解决了,所以是dll不对造成的.