二十四、python学习之前端(六):JQuery进阶

版权声明:浅弋、璃鱼的原创 https://blog.csdn.net/qq_35709559/article/details/82909970

一、jquery特殊效果:

1.特殊动画:

1.1 特殊动画函数:

a.无参直接隐藏/显示/切换,带参变成动画

函数 功能
hide() 隐藏元素
show() 显示元素
toggle() 切换元素的可见状态;

代码实例:

<script>
   $(function() {
        $("button").click(function() {
            // 1.show()/hide()/toggle(): 
            // 显示隐藏,无参数时,默认显现; 参数为毫秒值,是显示/隐藏的速度
            $("div").show(400); 
            $("div").hide(400);
            $("div").toggle(400);
        })
    })
</script>

b. 滑入滑出:无参使用默认值(默认400ms)

函数 功能
slideDown() 向下展开
slideUp() 向上卷起
slideToggle() 依次展开或卷起某个元素

代码实例:

<script>
    $(function() {
        $("button").click(function() {
            // 2.slideDown()/slideUp()/slideToggle(): 滑入滑出(卷帘门)
            $("div").slideDown(800,function() {	// 匿名函数
                    alter("下拉动作...")
                });
            $("div").slideUp();	// 使用默认值, 400ms
            $("div").slideToggle(600);
        })
    })
</script>

c. 淡入淡出:

函数 功能
fadeIn() 淡出
fadeOut()) 淡出
fadeToggle() 切换淡入淡出
fadeTo(时间, 透明度(0-1) ) 淡入淡出,固定半透明度

代码实例:

<script>
    $(function() {
        $("button").click(function() {
            // 3.fadeIn()/fadeOut()/fadeToggle()/fadeTo() : 淡入淡出
            $("div").fadeIn();  // 淡入
            $("div").fadeOut(2000); // 淡出
            $("div").fadeToggle(function() {
                alert("淡入淡出切换...")
            }) // 淡入/淡出

            // 半透明程度: 必须传递时间
            $("div").fadeTo(600, 0.4)   // 参数一:时间毫秒值; 参数二: 最终的透明度(0~1)

        }) 
    })
</script>

二、链式调用:

1.什么是链式调用:

jquery对象的方法会在执行完后返回这个jquery对象,所有jquery对象的方法可以连起来写.

2. 案例:层级菜单:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>05_案例三_层级菜单</title>
    <style type="text/css">
		body{
			font-family:'Microsoft Yahei';
		}
		body,ul{
			margin:0px;
			padding:0px;
		}
		ul{
		list-style:none;
		}
		.menu{
			width:200px;
			margin:20px auto 0;
		}
	.menu .level1,.menu li ul a{
			display:block;
			width:200px;
			height:30px;
			line-height:30px;
			text-decoration:none;
			background-color:#3366cc;
			color:#fff;
			font-size:16px;
			text-indent:10px;			
		}
		.menu .level1{
			border-bottom:1px solid #afc6f6;
		}
		.menu li ul a{
			font-size:14px;
			text-indent:20px;
			background-color:#7aa1ef;					
		}
		.menu li ul li{
			border-bottom:1px solid #afc6f6;
		}
		.menu li ul{
			display:none;
		}
		.menu li ul.current{
			display:block;
		}
		.menu ul a:hover{
			background-color:#f6b544;
		}
    </style>
    <script src="js/jquery-1.11.1.js"></script>
    <script>
        $(function() {
            $(".menu a").click(function() {
                $(this).next().slideDown();
                $(this).parent("li").siblings().children("ul").slideUp();
            })
        })
   
    </script>
</head>
<body>
    <ul class="menu">
        <li>
            <a href="#" class="level1">手机</a>
            <ul class="current">
                <li><a href="#">iPhone X 256G</a></li>
                <li><a href="#">红米4A 全网通</a></li>
                <li><a href="#">HUAWEI Mate10</a></li>
                <li><a href="#">vivo X20A 4GB</a></li>
            </ul>
        </li>
        <li>
            <a href="#" class="level1">笔记本</a>
            <ul>
                <li><a href="#">MacBook Pro</a></li>
                <li><a href="#">ThinkPad</a></li>
                <li><a href="#">外星人(Alienware)</a></li>
                <li><a href="#">惠普(HP)薄锐ENVY</a></li>
            </ul>
        </li>
        <li>
            <a href="#" class="level1">电视</a>
            <ul>
                <li><a href="#">海信(hisense)</a></li>
                <li><a href="#">长虹(CHANGHONG)</a></li>
                <li><a href="#">TCL彩电L65E5800A</a></li>				
            </ul>
        </li>
        <li>
            <a href="#" class="level1">鞋子</a>
            <ul>
                <li><a href="#">新百伦</a></li>
                <li><a href="#">adidas</a></li>
                <li><a href="#">特步</a></li>
                <li><a href="#">安踏</a></li>
            </ul>
        </li>
        <li>
            <a href="#" class="level1">玩具</a>
            <ul>
                <li><a href="#">乐高</a></li>
                <li><a href="#">费雪</a></li>
                <li><a href="#">铭塔</a></li>
                <li><a href="#">贝恩斯</a></li>
            </ul>
        </li>
        
    </ul>
</body>
</html>

三、jquery属性操作:

属性操作:普通属性; 特殊属性

1. 普通属性: id/title/src/href/name/…

1.1 操作普通属性:arrt()

var idVal = $("input").attr("id");

1.2 操作表单属性:prop

var valSelect = $("option").prop("selected")    // 获取选中状态

 $("option").prop("selected", false);   //设置未被选中

  $("option").prop("selected", true);   //设置选中

1.3 总结:

  • 普通属性用attr(), 表单属性用prop();
  • attr获取不到返回undefined;

2. 特殊属性:

js中的特殊属性:

InnerHTML/className/style/value...
innerHTML --> html()
className --> addClass()/removeClass()/toggleClass()
style --> css()
value --> val()

3. 案例:聊天窗口

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>案例_模拟聊天窗口</title>
    <link rel="stylesheet" href="css/chat.css">
    <script src="js/jquery-1.11.1.js"></script>
    <script>
        $(function() {
            // 需求:点击下边的按钮,根据select和input拼接成一个div,当如words里边
            $(".talk_sub").click(function() {
                // 验证输入框不为空
                if($("#talkwords").val() == ""){
                    alert("内容不能为空...")
                    return;
                }
                if($("#who").val() == "0"){
                    var str = '<div class="atalk"><span>A说:'+ $("#talkwords").val() +'</span></div>'
                }else {
                    var str = '<div class="btalk"><span>B说:'+ $("#talkwords").val() +'?</span></div>'
                }
                $("#words").html($("#words").html() + str)

                //输入完成后内容清空,重新获取插入条光标
                $(".talk_word").val("").focus()

            })
        })  
    </script>
</head>
<body>
    <div class="talk_con">
        <!-- 显示区域 -->
        <div class="talk_show" id="words">
            <div class="atalk"><span>A说:吃饭了吗?</span></div>
            <div class="btalk"><span>B说:还没呢,你呢?</span></div>
        </div>

        <!-- 发送内容区域 -->
        <div class="talk_input">
            <!-- 选项: 带有selected的选项,的value值和select标签共享 -->
            <select class="whotalk" id="who">
                <option value="0">A说:</option>
                <option value="1">B说:</option>
            </select>
            <!-- 请输入内容 -->
            <input type="text" class="talk_word" id="talkwords">
            <!-- 按钮 -->
            <input type="button" value="发送" class="talk_sub" id="talksub">
        </div>
    </div>
</body>
</html>

四、jquery事件

1.事件:

  • blur() 元素失去焦点
  • focus() 元素获得焦点
  • click() 鼠标单击
  • mouseover() 鼠标进入(进入子元素也触发)
  • mouseout() 鼠标离开(离开子元素也触发)
  • mouseenter() 鼠标进入(进入子元素不触发)
  • mouseleave() 鼠标离开(离开子元素不触发)
  • hover() 同时为mouseenter和mouseleave事件指定处理函数
  • ready() DOM加载完成
  • submit() 用户递交表单
    • 取消提交的方法一: return false;
    • 取消提交的方法二: event.preventDefault()

五、表单校验:

1.正则的定义:

1.1 定义方法一:

var re1 = /^aaa$/ig;    // i: 忽略大小写; g:全局搜索

1.2 定义方法二:

var re2 = new RegExp("^aaa$", 'ig') //两个参数,第一个是表达式,第二个是参数

2.正则的使用:

正则对象.test("需要校验的字符串")

console.log(re1.test('aaa'))
console.log(re1.test('aaaa'))

// 简单的正则校验:
//用户名验证:(数字字母或下划线6到20位)
var reUser = /^\w{6,20}$/;

//邮箱验证:        
var reMail = /^[a-z0-9][\w\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$/i;

//密码验证:
var rePass = /^[\w!@#$%^&*]{6,20}$/;

//手机号码验证:
var rePhone = /^1[3578]\d{9}$/;

3.案例:表单检验:

猜你喜欢

转载自blog.csdn.net/qq_35709559/article/details/82909970