标签 jquery 下的文章

第一步:首先引入jquery.min.js和jquery.qrcode.min.js

   <script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
   <script type="text/javascript" src="http://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>

第二步:确定输入内容

<input type="text" id="con"> <button id="btn">生成</button>

第三步:生成二维码
第一种方式:canvas方式:

  在需要显示的地方

<div id="code"></div>

  
  第二步:生成
  ```
    $("#btn").click(function () {
        $('#code').qrcode( $("#con").val());
    })
  ```

第二方式:table方式:

  生成:
  ```
       $("#btn").click(function () {
    $("#code").qrcode({
        render: "table", 
        width: 200, 
        height:200, 
        text: $("#con").val() 
    });
    $('#code').qrcode( );
})
```

注意:中文的话,必须先转换为utf-8编码

function toUtf8(str) {
       var out, i, len, c;
       out = "";
       len = str.length;
       for(i = 0; i < len; i++) {
           c = str.charCodeAt(i);
           if ((c >= 0x0001) && (c <= 0x007F)) {
               out += str.charAt(i);
           } else if (c > 0x07FF) {
               out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
               out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));
               out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
           } else {
               out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
               out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
           }
       }
       return out;
   }

示例代码:

 <!doctype html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport"
         content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <title>Document</title>
   <script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
   <script type="text/javascript" src="http://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>
</head>
<body>
<input type="text" id="con"> <button id="btn">生成</button>
<div id="code"></div>
</body>
</html>
<script>
   $("#btn").click(function () {
       $("#code").qrcode({
           render: "table",
           width: 200,
           height:200,
           text: toUtf8($("#con").val())
       });
       $('#code').qrcode( );
   })
   function toUtf8(str) {
       var out, i, len, c;
       out = "";
       len = str.length;
       for(i = 0; i < len; i++) {
           c = str.charCodeAt(i);
           if ((c >= 0x0001) && (c <= 0x007F)) {
               out += str.charAt(i);
           } else if (c > 0x07FF) {
               out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
               out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));
               out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
           } else {
               out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
               out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
           }
       }
       return out;
   }
</script>

$.ajax({}) 方法

参数很多,可以通过手册来使用,在这里简单写一个小案例,说一下比较常用的参数。

$.ajax({
        url:'01.php',//请求地址
        data:'name=fox&age=18',//发送的数据
        type:'GET',//请求的方式
        success:function (argument) {},// 请求成功执行的方法
        beforeSend:function (argument) {},// 在发送请求之前调用,可以做一些验证之类的处理
        error:function (argument) {console.log(argument);},//请求失败调用
    })

$.get()方法

参数列表

参数描述
url必需。规定将请求发送的哪个 URL。
data可选。规定连同请求发送到服务器的数据。
success(response,status,xhr)可选。规定当请求成功时运行的函数。额外的参数:response - 包含来自请求的结果数。status - 包含请求的状态。xhr - 包含 XMLHttpRequest 对象
dataType可选。规定预计的服务器响应的数据类型。默认地,jQuery 将智能判断。可能的类型:"xml"、"html"、"text"、"script"、"json"、"jsonp"。

注意:我们在向服务器提交数据时,如果使用的是Ajax需要手动将数据格式化name=fox&age=10类似这样的格式,JQuery已经帮助我封装好了一个格式化数据的方法$('form').serialize()

$.post()方法

参数列表:

参数描述
url必需。规定把请求发送到哪个 URL。
data可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR)可选。请求成功时执行的回调函数。
dataType可选。规定预计的服务器响应的数据类型。默认地,jQuery 将智能判断。可能的类型:"xml"、"html"、"text"、"script"、"json"、"jsonp"。

fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站。
主要功能有:

  • 支持鼠标滚动
  • 支持前进后退和键盘控制
  • 多个回调函数
  • 支持手机、平板触摸事件
  • 支持 CSS3 动画
  • 支持窗口缩放
  • 窗口缩放时自动调整
  • 可设置滚动宽度、背景颜色、滚动速度、循环选项、回调、文本对齐方式
    兼容性:兼容jQuery1.7以上。浏览器IE8以上
    使用方法:
    1.引入

    <link rel="stylesheet" href="css/jquery.fullPage.css">
    <script src="js/jquery.min.js"></script>
    
    <!-- jquery.easings.min.js 用于 easing 参数,也可以使用完整的 jQuery UI 代替,如果不需要设置 easing 参数,可去掉改文件 -->
    <script src="js/jquery.easings.min.js"></script>
    
    <!-- 如果 scrollOverflow 设置为 true,则需要引入 jquery.slimscroll.min.js,一般情况下不需要 -->
    <script src="js/jquery.slimscroll.min.js"></script>
    
    <script src="js/jquery.fullPage.js"></script>

    2.html

    <div id="dowebok">
      <div class="section">
          <h3>第一屏</h3>
      </div>
      <div class="section">
          <h3>第二屏</h3>
      </div>
      <div class="section">
          <h3>第三屏</h3>
      </div>
      <div class="section">
          <h3>第四屏</h3>
      </div>
    </div>

    每个 section 代表一屏,默认显示“第一屏”,如果要指定加载页面时显示的“屏幕”,可以在对应的 section 加上 class=”active”,如:

第三屏

同时,可以在 section 内加入 slide,如:

<div id="dowebok">
    <div class="section">第一屏</div>
    <div class="section">第二屏</div>
    <div class="section">
        <div class="slide">第三屏的第一屏</div>
        <div class="slide">第三屏的第二屏</div>
        <div class="slide">第三屏的第三屏</div>
        <div class="slide">第三屏的第四屏</div>
    </div>
    <div class="section">第四屏</div>
</div>

3.JavaScript

$(function(){
    $('#dowebok').fullpage();
});

方法

名称说明
moveSectionUp()向上滚动
moveSectionDown()向下滚动
moveTo(section, slide)滚动到
moveSlideRight()slide 向右滚动
moveSlideLeft()slide 向左滚动
setAutoScrolling()设置页面滚动方式,设置为 true 时自动滚动
setAllowScrolling()添加或删除鼠标滚轮/触控板控制
setKeyboardScrolling()添加或删除键盘方向键控制
setScrollingSpeed()定义以毫秒为单位的滚动速度

回调函数

名称说明
afterLoad滚动到某一屏后的回调函数,接收 anchorLink 和 index 两个参数,anchorLink 是锚链接的名称,index 是序号,从1开始计算
onLeave滚动前的回调函数,接收 index、nextIndex 和 direction 3个参数:index 是离开的“页面”的序号,从1开始计算;
nextIndex是滚动到的“页面”的序号,从1开始计算;
direction判断往上滚动还是往下滚动,值是 up 或 down。
afterRender页面结构生成后的回调函数,或者说页面初始化完成后的回调函数
afterSlideLoad滚动到某一水平滑块后的回调函数,与 afterLoad 类似,接收 anchorLink、index、slideIndex、direction 4个参数
onSlideLeave某一水平滑块滚动前的回调函数,与 onLeave 类似,接收 anchorLink、index、slideIndex、direction 4个参数

本文章来源于:dowebok

描述:
此处多库共存指的是:jQuery占用了$jQuery这两个变量。当在同一个页面中引用了jQuery这个js库,并且引用的其他库(或者其他版本的jQuery库)中也用到了$或者jQuery这两个变量,那么,要保证每个库都能正常使用,这时候就有了多库共存的问题。
解决方式:
作用:让jQuery释放对$的控制权,让其他库能够使用$符号,达到多库共存的目的。此后,只能使用jQuery来调用jQuery提供的方法
$.noConflict(); //true两个都交出来,返回值是新的调用方法。
$.noConflict();放弃$的使用权。
var MrLv = $.noConflict(true);放弃两个符号的使用权,同时定义一个新的使用权。

描述:该功能实现的事通过五角星的状态来展示等级。实心五角星表示等级。用户在没有点击五角星的时候,鼠标经过哪一个五角星,该五角星和之前的五角星变为实心的五角星,之后的五角星还是空心的五角星,鼠标离开之后,恢复为空心。当用户点击了某一五角星之后,该五角星和之前的五角星变为实心的五角星,之后的五角星还是空心的五角星,鼠标离开之后,点击的五角星及其之前的五角星变为实心的五角星。之后为空心五角星。jquery的版本是1.8.
示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>五角星等级</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .comment {
            font-size: 40px;
            color: #fff536;
        }

        .comment li {
            float: left;
            cursor: pointer;
        }

        ul {
            list-style: none;
        }
    </style>
    <script src="jquery.min.js"></script>
    <script>
        $(function () {
            var wjx_none = '☆';
            var wjx_sel = '★';

            //鼠标放上去当前的li和之前所有的li内容全部变为实心五角星,移开变为空心。
            $(".comment li").on("mouseenter",function () {
                $(this).text(wjx_sel).prevAll("li").text(wjx_sel).end().nextAll("li").text(wjx_none);
            });
            $(".comment li").on("mouseleave",function () {
                if($("li.current").length === 0){
                    $(".current").text(wjx_none);
                }else {
                    $("li.current").text(wjx_sel).prevAll("li").text(wjx_sel).end().nextAll("li").text(wjx_none);
                }
            });
            //鼠标点击那个li,当你前li和之前所有的li都变成实心五角星,其他变为空心。
            $(".comment li").on("click",function () {
                $(this).attr("class","current").siblings("li").removeAttr("class");
            })
        });
    </script>
</head>
<body>
    <ul class="comment">
        <li>☆</li>
        <li>☆</li>
        <li>☆</li>
        <li>☆</li>
        <li>☆</li>
    </ul>
</body>
</html>

链式编程

链式编程原理:return this;
通常情况下,只有设置操作才能把链式编程延续下去。因为获取操作的时候,会返回获取到的相应的值,无法返回 this。
end(); // 结束当前链最近的一次过滤操作,并且返回匹配元素之前的状态。

隐式迭代

隐式迭代的意思是:在方法的内部会为匹配到的所有元素进行循环遍历,执行相应的方法;而不用我们再进行循环,简化我们的操作,方便我们调用。
如果获取的是多元素的值,大部分情况下返回的是第一个元素的值。

each方法

大部分情况下是不需要使用each方法的,因为jQuery的隐式迭代特性。
如果要对每个元素做不同的处理,这时候就用到了each方法

作用:遍历jQuery对象集合,为每个匹配的元素执行一个函数
参数一:表示当前元素在所有匹配元素中的索引号
参数二:表示当前元素(DOM对象)
$(selector).each(function(index,element){});
Element是一个 js对象,需要转换成jquery对象

描述:通过判断按的键盘上的那个按键,来控制颜色,并且把按键的编码显示出来。如果没有则提示没有。jQuery的版本是1.8.
示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>按键变色</title>
    <style>
        .wrap {
            width: 400px;
            height: 400px;
            margin: 100px auto 0;
        }

        .wrap h1 {
            text-align: center;
        }

        .wrap div {
            width: 400px;
            height: 300px;
            background: pink;
            font-size: 30px;
            text-align: center;
            line-height: 300px;
        }
    </style>
    <script src="jquery.min.js"></script>
    <script>
        $(function () {
            var div = $("#bgChange");
            var span = $("#keyCodeSpan");

            $(document).keyup(function (e) {
                setColor(e.keyCode);
            });
            //接受按键并调用颜色和数值的函数
            function setColor(e) {
                switch (e) {
                    case 80:
                        setEle("pink", e);
                        break;
                    case 66:
                        setEle("blue", e);
                        break;
                    case 79:
                        setEle("orange", e);
                        break;
                    case 82:
                        setEle("red", e);
                        break;
                    case 89:
                        setEle("yellow", e);
                        break;
                    default :
                        alert("系统没有设置该颜色!");
                }
                //颜色和数值的函数
                function setEle(a, b) {
                    div.css("background-color", a);
                    span.text(b);
                }
            }
        });


    </script>
</head>
<body>
    <div class="wrap">
        <h1>按键改变颜色</h1>
        <div id="bgChange">
            keyCode为:
            <span id="keyCodeSpan">80</span>
        </div>
    </div>
</body>
</html>

描述:当页面拥有多个表单输入框的时候,点击回车自动切换到一行,并且下一行已经存在的文字处于选中状态。当鼠标经过某一行的时候,该行的文字处于选的状态。所使用的jquery的版本是1.8.
示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>回车换行</title>
    <script src="jquery.min.js"></script>
    <script>
        $(function () {
            //点击回车之后,自动切换到下一行
            $("input").on("keyup",function (event) {
                if(event.keyCode === 13){
                    $(this).next().next().focus();
                }
            });
            //鼠标经过某一行的时候,该行所有的文字全部被选中
            $("input").on("mouseenter",function () {
                $(this).select();
            });
        })
    </script>
</head>
<body>
    <input type="text" value="小宁博客"/><br>
    <input type="text" value="小宁博客"/><br>
    <input type="text" value="小宁博客"/><br>
    <input type="text" value="小宁博客"/><br>
    <input type="text" value="小宁博客"/><br>
    <input type="text" value="小宁博客"/><br>
    <input type="text" value="小宁博客"/><br>
</body>
</html>

jQuery的事件机制,指的是:jQuery对JavaScript操作DOM事件的封装,包括了:事件绑定、事件解绑、事件触发。

事件绑定

  • 简单事件绑定
    click(handler) 单击事件;
    blur(handler) 失去焦点事件;
    mouseenter(handler) 鼠标进入事件;
    mouseleave(handler) 鼠标离开事件;
    dbclick(handler) 双击事件;
    change(handler) 改变事件,如:文本框值改变,下来列表值改变等;
    focus(handler) 获得焦点事件;
    keydown(handler) 键盘按下事件;
    ......
  • bind方式(1.7版本以后的jQuery版本被on取代)
    作用:给匹配到的元素直接绑定事件。
    第一个参数:事件类型
    第二个参数:事件处理程序

    $("p").bind("click mouseenter", function(e){
      //事件响应方法
    });

    优缺点:

    • 可以同时绑定多个事件,比如:bind(“mouseenter mouseleave”, function(){})
    • 缺点:要绑定事件的元素必须存在文档中。
  • delegate方式(特点:性能高,支持动态创建的元素)
    作用:给匹配到的元素绑定事件,对支持动态创建的元素有效
    第一个参数:selector,要绑定事件的元素
    第二个参数:事件类型
    第三个参数:事件处理函数

    $(".parentBox").delegate("p", "click", function(){
      //为 .parentBox下面的所有的p标签绑定事件
    });

    优势:减少事件绑定次数提高效率,支持动态创建出来的元素绑定事件

  • on方式(最现代的方式,兼容zepto(移动端类似jQuery的一个库))
    jQuery1.7版本后,jQuery用on统一了所有的事件处理的方法
    作用:给匹配的元素绑定事件,包括了上面所有绑定事件方式的优点
    语法:
    第一个参数:events,绑定事件的名称可以是由空格分隔的多个事件(标准事件或者自定义事件)
    第二个参数:selector, 执行事件的后代元素
    第三个参数:data,传递给处理函数的数据,事件触发的时候通过event.data来使用
    第四个参数:handler,事件处理函数
    $(selector).on(events[,selector][,data],handler);
    表示给$(selector)绑定事件,当必须是它的内部元素span才能执行这个事件
    $(selector).on( "click",“span”, function() {});

    • 绑定多个事件

    表示给$(selector)匹配的元素绑定单击和鼠标进入事件
    $(selector).on(“click mouseenter”, function(){});

事件解绑

  • unbind() 方式
    作用:解绑 bind方式绑定的事件
    $(selector).unbind(); //解绑所有的事件
    $(selector).unbind(“click”); //解绑指定的事件
  • undelegate() 方式
    作用:解绑delegate方式绑定的事件
    $( selector ).undelegate(); //解绑所有的delegate事件
    $( selector).undelegate( “click” ); //解绑所有的click事件
  • off解绑on方式绑定的事件
    $(selector).off();// 解绑匹配元素的所有事件;
    $(selector).off("click");// 解绑匹配元素的所有click事件;
    $(selector).off( "click", "**" ); // 解绑所有代理的click事件,元素本身的事件不会被解绑。

事件触发

  • 简单事件触发
    $(selector).click(); //触发 click事件
  • trigger方法触发事件,触发浏览器行为
    $(selector).trigger(“click”);
  • triggerHandler触发 事件响应方法,不触发浏览器行为
    比如:文本框获得焦点的默认行为 $(selector).triggerHandler(“focus”);

jQuery事件对象介绍

  • event.data传递给事件处理程序的额外数据
  • event.currentTarget等同于this,当前DOM对象
  • event.pageX鼠标相对于文档左部边缘的位置
  • event.target 触发事件源,不一定===this
  • event.stopPropagation()阻止事件冒泡
  • event.preventDefault()阻止默认行为
  • event.type 事件类型:click,dbclick…
  • event.which 鼠标的按键类型:左1 中2 右3
  • event.keyCode 键盘按键代码

高度和宽度

  • 高度操作height() :
    作用:设置或获取匹配元素的高度值

    • 带参数表示设置高度$(selector).height(200);
    • 不带参数获取高度$(selector).height();
  • 宽度操作width() :
    作用:设置或获取匹配元素的宽度值

    • 带参数表示设置宽度
    • 不带参数获取宽度

注意:

  • 获取到的值仅仅是盒子和高度或宽度,和内外边距边框无关。
  • css()获取高度(或宽度width)和height获取高度(或宽度width)的区别:

    • css()获取高度(或宽度width)的返回值是number类型,没有单位。
    • height获取高度(或宽度width)的返回值是string类型,有单位。

    坐标值的操作

  • offset()
    作用:获取或设置元素相对于文档的位置

    • 无参数表示获取,返回值为:{left:num, top:num},值是相对于document的位置$(selector).offset();
    • 有参数表示设置,参数推荐使用数值类型$(selector).offset({left:100, top: 150});

      注意:距离页面最顶端或者最左侧的距离和有没有定位没有关系。设置offset后,如果元素没有定位(默认值:static),则被修改为relative。

  • position()
    作用:获取相对于其最近的具有定位的父元素的位置。距离父系盒子中带有定位的盒子的距离(获取的就是定位值,和margin/padding无关)

    • 获取,返回值为对象:{left:num, top:num}。$(selector).position();

    注意:只能获取,不能设置。

  • scrollTop()
    作用:获取或者设置元素垂直方向滚动的位置

    • 无参数表示获取偏移
    • 有参数表示设置偏移,参数为数值类型

    案例:$(selector).scrollTop(100);

  • scrollLeft()
    作用:获取或者设置元素水平方向滚动的位置
    案例:$(selector).scrollLeft(100);
    描述:

    • 垂直滚动条位置 是可滚动区域 在 可视区域上方的 被隐藏区域的高度。
    • 如果滚动条在最上方没有滚动 或者 当前元素没有出现滚动条,那么这个距离为0