以下代码是使用jQuery的的知识,根据课堂案例编写的武林高手在线相册的案例:
实例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>武林高手在线相册</title> <style type="text/css"> .warp { width: 360px; height: auto; font-family: 楷体; font-size: 1rem; background-color: #efefef; border: 3px double grey; color: #363636; border-radius: 2%; margin: auto; } input , select { font-family: 楷体; font-size: 0.8rem; } .warp .header { padding: 15px; } .warp .header h2 { text-align: center; } .add { width: 100px; height: 40px; font-family: 楷体; background-color: lightblue; color: white; font-size: 1rem; } .add:hover { font-family: 楷体; background-color: pink; color: black; border-radius: 5%; cursor: pointer; } .main { overflow: hidden; } .main ul { padding: 0; margin: 0; } .main ul li { list-style-type: none; float: left; margin-left: 20px; margin-bottom: 10px; width: 150px; height: 200px; text-align: center; } .main ul li button { margin: 3px; border-radius: 5%; background-color: lightblue; } .main ul li button:hover { cursor: pointer; background-color: pink; color: white; } </style> </head> <body> <div class="warp"> <div class="header"> <h2>武林高手在线相册</h2> <p> <label for="img_url">输入图片地址:</label> <input type="file" name="img_url" id="img_url" placeholder="图片地址"> </p> <p> 图片类型: <input type="radio" id="rect" name="border" value="0"><label>直角</label> <input type="radio" id="rect" name="border" value="10%"><label>圆角</label> <input type="radio" id="rect" name="border" value="50%" checked><label>圆形</label> </p> <p> 是否添加阴影: <select name="shadow"> <option value="0">不添加</option> <option value="1" selected>添加</option> </select> </p> <p><button class="add">添加图片</button></p> </div> <div class="main"> <ul></ul> </div> </div> <script src="../lib/jquery.js"></script> <script> //分三步完成 $(function (){ $('button.add').on('click',function(){ //1.获取图片的相关信息 //判断用户是否选择了图片 let img_url = $('#img_url').val(); if (img_url.length === 0){ alert('请选择一张图片'); $('#img_url').focus(); return false; } //获取图片的基本特征 //获取图片的外观 let img_type = $(':radio:checked').val(); //是否添加阴影 let shadow = 'none'; if ($(':selected').val() ==='1'){ shadow = '3px 3px 3px #666'; } //2.创建图片并添加到页面中 img_url = 'http://www.whj.com/0918/images/'+img_url.split('\\')[2]; //创建一张图片 let img = $('<img>') .attr('src',img_url) .width(150) .height(150) .css({ 'border-radius':img_type, 'box-shadow':shadow }); //创建三个按钮 let before = $('<button></button>').text('前移'); let after = $('<button></button>').text('后移'); let remove = $('<button></button>').text('删除'); //创建一个<li>用来存放所有的内容 let contaier = $('<li>'); //将图片和按钮打包到<ul>中 contaier.append(img,before,after,remove); //将<li>标签添加到<ul>中 contaier.appendTo('ul'); //为三个操作填加功能 //前移功能 before.click(function (){ //第一步获取要移动的图片 let nowpic = $(this).parent(); let prev = nowpic.prev(); prev.before(nowpic); }); //后移功能 after.click(function (){ //第一步获取要移动的图片 let nowpic = $(this).parent(); let next = nowpic.next(); next.after(nowpic); }); //删除 remove.click(function (){ if(confirm('确认删除?')){ $(this).parent().remove(); } return false; }) }) }); </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
说明:此案例就是简单实现了一些jQuery的一些操作,共分为三步:
获取图片的相关信息:拿到从页面中所选择的图片的相关信息
2.创建图片并添加到页面中:这里主要注意的是如何获取到图片的路径
3.创建三个按钮并为三个操作填加功能:这里图片和是三个按钮时放在同一个<li>标签中作为一个整体的。
总结:jQuery中最多的就是一些常用的操作,筛选方式可以分为:
1. 直接从集合中获取元素:eq(),first(),last();
2. 根据元素在集合中的关系:
[1].next(),nextAll(),nextUntil(): 向后查询
[2].prev(),prevAll(),prevUntil(); 向前查询
[3].siblings(): 向前和向后进行双向查询
[4].parent(): 获取父级元素
[5].children(),find(),filter(),not():多级查询
[6].is(),has(): 判断查询
3. 集合区间查询与元素添加: slice(), add()
jQuery中的基本事件为以下几种:
1.鼠标事件: click点击, mouseenter移入,mouseleave移出;
2.表单事件: submit提交, change内容改变,focus获取焦点, blur失去焦点
多用多练才能熟练地学以致用。