学习JQ第一个demo:

制作一个轮播图,制作方法我前面写了一篇博客,传送门-->http://www.cnblogs.com/yewenxiang/p/6100206.html

需要的JQ知识点:

  • JQ选择器  JQ的选择器非常强大,基本上CSS里面的选择器,用JQ都能非常方便的去实现
  • JQ事件方法  .click()  .mouseover()  .mouseout()  .hover(function(){},function(){})
  • JQ css类  .css() .animate() .addClass() .removeClass() .eq()
  • JQ的链式操作
  • JQ遍历

然后需要点JS的基础知识,如变量 if语句 等,然后就可以去做一个简单的轮播图了。

第二个demo:

做一个小图变大图效果

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<script src="jq.js"></script>
<style>
.box img{
float: left;
width: 300px;
}
.bigImg{
position: absolute;
display: none;
}
</style>
<body>
<div class="box">
<img src="img/1.jpg" alt="">
<img src="img/2.jpg" alt="">
<img src="img/3.jpg" alt="">
<img src="img/4.jpg" alt="">
</div>
<img src="" alt="" class="bigImg">
<script>
$(".box img").mousemove(function(event){
var x = event.pageX + 15+"px";
var y = event.pageY + 15+"px";
console.log(x,y)
var add=$(this).attr("src");
$(".bigImg").attr("src",add).stop().fadeIn().css({"left":x,"top":y});
})
$(".box img").mouseout(function(){
$(".bigImg").stop().fadeOut();
})
</script>
</body>
</html>

这里面包含新的事件方法 event.pageX和event.pageY. 需要理解$(this)指的是当前点击的元素对象.上面代码中指的是当前点击的$(".box img")元素

  • x y为什么会加上15? 这个值可以随便定义,因为event.pageX和event.pageY 获取的是鼠标头顶部的位置,如果不加上一个值,后面的图片的左上角顶部就会位于鼠标顶部位置,向后拖动鼠标就会跑出$(".box img").mousemove() 事件,所以要加上一个值来使图片保持距离
  • 变量不能添加引号,加上引号就成了字符串
  • .stop()方法的理解,如果动画没有执行完毕,执行下个动画,则没执行完毕的动画效果立刻停止。

第三个demo:

添加删除操作

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<script src="jq.js"></script>
<body>
<input type="text">
<input type="button" value="添加">
<ul>
<li>第1个<button class="btn">删除</button></li>
<li>第2个<button class="btn">删除</button></li>
<li>第3个<button class="btn">删除</button></li>
</ul>
<script>
$("[type='button']").click(function(){
var val=$("[type='text']").val();
var content="<li>"+val+"<button class='btn'>删除</button>"+"</li>";
$("ul").append(content);
$(".btn").click(function(){
$(this).parent().remove();
})
})
$(".btn").click(function(){
$(this).parent().remove();
})
</script>
</body>
</html>

需要去学习-获取HTML元素.text() .html() .val()  添加元素.append() .prepend() .after() .before() 删除元素 .remove() .empty()。做完这个小demo后对这些属性有了较深的认识。

第四个demo:

滚动事件,点击中间按钮页面向下滑动一定距离,显示出回到顶部按钮,点击回到顶部的一个功能

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="jq.js"></script>
<style>
img{
width: 100%;
display: block;
}
body{
padding: 0;
margin: 0;
}
ul{
list-style: none;
position: fixed;
left: 0;
top: 50%;
transform: translate(0,-50%);
}
ul li{
width: 10px;
height: 10px;
border-radius: 50%;
background-color: white;
margin-top: 10px;
cursor: pointer;
}
.active{
background-color: red;
}
.top{
width: 25px;
height: 125px;
background-color: #008090;
position: fixed;
right: 40px;
bottom: 20px;
font-size: 24px;
color: white;
padding-left: 20px;
padding-right: 20px;
border-radius: 10px;
cursor: pointer;
display: none;
}
.top p{
margin: 0;
position: relative;
top: 50%;
transform: translate(0,-50%);
}
</style>
<script>
$(document).ready(function(){
$("ul li").click(function(){
var num=$(this).index();
var height = $("img").css("height");
var heightInt=parseInt(height);
var px=num*heightInt;
$("body").stop().animate({"scrollTop":px},200);
$(this).addClass("active").siblings().removeClass("active");
})
})
$(document).ready(function(){
$(".top").click(function(){
$("body").scrollTop(0);
})
})
var timer=null;
$(document).scroll(function(){
var px=$(document).scrollTop();
var height = $("img").css("height");
var heightInt=parseInt(height);
var index=px/heightInt;
var num=Math.round(index);
console.log(num);
if(px>400){
$(".top").css("display","block");
}else{
$(".top").css("display","none");
}
if(num==0||num==1||num==2||num==3||num==4){
if(timer){
clearTimeout(timer);
timer=null;
}
timer=setTimeout(function(){$("ul li").eq(num).addClass("active").siblings().removeClass("active");
},200)
}
})
</script>
</head>
<body>
<img src="img/1.jpg" alt="">
<img src="img/2.jpg" alt="">
<img src="img/3.jpg" alt="">
<img src="img/4.jpg" alt="">
<img src="img/5.jpg" alt="">
<ul>
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div class="top"><p>回到顶部</p></div>
</body>
</html>

需要知道几个事件scroll scrollTop(),注意这里的事件对象为document或者window,开始我写的body没有效果。

第五个demo

没有啥demo 哈哈就是学习了 JQuery隐藏显示 淡入淡出 滑动 动画 停止动画 把上面的方法自己随便练练

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<style>
.box{
width: 500px;
height: 500px;
background-color: #00635a;
}
</style>
<body>
<input type="button" id="hide" value="hide">
<input type="button" id="show" value="show">
<input type="button" id="toggle" value="toggle">
<input type="button" id="fadeIn" value="fadeIn">
<input type="button" id="fadeOut" value="fadeOut">
<input type="button" id="fadeToggle" value="fadeToggle">
<input type="button" id="fadeTo" value="fadeTo">
<input type="button" id="slideDown" value="slideDown">
<input type="button" id="slideUp" value="slideUp">
<input type="button" id="slideToggle" value="slideToggle">
<div class="box"></div>
<script>
$("#hide").click(function(){
$(".box").hide();
})
$("#show").click(function(){
$(".box").show();
})
$("#toggle").click(function(){
$(".box").toggle();
})
$("#fadeIn").click(function(){
$(".box").fadeIn();
})
$("#fadeOut").click(function(){
$(".box").fadeOut();
})
$("#fadeToggle").click(function(){
$(".box").fadeToggle();
})
$("#fadeTo").click(function(){
$(".box").fadeTo("slow",0.5);
})
$("#slideDown").click(function(){
$(".box").slideDown();
})
$("#slideUp").click(function(){
$(".box").slideUp();
})
$("#slideToggle").click(function(){
$(".box").slideToggle();
})
</script>
</body>
</html>

第六个demo

百叶窗效果

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<style>
.box{
margin: 0 auto;
position: relative;
width: 500px;
overflow: hidden;
height: 200px;
}
.box img{
position: absolute;
width: 300px;
}
.box img:nth-child(1){
left: 0;
}
.box img:nth-child(2){
left: 100px;
}
.box img:nth-child(3){
left: 200px;
}
.box img:nth-child(4){
left: 300px;
}
.box img:nth-child(5){
left: 400px;
}
</style>
<script src="jq.js"></script>
<body>
<div class="box">
<img src="img/1.jpg" alt="">
<img src="img/2.jpg" alt="">
<img src="img/3.jpg" alt="">
<img src="img/4.jpg" alt="">
<img src="img/5.jpg" alt="">
</div>
<script>
$(".box img").mouseover(function(){
var index=$(this).index();
var px=200/4;
for(var i=0;i<=4;i++){
if(i<=index){
$("img").eq(i).stop().animate({"left":px*i},500);
}else if(i>index){
$("img").eq(i).stop().animate({"left":px*(i-1)+300},500);
}
}
})
$(".box img").mouseout(function(){
for(var i=0;i<=4;i++){
$("img").eq(i).stop().animate({"left":100*i},500);
}
})
</script>
</body>
</html>

这个需要用到JS的for循环,可以先不用循环写出一张悬浮时的效果,会发现一个规律,这张图片之前的图片移动有一个规律,之后又是一个规律,这就可以用for循环来解决了

最后做了一个表单验证输入判断的demo

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="jq.js"></script>
<style>
input{
width: 150px;
height: 24px;
line-height: 24px;
margin-left: 20px;
}
.password2{
margin-top: 10px;
}
label{
display: inline-block;
width: 120px;
line-height: 24px;
text-align: right;
}
.erro{
background-color:#590b05;
color: #f66156;
width: 150px;
}
.true{
background-color:#2b3e14;
color: #9bcb64;
width: 100px;
}
.info{
display: inline-block;
height: 24px;
margin-left: 20px;
line-height: 24px;
border-radius: 5px;
text-align: center;
}
</style>
</head>
<body>
<label>密码:</label><input type="password" placeholder="请输入密码" class="password1"><br>
<label>再次输入密码:</label><input type="password" placeholder="请再次输入密码" class="password2"><span class="info"></span><br>
<script>
$(".password2").blur(function(){
var val1 = $(".password1").val();
var val2 = $(".password2").val();
if(val1==val2){
$(".info").text("输入正确").addClass("true").removeClass("erro");
}else{
$(".info").text("两次密码输入不同").addClass("erro").removeClass("true");
}
})
</script>
</body>
</html>

需要去知道焦点事件 .blur() ,获取Input输入的值做一个if判断。

通过这些个小的demo去学习JQ会发现学习的过程非常有趣,做出来一个demo都有种成就感,对这些demo中涉及的知识也加深了理解。上面的代码中用到的图片我是从慕课网上下载,自从用了这5张图片,腰不疼了,腿不酸了,写代码呗有劲。

附上下载地址:http://www.imooc.com/learn/18

右侧源码下载,img文件夹。

自学如何去学习jQuery的更多相关文章

  1. 学Java,是自学还是去培训班学习?

    现在正在读在校的最后一个学年,想毕业后从事编程,但是感觉自己技术太差,应该是培训呢?还是去找实习?亦或是有更好的途径? 对于 Android 目前的行业趋势,不知道自己该不该坚持?还是转其他行业? 已 ...

  2. 8个应该去逛逛JQuery的学习网站

    根据国外科技网站 W3Techs 一项调查了近100万个网站数据显示,jQuery是目前最流行的 JavaScript 库.对于初学者来说,有的时候很难找到一个好的学习jQuery的网站,所以本文收集 ...

  3. 零基础转行web前端,如何高效的去学习web前端

    web前端开发要学的知识内容涉及的会很宽泛,虽然说主要是HTML.CSS和JavaScript这些基础知识点,但学前端开发除了要学这些基础知识外,学员还要在这之上进行延伸和深入的去学,而且互联网时代不 ...

  4. 从零开始学习jQuery (五) 事件与事件对象

    本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...

  5. 从零开始学习jQuery (二) 万能的选择器

    本系列文章导航 从零开始学习jQuery (二) 万能的选择器 一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显 ...

  6. 学习jQuery之旅

    早就听说了Jquery的大名,一直没有细心的学习一下,通过阅读收集的一些资料,感觉Jquery真的很强大.决定开始自己的学习Jquery之旅.在这里不是为大家讲解Jquery(深知水平有限),只是将自 ...

  7. 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

    本系列文章导航 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 一.摘要 本篇文章讲解如何使用jQuery获取和操作元素的属性和CSS样式. 其中DOM属性和元素属性的区分值得 ...

  8. 从零开始学习jQuery (三) 管理jQuery包装集

    本系列文章导航 从零开始学习jQuery (三) 管理jQuery包装集 一.摘要 在使用jQuery选择器获取到jQuery包装集后, 我们需要对其进行操作. 本章首先讲解如何动态的创建元素, 接着 ...

  9. 【菜鸟学习jquery源码】数据缓存与data()

    前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...

随机推荐

  1. 使用Eclipse对FFmpeg进行调试

    在研究代码的过程中,调试运行是一种非常有效的方法.我们常用的Visual Studio建立的工程可以很方便地对程序进行调试运行.但是对于FFMpeg这样的工程,想要进行单步调试就没这么容易了.如果一定 ...

  2. Effective C++笔记——day01

    1.当我们看到赋值符号时,请小心,因为"="也可以用来调用copy构造函数 Widget w3 = w2; //调用copy构造函数,而不是copy赋值操作符 2.不明确的行为: ...

  3. this指针的调整

    我们先来看一段代码: #include <iostream> using namespace std; class A { public: int a; A( ) { printf(&qu ...

  4. cmd 查看本地端口被占用程序

    netstat -ano 列出当前活动的网络连接 参数:-a所有侦听端口  -n以数字格式显示地址和端口号 -o显示进程号 tasklist|find "8888" 找出占用888 ...

  5. 转载:canal数据库同步redis

    ref: http://blog.csdn.net/tb3039450/article/details/53928351

  6. java编写一个汽车类,有属性:品牌、型号、排量、速度,有方法:启动、加速、转弯、刹车、息火

    /* * 汽车实体类 * 类里面有属性和方法 */public class Car {    String  brand;   //汽车品牌    String modelNumber; //汽车型号 ...

  7. Nexus 安装 使用说明

    1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...

  8. 在Windows下远程连接CentOS6

    远程连接linux服务器的方式:以显示的类型来分类,可以分为字符界面和图形界面两种.字符界面软件有SecureCRT.PUTTY等:图形界面有Xmanager.Xdmcp和VNC软件等.

  9. centos 网卡聚合及Cisco交换机链路聚合

    一.配置环境 centos 系统.网卡1口和2口做链路聚合.    交换机网口 6口和7口. 二.服务器操作步骤 centos 6 1.创建一个channel bonding interface #v ...

  10. [udemy]WebDevelopment_HTML5

    Build Your First Website  装一个subline text HTML default rule tags with opening and closing <!DOCTY ...