Python全栈开发之16、jquery
一、查找元素
1、选择器
1.1 基本选择器 $("*") $("#id") $(".class") $("element") $(".class,p,div")
1.2层级选择器 $(".outer div")(所有的后代) $(".outer>div")(所有的子代) $(".outer+div")(匹配所有跟在.outer后面的div)
$(".outer~div")(.outer后面的所有div)
1.3 基本筛选器 $("li:first") $("li:eq(2)") $("li:even")(偶数) $("li:gt(1)")
1.4 属性选择器 $('[id="div1"]') $('["alex="sb"][id]')
1.5 表单选择器 $("[type='text']") 简写成 $(":text") 注意只适用于input标签
2 筛选器
2.1 过滤筛选器
$("li").eq(2) $("li").first() $("ul li").hasclass("test") (检测li中的是否含有某个特定的类,有的话返回true)
2.2 查找筛选器
$("div").children(".test")(只考虑子元素,而不考虑所有的后代) $("div").find(".test") (考虑所有的后代)
$(".test").next() $(".test").nextAll() $(".test").nextUntil() (开区间)
$("div").prev() $("div").prevAll() $("div").prevUntil()
$(".test").parent() $(".test").parents()(祖先元素集合) $(".test").parentUntil()
$("div").siblings() (同辈元素不包括自己)
二、操作元素
1 属性操作
$("p").text() $("p").html() $(":checkbox").val()
$(".test").attr("alex") $(".test").attr("alex","sb")
$(".test").attr("checked","checked") $(":checkbox").removeAttr("checked")
$(".test").prop("checked",true)
$(".test").addClass("hide")
2 CSS操作
(样式) css("{color:'red',backgroud:'blue'}")
(位置) offset() position() scrollTop() scrollLeft()
(尺寸) innerHeight()不包含边框, outerHeight()包含边框, 两个都包含padding height()不包含边框
3 文档处理
内部插入 $("#c1").append("<b>hello</b>") $("p").appendTo("div")
prepend() prependTo()
外部插入 before() insertBefore() after() insertAfter()
replaceWith() remove() empty() clone()
4 事件
4.1
$(document).ready(function(){}) -----------> $(function(){}) 最好都加上这一句(所有文档执行完,但是图片没加载)
4.2
$("p").click(function(){})
$("p").bind("click",function(){})
$("ul").delegate("li","click",function(){}) // 事件委托,这里需要重点注意下
三、jquery所有示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>leftMenu</title> <script src="../jquery-1.12.4.js"></script> <style> * { margin: 0; padding: 0; } .outer { } .menu { width: 20%; background-color: blueviolet; float: left; } .content { width: 80%; height: 500px; background-color: blue; float: left; } .active { background-color: chartreuse; color: white; } .hide { display: none; } </style> </head> <body> <div class="outer"> <div class="menu"> <div class="item"> <div itemcon="1" class="title active" >菜单一</div> <div class="con"> <div>111</div> <div>111</div> <div>111</div> </div> </div> <div class="item"> <div itemcon="2" class="title" >菜单二</div> <div class="con hide"> <div>222</div> <div>222</div> <div>222</div> </div> </div> <div class="item"> <div itemcon="3" class="title" >菜单三</div> <div class="con hide"> <div>333</div> <div>333</div> <div>333</div> </div> </div> </div> <div class="content"> <div id="1">content1</div> <div id="2" class="hide">content2</div> <div id="3" class="hide">content3</div> </div> </div> <script> $(function () { $(".item .title").click(function () { //绑定事件 $(this).addClass('active').siblings().removeClass('hide'); $(this).parent().siblings().find('.con').addClass('hide'); $(this).parent().siblings().find('.title').removeClass('active'); //下面操作对应点击哪项菜单显示相应内容 var con = $(this).attr('itemcon'); $("#" + con).removeClass('hide').siblings().addClass('hide'); //为什么要拼接 }) }); </script> </body> </html> 菜单内容隐藏以及相应菜单显示相应文本内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-1.12.4.js"></script> </head> <body> <button id="selectAll">全选</button> <button id="reverseAll">反选</button> <button id="cancleAll">取消</button> <table> <tr> <td><input type="checkbox"></td> <td>1111</td> </tr> <tr> <td><input type="checkbox"></td> <td>1111</td> </tr> <tr> <td><input type="checkbox"></td> <td>1111</td> </tr> </table> <script> $(function () { $("#selectAll").click(function () { $("table :checkbox").prop('checked',true) }); $("#cancleAll").click(function () { $("table :checkbox").prop('checked',false) }); $("#reverseAll").click(function () { $("table :checkbox").each(function () { if($(this).prop('checked')){ $(this).prop('checked',false); }else { $(this).prop('checked',true); } }); }) }); </script> </body> </html> 全选反选取消事例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } .container{ background-color: cornflowerblue; width: 100%; } .content{ background-color: aqua; min-height: 1000px; width: 800px; margin: 0 auto; } .retTop{ width: 35px; height: 35px; position: fixed; right: 0; bottom: 0; background-color: chartreuse; } .hide{ display: none; } </style> <script src="jquery-1.12.4.js"></script> </head> <body> <div class="container"> <div class="content"></div> <div class="retTop"> 返回顶部 </div> </div> <script> $(function () { window.onscroll = function () { var scrollHeight = $(window).scrollTop(); if(scrollHeight<100){ $(".retTop").addClass('hide'); }else { $(".retTop").removeClass('hide') } }; $(".retTop").click(function () { $(window).scrollTop(0); }) }) </script> </body> </html> 返回顶部
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-1.12.4.js"></script> <style> *{ margin: 0; border: 0; } .header{ width: 100%; height: 50px; background-color: black; } .container{ width: 960px; margin: 0 auto; /*position: relative;*/ } .leftmenu{ width: 250px; min-height: 400px; background-color: chartreuse; position: absolute; // 想下为什么不能用relative left: 200px; top: 50px; } .content{ width: 600px; min-height: 900px; background-color: cornflowerblue; position: absolute; left: 382px; top:50px; } ul{ list-style: none; } .content div{ height: 800px; border: 1px solid black; } .fixed{ position: fixed; top:0; } </style> </head> <body> <div class="header"></div> <div class="container"> <div class="leftmenu"> <ul> <li id="item1">第一章</li> <li id="item2">第二章</li> <li id="item3">第三章</li> </ul> </div> <div class="content"> <div class="item1">111</div> <div class="item2">222</div> <div class="item3" style="height: 100px">333</div> </div> </div> <script> $(function () { window.onscroll = function () { var scrollHeight = $(window).scrollTop(); if(scrollHeight>50){ $(".leftmenu").addClass('fixed'); }else { $(".leftmenu").removeClass('fixed'); } $('.content').children().each(function () { if(scrollHeight>$(this).offset().top){ var iditem = $(this).attr("class"); console.log($(this)); $("#"+iditem).css("fontSize","40px").siblings().css("fontSize","12px"); } console.log(scrollHeight,$(this).offset().top,$(this).outerHeight(),$(window).height()); }); if(scrollHeight+$(window).height() ==$(".content div:last-child").offset().top +$(".content div:last-child").outerHeight()){ $("ul li:last-child").css("fontSize","40px").siblings().css("fontSize","12px"); } }; }) </script> </body> </html> 随着滚动条的移动相应的内容对应相应的菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } ul{ list-style: none; } .outer{ position: relative; width: 310px; height: 310px; margin: 20px auto; } .image{ position: relative; } .image img{ height: 310px; width: 310px; position: absolute; border: dashed blue 1px; top: 0; left: 0; } .num{ position: absolute; bottom:0; left:100px; } .num li{ display: inline-block; height: 20px; width: 20px; /*background-color: #3c763d;*/ border-radius: 50%; text-align: center; line-height: 20px; cursor: pointer; } .position{ width: 310px; position: absolute; top:50%; margin-top: -15px; left: 0; } .position button{ display: block; width: 30px; height: 30px; background-color:burlywood ; opacity: 0.6; border: 0; display: none; } .outer:hover .position button{ display: block; } .left{ float: left; } .right{ float: right; } .active{ background-color: black; } </style> <script src="jquery-1.12.4.js"></script> <script> $(function () { $(".num li").first().addClass("active"); console.log( $(".num li")); $(".num li").mouseover(function () { console.log(this); $(this).addClass("active").siblings().removeClass("active"); var index = $(this).index(); i = index; $(".image img").eq(index).fadeIn(1000).siblings().fadeOut(1000); }); var i = 0; function autoMove() { $(".num li").eq(i).addClass("active").siblings().removeClass("active"); $(".image img").eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000); i++; if(i==5){ i = 0; } } var t1 = setInterval(autoMove,1000); $(".outer").hover(function () { clearInterval(t1); },function () { t1 = setInterval(autoMove,1000); }); $(".right").click(function () { autoMove(); }); $(".left").click(function () { i--; if(i==-1){ i = 4; } $(".num li").eq(i).addClass("active").siblings().removeClass("active"); $(".image img").eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000); }) }) </script> </head> <body> <div class="outer"> <div class="image"> <img src="pic/a.png"> <img src="pic/1.jpeg"> <img src="pic/2.jpeg"> <img src="pic/3.jpeg"> <img src="pic/4.jpeg"> </div> <div class="num"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </div> <div class="position"> <button class="left"> < </button> <button class="right"> > </button> </div> </div> </body> </html> 轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } ul{ list-style: none; } .outer{ position: relative; width: 310px; height: 310px; margin: 20px auto; } .image{ position: relative; } .image img{ height: 310px; width: 310px; position: absolute; border: dashed blue 1px; top: 0; left: 0; } .num{ position: absolute; bottom:0; left:100px; } .num li{ display: inline-block; height: 20px; width: 20px; /*background-color: #3c763d;*/ border-radius: 50%; text-align: center; line-height: 20px; cursor: pointer; } .position{ width: 310px; position: absolute; top:50%; margin-top: -15px; left: 0; } .position button{ display: block; width: 30px; height: 30px; background-color:burlywood ; opacity: 0.6; border: 0; display: none; } .outer:hover .position button{ display: block; } .left{ float: left; } .right{ float: right; } .active{ background-color: black; } </style> <script src="jquery-1.12.4.js"></script> <script> $(function () { $(".num li").first().addClass("active"); console.log( $(".num li")); $(".num li").mouseover(function () { console.log(this); $(this).addClass("active").siblings().removeClass("active"); var index = $(this).index(); i = index; $(".image img").eq(index).fadeIn(1000).siblings().fadeOut(1000); }); var i = 0; function autoMove() { $(".num li").eq(i).addClass("active").siblings().removeClass("active"); $(".image img").eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000); i++; if(i==5){ i = 0; } } var t1 = setInterval(autoMove,1000); $(".outer").hover(function () { clearInterval(t1); },function () { t1 = setInterval(autoMove,1000); }); $(".right").click(function () { autoMove(); }); $(".left").click(function () { i--; if(i==-1){ i = 4; } $(".num li").eq(i).addClass("active").siblings().removeClass("active"); $(".image img").eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000); }) }) </script> </head> <body> <div class="outer"> <div class="image"> <img src="pic/a.png"> <img src="pic/1.jpeg"> <img src="pic/2.jpeg"> <img src="pic/3.jpeg"> <img src="pic/4.jpeg"> </div> <div class="num"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </div> <div class="position"> <button class="left"> < </button> <button class="right"> > </button> </div> </div> </body> </html> 模态对话框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> * { margin: 0; padding: 0; } .hide { display: none; } .header-nav { height: 39px; background: #c9033b; } .header-nav .bg { background: #c9033b; } .header-nav .nav-allgoods .menuEvent { display: block; height: 39px; line-height: 39px; text-decoration: none; color: #fff; text-align: center; font-weight: bold; font-family: 微软雅黑; color: #fff; width: 100px; } .header-nav .nav-allgoods .menuEvent .catName { height: 39px; line-height: 39px; font-size: 15px; } .header-nav .nav-allmenu a { display: inline-block; height: 39px; vertical-align: top; padding: 0 15px; text-decoration: none; color: #fff; float: left; } .header-menu a { color: #656565; } .header-menu .menu-catagory { position: absolute; background-color: #fff; border-left: 1px solid #fff; height: 316px; width: 230px; z-index: 4; float: left; } .header-menu .menu-catagory .catagory { border-left: 4px solid #fff; height: 104px; border-bottom: solid 1px #eaeaea; } .header-menu .menu-catagory .catagory:hover { height: 102px; border-left: 4px solid #c9033b; border-bottom: solid 1px #bcbcbc; border-top: solid 1px #bcbcbc; } .header-menu .menu-content .item { margin-left: 230px; position: absolute; background-color: white; height: 314px; width: 500px; z-index: 4; float: left; border: solid 1px #bcbcbc; border-left: 0; box-shadow: 1px 1px 5px #999; } </style> <body> <div class="pg-header"> <div class="header-nav"> <div class="container narrow bg"> <div class="nav-allgoods left"> <a id="all_menu_catagory" href="#" class="menuEvent"> <strong class="catName">全部商品分类<> <span class="arrow" style="display: inline-block;vertical-align: top;"></span> </a> </div> </div> </div> <div class="header-menu"> <div class="container narrow hide"> <div id="nav_all_menu" class="menu-catagory"> <div class="catagory" float-content="one"> <div class="title">家电</div> <div class="body"> <a href="#">空调</a> </div> </div> <div class="catagory" float-content="two"> <div class="title">床上用品</div> <div class="body"> <a href="http://www.baidu.com">床单</a> </div> </div> <div class="catagory" float-content="three"> <div class="title">水果</div> <div class="body"> <a href="#">橘子</a> </div> </div> </div> <div id="nav_all_content" class="menu-content"> <div class="item hide" float-id="one"> <dl> <dt><a href="#" class="red">厨房用品</a></dt> <dd> <span>| <a href="#" target="_blank" title="勺子">勺子</a> </span> </dd> <> <dl> <dt><a href="#" class="red">厨房用品</a></dt> <dd> <span>| <a href="#" target="_blank" title="菜刀">菜刀</a> </span> </dd> <> <dl> <dt><a href="#" class="red">厨房用品</a></dt> <dd> <span>| <a href="#">菜板</a> </span> </dd> <> <dl> <dt><a href="#" class="red">厨房用品</a></dt> <dd> <span>| <a href="#" target="_blank" title="碗">碗</a> </span> </dd> <> </div> <div class="item hide" float-id="two"> <dl> <dt><a href="#" class="red">厨房用品</a></dt> <dd> <span>| <a href="#" target="_blank" title="">角阀</a> </span> </dd> <> <dl> <dt><a href="#" class="red">厨房用品</a></dt> <dd> <span>| <a href="#" target="_blank" title="角阀">角阀</a> </span> </dd> <> <dl> <dt><a href="#" class="red">厨房用品</a></dt> <dd> <span>| <a href="#" target="_blank" title="角阀">角阀</a> </span> </dd> <> </div> <div class="item hide" float-id="three"> <dl> <dt><a href="#" class="red">厨房用品3</a></dt> <dd> <span>| <a href="#" target="_blank" title="角阀">角阀3</a> </span> </dd> <> <dl> <dt><a href="#" class="red">厨房用品3</a></dt> <dd> <span>| <a href="http://www.meilele.com/category-jiaofa/ " target="_blank" title="角阀">角阀3</a> </span> </dd> <> </div> </div> </div> </div> </div> <script src="jquery-1.12.4.js"></script> <script> $(function () { init("#all_menu_catagory","#nav_all_menu","#nav_all_content"); }); function init(mFirst,mSecond,mThird) { $(mFirst).mouseover(function () { $(mSecond).parent().removeClass('hide'); }); $(mFirst).mouseout(function () { $(mSecond).parent().addClass('hide'); }); $(mSecond).children().mouseover(function () { $(mSecond).parent().removeClass('hide'); var floatvar = $(this).attr("float-content"); var floatstr = "[float-id=" + floatvar + "]"; $(mThird).find(floatstr).removeClass('hide').siblings().addClass('hide') }); $(mSecond).mouseout(function () { $(this).parent().addClass('hide'); $(mThird).children().addClass('hide'); }); $(mThird).children().mouseover(function () { // $(mSecond).parent().removeClass('hide'); $(this).removeClass('hide') }); $(mThird).children().mouseout(function () { // $(mSecond).parent().addClass('hide'); $(this).addClass('hide') }) } </script> </body> </html> 商城三层菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-1.12.4.js"></script> <style> table { margin-top: 40px; } table, td { border: 1px solid black; } a { display: inline-block; background-color: #bce8f1; width: 100px; height: 21px; text-decoration: none; cursor: pointer; } .red { background-color: red; } </style> </head> <body> <button id="checkAll">全选</button> <button id="checkReverse">反选</button> <button id="checkCancle">取消</button> <a id="edit_mode">进入编辑模式</a> <table > <thead> <tr> <th>选择</th> <th>主机名</th> <th>端口</th> <th>状态</th> </tr> </thead> <tbody id="tb"> <tr> <td><input type="checkbox"></td> <td edit="true">v1</td> <td>88</td> <td edit="true" edit_type="select" sel-val="1" global-key="STATUS">在线</td> </tr> <tr> <td><input type="checkbox"></td> <td edit="true">v1</td> <td>88</td> <td edit="true" edit_type="select" sel-val="2" global-key="STATUS">下线</td> </tr> <tr> <td><input type="checkbox"></td> <td edit="true">v1</td> <td>88</td> <td edit="true" edit_type="select" sel-val="1" global-key="STATUS">在线</td> </tr> </tbody> </table> <script> $(function () { main('#edit_mode','#tb'); }); STATUS = [ {'id': 1, 'value': "在线"}, {'id': 2, 'value': "下线"} ]; window.globalCtrlKeyPress = false; function main(edit,tb) { bindSingleCheck(edit,tb); bindEditMode(edit,tb); bindCheckAll(edit,tb); bindCheckCancle(edit,tb); bindCheckReverse(edit,tb); } function bindSingleCheck(edit,tb) { $(tb).find(":checkbox").click(function () { var $tr = $(this).parent().parent(); if($(edit).hasClass('editing')){ if($(this).prop('checked')){ RowIntoEdit($tr); }else { RowOutEdit($tr); } } }) } function bindEditMode(edit,tb) { $(edit).click(function () { if($(this).hasClass('editing')){ $(this).removeClass('editing red'); $(tb).children().each(function () { var check_box = $(this).children().find(":checkbox"); if(check_box.prop('checked')){ RowOutEdit($(this)); }else { } }); }else { $(this).addClass('editing red'); $(tb).children().each(function () { var check_box = $(this).children().find(":checkbox"); if(check_box.prop('checked')){ RowIntoEdit($(this)); }else { } }) } }); } function bindCheckAll(edit,tb) { $("#checkAll").click(function () { if($(edit).hasClass("editing")){ $(tb).children().each(function () { var check_box = $(this).children().find(":checkbox"); if(check_box.prop('checked')){ }else { check_box.prop('checked',true); RowIntoEdit($(this)); } }) }else { $(tb).find(':checkbox').prop('checked', true); } }); } function bindCheckReverse(edit,tb) { $("#checkReverse").click(function () { if($(edit).hasClass("editing")){ $(tb).children().each(function () { var check_box = $(this).children().find(":checkbox"); if(check_box.prop('checked')){ check_box.prop('checked',false); RowOutEdit($(this)); }else { check_box.prop('checked',true); RowIntoEdit($(this)); } }) }else { $(tb).children().each(function(){ var check_box = $(this).children().find(':checkbox'); if(check_box.prop('checked')){ check_box.prop('checked',false); }else{ check_box.prop('checked',true); } }); } }); } function bindCheckCancle(edit,tb) { $("#checkCancle").click(function () { if($(edit).hasClass("editing")){ $(tb).children().each(function () { var check_box = $(this).children().find(":checkbox"); if(check_box.prop('checked')){ check_box.prop('checked',false); RowOutEdit($(this)); }else { } }) }else { $(tb).find(':checkbox').prop('checked',false); } }); } function RowIntoEdit($tr) { $tr.children().each(function () { if($(this).attr('edit') == 'true'){ if($(this).attr('edit_type') == "select"){ var select_val = $(this).attr('sel-val'); var global_key = $(this).attr('global-key'); var selelct_tag = CreateSelect({"onchange": "MultiSelect(this);"}, {}, window[global_key], 'id', 'value', select_val); $(this).html(selelct_tag); }else { var orgin_value = $(this).text(); var temp = "<input value='"+ orgin_value+"' />"; $(this).html(temp); } } }) } function RowOutEdit($tr) { $tr.children().each(function () { if($(this).attr('edit')=='true'){ if($(this).attr('edit_type') == "select"){ var new_val = $(this).children(':first').val(); var new_text = $(this).children(':first').find("option[value='"+new_val+"']").text(); $(this).attr('sel-val', new_val).text(new_text); }else { var orgin_value = $(this).children().first().val(); $(this).text(orgin_value); } } }) } function CreateSelect(attrs, csss, option_dict, item_key, item_value, current_val) { var sel = document.createElement('select'); //设置属性 $.each(attrs,function (k,v) { $(sel).attr(k,v); }); //设置样式 这里为空,以后可以设置 $.each(csss,function (k,v) { $(sel).css(k,v); }); $.each(option_dict,function (k,v) { var opt = document.createElement('option'); var sel_text = v[item_value]; var sel_value = v[item_key]; if(current_val == sel_value){ $(opt).text(sel_text).attr('value',sel_value).attr('selected','true').appendTo($(sel)); }else { $(opt).text(sel_text).attr('value',sel_value).appendTo($(sel)); } }); return sel; } window.onkeydown = function (e) { if(e && e.keyCode == 17){ window.globalCtrlKeyPress = true; } }; window.onkeyup = function (e) { if(e && e.keyCode == 17){ window.globalCtrlKeyPress = false; } }; function MultiSelect(ths) { if(window.globalCtrlKeyPress == true){ var index = $(ths).parent().index(); var value = $(ths).val(); console.log(value,index); $(ths).parent().parent().nextAll().find("td input[type='checkbox']:checked").each(function(){ $(this).parent().parent().children().eq(index).children().val(value); }); } } </script> </body> </html> 编辑框(需要重点掌握)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .inline { display: inline-block; } </style> </head> <body> <div class="container"> <div class="section"> <div class="button inline"> <a id="origin"> <button>+</button> </a> <div class="input inline"> <input type="checkbox"> <input type="text" value="IP"> </div> </div> </div> </div> <script src="jquery-1.12.4.js"></script> <script> $(function () { $("#origin").click(function () { var origin = $(this).parent().parent().clone(); origin.find('a').removeAttr('id').attr("onclick", "myremove(this);").children().text('-'); $(".container").append(origin); }); }) function myremove(self) { console.log(11); $(self).parent().parent().remove(); } </script> </body> </html> 内容clone添加删除
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } .container{ position: relative; } .small-box{ border: 5px solid red; height: 350px; width: 350px; position: relative; } .big-box{ position: absolute; width: 400px; height: 400px; left:360px; top:0; border: 5px solid black; overflow: hidden; } .hide{ display: none; } .small-box .float{ width: 175px; height: 175px; background-color: grey; position: absolute; opacity: 0.8; } .big-box img{ position: absolute; } </style> </head> <body> <div class="container"> <div class="small-box"> <div class="float hide"></div> <img src="pic/small.jpg"> </div> <div class="big-box hide"> <img src="pic/big.jpg"> </div> </div> <script src="jquery-1.12.4.js"></script> <script> $(function () { $(".small-box").mouseover(function () { $(this).children('.float').removeClass('hide').parent().next().removeClass('hide'); }); $(".small-box").mouseout(function () { $(this).children('.float').addClass('hide').parent().next().addClass('hide'); }); $(".float").mousemove( function (e) { var _event = e || window.event; var small_box_width = $(".small-box").width(); var small_box_height = $(".small-box").height(); var float_height = $('.float').height(); var float_width = $(".float").width(); var float_height_half = float_height/2; var float_width_half = float_width/2; var float_right = _event.clientX- float_width_half; var float_top = _event.clientY - float_height_half; if(float_right<0){ float_right = 0; }else if(float_right>small_box_width-float_width){ float_right=small_box_width-float_width } if(float_top<0){ float_top=0; }else if(float_top>small_box_height-float_height){ float_top=small_box_height-float_height } $(".float").css({"left":float_right+"px","top":float_top+"px"}); var percentX=($(".big-box img").width()-$(".big-box").width())/ (small_box_width-float_width); var percentY=($(".big-box img").height()-$(".big-box").height())/(small_box_height-float_height); $(".big-box img").css({"left":-percentX*float_right+"px","top":-percentY*float_top+"px"}); }) }) </script> </body> </html> 放大镜
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</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-1.12.4.js"></script> <script> $("#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_left = $(this).parent().offset().left; var parent_top = $(this).parent().offset().top; $(this).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 + parent_left; var y = new_y - old_y + parent_top; $(this).parent().css({"left":x+"px","top":y+"px"}) }).mouseup(function () { $(this).unbind('mousemove'); }) }) </script> </body> </html> 拖动面板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-1.12.4.js"></script> <script> $(function () { jQuery.fn.extend({ show1:function () { var ret = this.text(); return ret+ "sb"; }, }); jQuery.extend({ show2:function (arg) { return $(arg).text()+"sb" } }); ret = $(".title").show1(); console.log(ret); // alert(ret); ret2 = $.show2(".title"); console.log(ret2); }); </script> </head> <body> <div class="title"> 111 </div> <div class="title"> 2222 </div> </body> </html> extend以及fn.extend
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-1.12.4.js"></script> <script> $(document).ready(function () { $("button").click(function () { $("p").hide(1000,call_back()); }) }); function call_back() { alert('sss') } </script> </head> <body> <button>隐藏</button> <p>hello</p> </body> </html> 回掉函数