主要内容:jQuery进阶、CSS伪类和伪元素、jQuery插件

tab菜单样式

checkbox全选、反选

位置:scrollTop和offset

事件:两种绑定事件的方式和委托delegate

ajax:普通和跨域(江西卫视的例子)

还是那个网址:http://www.php100.com/manual/jquery/

CSS伪类和伪元素

hover用于鼠标移动到元素上面时,改变元素的样式,比写JS实现方便。

.clearfix:after {
    content: ".";
    visibility: hidden;
    display: block;
    height:;
    clear: both;
}

写到common.css文件中,在布局的时候用到float是,可以很方便的引用到需要clear:both的地方。

tab菜单样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>tab exercise</title>
    <style>
        .content {
            margin: 0 auto;
            padding: 0;
        }
        .tab-tittle {
            background-color: #999999;
            border: none;
            line-height: 35px;
        }
        /*利用伪元素实现clear:both*/
        .tab-tittle:after {
            content: ".";
            visibility: hidden;
            height: 0;
            display: block;
            clear: both;
        }
        .tab-info {
            border: none;
        }
        .hide {
            display: none;
        }
        .current {
            background-color: #FFFFFF;
            border-top: 2px solid red;
        }
        li {
            display: inline;
            list-style: none;
            margin: 0;
            padding: 0 10px;
            cursor: pointer;
            float: left;
        }
    </style>
</head>
<body>
    <div class="content">
        <div class="tab-tittle">
            <ul>
                <li class="current" pointTo="info1" onclick="GoTab(this);">菜单一</li>
                <li pointTo="info2" onclick="GoTab(this);">菜单二</li>
                <li pointTo="info3" onclick="GoTab(this);">菜单三</li>
            </ul>
        </div>
        <div class="tab-info">
            <div id="info1">内容一</div>
            <div id="info2" class="hide">内容二</div>
            <div id="info3" class="hide">内容三</div>
        </div>
    </div>

    <script src="../jquery-2.2.3.js"></script>
    <script>
        function GoTab(ths) {
            $(ths).addClass("current").siblings().removeClass("current");
            var tmp = "#" + $(ths).attr("pointTo");
            $(tmp).removeClass("hide").siblings().addClass("hide");
        }
    </script>
</body>
</html>

tab菜单样式

checkbox全选、反选

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Check Box Exercise</title>
</head>
<body>
    <div>
        <button value="全选" onclick="CheckAll();">全选</button>
        <button value="取消" onclick="ClearAll();">取消</button>
        <button value="取消" onclick="ReverseAll();">反选</button>
    </div>
    <div>
        <table border="1">
            <tr>
                <td><input type="checkbox" /></td>
                <td>123</td>
                <td>456</td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td>123</td>
                <td>456</td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td>123</td>
                <td>456</td>
            </tr>
            <tr>
                <td><input type="checkbox" /></td>
                <td>123</td>
                <td>456</td>
            </tr>
        </table>
    </div>
    <script src="../jquery-2.2.3.js"></script>
    <script>
        function CheckAll() {
            $("table :checkbox").prop("checked", true);
        }
        function ClearAll() {
            $("table :checkbox").prop("checked", false);
        }
        function ReverseAll() {
            var checkboxArray = $("table :checkbox");
//            for (var i= 0;i<checkboxArray.length;i++) {
//                console.log(checkboxArray[i]);
//            }
//            console.log("===============================");
//            for ( i in checkboxArray) {
//                console.log(checkboxArray[i]);
//            }
            // 反选的两种方法
            // 方法一
            $.each (checkboxArray, function(i, item) {
                console.log(item);
                var isChecked = $(item).prop("checked");
                if (isChecked) {
                    $(item).prop("checked", false);
                } else {
                    $(item).prop("checked", true);
                }
            });
            // 方法二
//            $("table :checkbox").each(function() {
//                var isChecked = $(this).prop("checked");
//                if (isChecked) {
//                    $(this).prop("checked", false);
//                } else {
//                    $(this).prop("checked", true);
//                }
//            })
        }
    </script>
</body>
</html>

checkbox

位置:scrollTop和offset

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>scrollTop</title>
    <style>
        .go-top {
            position: fixed;
            right: 5px;
            bottom: 5px;
            width: 70px;
            height: 20px;
            background-color: #8AC007;
        }
        a {
            cursor: pointer;
            text-decoration: none;
        }
        .hide {
            display: none;
        }
    </style>
</head>
<body>
    <div style="background-color: red; height: 300px; overflow: scroll">
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <p>111</p>
        <div style="right: 10px; bottom: 10px">
            <a onclick="GoTop();">内部返回顶部</a>
        </div>
    </div>
    <div style="background-color: #999999">
        <div style="height: 2000px"></div>
        <div class="go-top hide">
            <a onclick="GoTop();">返回顶部</a>
        </div>
    </div>
    <script src="../jquery-2.2.3.js"></script>
    <script>
        function GoTop() {
            $(window).scrollTop(0);
        }
        window.onscroll = function() {
            if ($(window).scrollTop() > 100) {
                $(".go-top").removeClass("hide");
            } else {
                $(".go-top").addClass("hide");
            }
        }
    </script>
</body>
</html>

scrollTop

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>

        body{
            margin: 0px;
        }
        img {
            border: 0;
        }
        ul{
            padding: 0;
            margin: 0;
            list-style: none;
        }
        .clearfix:after {
            content: ".";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }

        .wrap{
            width: 980px;
            margin: 0 auto;
        }

        .pg-header{
            background-color: #303a40;
            -webkit-box-shadow: 0 2px 5px rgba(0,0,0,.2);
            -moz-box-shadow: 0 2px 5px rgba(0,0,0,.2);
            box-shadow: 0 2px 5px rgba(0,0,0,.2);
        }
        .pg-header .logo{
            float: left;
            padding:5px 10px 5px 0px;
        }
        .pg-header .logo img{
            vertical-align: middle;
            width: 110px;
            height: 40px;

        }
        .pg-header .nav{
            line-height: 50px;
        }
        .pg-header .nav ul li{
            float: left;
        }
        .pg-header .nav ul li a{
            display: block;
            color: #ccc;
            padding: 0 20px;
            text-decoration: none;
            font-size: 14px;
        }
        .pg-header .nav ul li a:hover{
            color: #fff;
            background-color: #425a66;
        }
        .pg-body{

        }
        .pg-body .catalog{
            position: absolute;
            top:60px;
            width: 200px;
            background-color: #fafafa;
            bottom: 0px;
        }
        .pg-body .catalog.fixed{
            position: fixed;
            top:10px;
        }

        .pg-body .catalog .catalog-item.active{
            color: #fff;
            background-color: #425a66;
        }

        .pg-body .content{
            position: absolute;
            top:60px;
            width: 700px;
            margin-left: 210px;
            background-color: #fafafa;
            overflow: auto;
        }
        .pg-body .content .section{
            height: 500px;
        }
    </style>
</head>
<body>

    <div class="pg-header">
        <div class="wrap clearfix">
            <div class="logo">
                <a href="#">
                    <img src="http://core.pc.lietou-static.com/revs/images/common/logo_7012c4a4.pn">
                </a>
            </div>
            <div class="nav">
                <ul>
                    <li>
                        <a  href="#">首页</a>
                    </li>
                    <li>
                        <a  href="#">功能一</a>
                    </li>
                    <li>
                        <a  href="#">功能二</a>
                    </li>
                </ul>
            </div>

        </div>
    </div>
    <div class="pg-body">
        <div class="wrap">
            <div class="catalog">
                <div class="catalog-item" auto-to="function1"><a>第1章</a></div>
                <div class="catalog-item" auto-to="function2"><a>第2章</a></div>
                <div class="catalog-item" auto-to="function3"><a>第3章</a></div>
            </div>
            <div class="content">

                <div menu="function1" class="section">
                    <h1>第一章</h1>
                </div>
                <div menu="function2" class="section">
                    <h1>第二章</h1>
                </div>
                <div menu="function3" class="section">
                    <h1>第三章</h1>
                </div>
            </div>
        </div>
    </div>
    <script src="../jquery-2.2.3.js"></script>
    <script>
        window.onscroll = function() {
            var scrollHeight = $(window).scrollTop();
            console.log("滚动高度:");
            console.log(scrollHeight);
            if (scrollHeight > 50) {
                $(".catalog").addClass("fixed");
            } else {
                $(".catalog").removeClass("fixed");
            }
            $(".content").children().each(function() {
                // 当前元素的对视图的相对高度
                var currentOffset = $(this).offset();
                var currentOffsetTop = currentOffset.top;
                console.log("当前元素的对视图的相对高度:");
                console.log(currentOffsetTop);
                var totalHeight = currentOffsetTop + $(this).height();
                if (currentOffsetTop < scrollHeight && totalHeight > scrollHeight) {
                    // 滑轮滚动的高度+window的高度 = 文档的高度
                    if ($(window).scrollTop() + $(window).height() == $(document).height()) {
                        $(".catalog").children(":last").css("fontSize", "48px").siblings().css("fontSize", "12px");
                    } else {
                        var catalogTag = $(this).attr("menu");
                        var tagat = "div[auto-to='"+catalogTag+"']";
                        $(".catalog").children(tagat).css("fontSize", "48px").siblings().css("fontSize", "12px");
                        return;
                    }

                }
            })
        }
    </script>
</body>
</html>

offset

事件:两种绑定事件的方式和委托delegate

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>event exercise</title>
</head>
<body>
    <div>
        <input type="button" value="增加" />
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
        </ul>
    </div>
    <script src="../jquery-2.2.3.js"></script>
    <script>
        $(function() {
           $("input").click(function() {
               $("ul").append("<li>8</li>");
           })
        });
//        $(document).ready(function() {
//            $("li").css("cursor", "pointer");
//            $("li").click(function() {
//                console.log($(this).text());
//                alert($(this).text())
//            })
//        });
//        $(function() {
//           $("li").bind("click", function(){
//               alert($(this).text());
//           })
//        });
        $(function() {
           $("ul").delegate("li", "click", function() {
               alert($(this).text());
           })
        });
    </script>
</body>
</html>

委托

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>move exercise</title>
</head>
<body>
    <div style="border: 1px solid #ddd;width: 600px;position: absolute;">
        <div id="title" style="background-color: black;height: 40px;color: white;">
            标题
        </div>
        <div style="height: 300px;">
            内容
        </div>
    </div>
    <script src="../jquery-2.2.3.js"></script>
    <script>
        $(function() {
            $("#title").mouseover(function() {
                $(this).css("cursor", "move");
            }).mousedown(function(e) {
                var _event = e || window.event;
                var old_x = _event.clientX;
                var old_y = _event.clientY;
                var parent_old_x = $(this).parent().offset().left;
                var parent_old_y = $(this).parent().offset().top;
                // 绑定鼠标拖动的事件
                $(this).bind("mousemove", function(e) {
                    var _new_event = e || window.event;
                    var new_x = _new_event.clientX;
                    var new_y = _new_event.clientY;
                    var x = new_x - old_x;
                    var y = new_y - old_y;
                    var parent_new_x = parent_old_x + x;
                    var parent_new_y = parent_old_y + y;
                    $(this).parent().css("left", parent_new_x+"px");
                    $(this).parent().css("top", parent_new_y+"px");
                })
            }).mouseup(function() {
                $(this).unbind("mousemove");
            });
        });
    </script>
</body>
</html>

拖动窗口

ajax:普通和跨域(江西卫视的例子)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AJAX 跨域</title>
</head>
<body>
    <div>
        <input type="button" value="获取节目" onclick="GetInfo();"/>
    </div>
    <div id="container">

    </div>

    <script src="../jquery-2.2.3.js"></script>
    <script>
        function GetInfo() {
            $.ajax({
                url: "http://www.jxntv.cn/data/jmd-jxtv2.html",
                data: {},
                type: "GET",
                dataType: "jsonp",
                jsonpCallback: "list",
                success: function(arg) {
                    console.log(arg);
                    var jsonpArray = arg.data;
                    $.each(jsonpArray, function(k, v) {
                        var week = v.week;
                        var temp = "<h1>" + week + "</h1>";
                        $("#container").append(temp);
                        var infoArray = v.list;
                        $.each(infoArray, function(kk, vv) {
                            var infoLink = vv.link;
                            var infoName = vv.name;
                            var temp_2 = "<a href='" + infoLink+"'>" + infoName + "</a><br/>";
                            $("#container").append(temp_2);
                        })
                    })
                },
                error: function(arg) {
                    // 请求错误之后,自动执行的函数
                }
            })
        }
    </script>
</body>
</html>

跨域(jsonp)

jQuery插件

1、验证

a. 获取内容,正则表达式
b. return false

--> parsleyjs
http://parsleyjs.org/
--> jQuery Validate
http://jqueryvalidation.org/

# 不建议,直接使用 # 自己写, ==> 实现自己的定制化,以后自己写项目都可以用

2、UI

--> bxslider

http://bxslider.com/

--> Font Awesome
http://fontawesome.io/
a、图片,自己找图片,挖洞
b、现成的图标
css
使用样式
--以前版本
css
图片库
使用样式
-- 现在
css
字体文件
使用样式
c、css
字体文件
样式
=====> 大图片

--> Bootstrap
http://www.bootcss.com/

--> jQuery EasyUI
http://www.jeasyui.com/download/index.php

--> jQuery UI
http://jqueryui.com/

Python之路Day14的更多相关文章

  1. Python之路,Day14 - It's time for Django

    Python之路,Day14 - It's time for Django   本节内容 Django流程介绍 Django url Django view Django models Django ...

  2. 初学python之路-day14

    一.带参装饰器 # 通常,装饰器为被装饰的函数添加新功能,需要外界的参数 # -- outer参数固定一个,就是func # -- inner参数固定同被装饰的函数,也不能添加新参数 # -- 可以借 ...

  3. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  4. Python之路

    Python学习之路 第一天   Python之路,Day1 - Python基础1介绍.基本语法.流程控制              第一天作业第二天   Python之路,Day2 - Pytho ...

  5. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  6. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

  7. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

  8. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  9. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

随机推荐

  1. HDU 3374 String Problem (KMP+最小最大表示)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=3374 [题目大意] 给出一个字符串,求出最小和最大表示是从哪一位开始的,并且输出数量. [题解] ...

  2. python import 自己的包

    在写python时,有时候写的一个python文件可能需要被其他python文件所用,那么可以用导入包 import 的 方式: 1.自己写的包放到哪里? >>> import sy ...

  3. 字符串的MD5的32位加密和16位加密

    import java.security.MessageDigest; import java.util.Locale; public class MD5Util { public static St ...

  4. C++ Primer 学习笔记_88_用于大型程序的工具 --异常处理[续1]

    用于大型程序的工具 --异常处理[续1] 四.又一次抛出 有可能单个catch不能全然处理一个异常.在进行了一些校正行动之后,catch可能确定该异常必须由函数调用链中更上层的函数来处理,catch能 ...

  5. ADO.NET详解----核心对象的使用

    一.Connection对象 指定某个具体数据源以及提供登陆方式及用户名与密码. Connection对象的主要成员: 1.ConnectionString属性:连接字符串,指定要操作的数据库以及登录 ...

  6. centos7 环境搭建

    centos7 环境搭建    CentOS-7-x86_64-DVD-1511.iso    vmware121. 安装    使用iso安装系统:2. 修改yum源到光盘        先把光盘C ...

  7. Java虚拟机体系结构

    转自:http://www.cnblogs.com/java-my-life/archive/2012/08/01/2615221.html JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的 ...

  8. dubbo架构演变之路

    背景 (#) 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...

  9. 设置windows密码只存在NTLM-Hash下

    修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 下添加名为"NoLMHash"的DWORD值,并设置为1 ...

  10. cocos2dx 随机函数

    cocos2dx 随机数  2.2.3版本 1.初始化时设定随机数种子,只需一次. time_t now = time(NULL); srand((unsigned int)now); 2.需要的时候 ...