事件

页面载入   ready(fn)  //当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。   $(document).ready(function(){}) -----------> $(function(){})

事件处理   $("").on(eve,[selector],[data],fn)  // 在选择元素上绑定一个或多个事件的事件处理函数。

   //  .on的selector参数是筛选出调用.on方法的dom元素的指定子元素,如:   //  $('ul').on('click', 'li', function(){console.log('click');})就是筛选出ul下的li给其绑定   //  click事件;

   [selector]参数的好处:       好处在于.on方法为动态添加的元素也能绑上指定事件;如:

       //$('ul li').on('click', function(){console.log('click');})的绑定方式和       //$('ul li').bind('click', function(){console.log('click');})一样;我通过js给ul添加了一个       //li:$('ul').append('<li>js new li<li>');这个新加的li是不会被绑上click事件的

       //但是用$('ul').on('click', 'li', function(){console.log('click');}方式绑定,然后动态添加       //li:$('ul').append('<li>js new li<li>');这个新生成的li被绑上了click事件      [data]参数的调用:            function myHandler(event) {               alert(event.data.foo);               }            $("li").on("click", {foo: "bar"}, myHandler)

实例之面板拖动

<!DOCTYPE html><html><head lang="en">   <meta charset="UTF-8">   <title></title></head><body>   <div style="border: 1px solid #ddd;width: 600px;position: absolute;">       <div id="title" style="height: 40px;color: white;">           标题       </div>       <div style="height: 300px;">           内容       </div>   </div><script type="text/javascript" src="jquery-2.2.3.js"></script><script>   $(function(){       // 页面加载完成之后自动执行       $('#title').mouseover(function(){           $(this).css('cursor','move');       }).mousedown(function(e){           //console.log($(this).offset());           var _event = e || window.event;           // 原始鼠标横纵坐标位置           var ord_x = _event.clientX;           var ord_y = _event.clientY;

           var parent_left = $(this).parent().offset().left;           var parent_top = $(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 = parent_left + (new_x - ord_x);               var y = parent_top + (new_y - ord_y);

               $(this).parent().css('left',x+'px');               $(this).parent().css('top',y+'px');

           })       }).mouseup(function(){           $(this).unbind('mousemove');       });   })</script></body></html>

实例之放大镜

<!DOCTYPE html><html lang="en"><head>   <meta charset="UTF-8">   <title>bigger</title>   <style>       *{           margin: 0;           padding:0;       }       .outer{           height: 350px;           width: 350px;           border: dashed 5px cornflowerblue;       }       .outer .small_box{           position: relative;       }       .outer .small_box .float{           height: 175px;           width: 175px;           background-color: darkgray;           opacity: 0.4;           fill-opacity: 0.4;           position: absolute;           display: none;

       }

       .outer .big_box{           height: 400px;           width: 400px;           overflow: hidden;           position:absolute;           left: 360px;           top: 0px;           z-index: 1;           border: 5px solid rebeccapurple;           display: none;

       }       .outer .big_box img{           position: absolute;           z-index: 5;       }

   </style></head><body>

       <div class="outer">           <div class="small_box">               <div class="float"></div>               <img src="data:images/2.jpg">

           </div>           <div class="big_box">               <img src="2.jpg">           </div>

       </div>

<script src="jquery-2.1.4.min.js"></script><script>

   $(function(){

         $(".small_box").mouseover(function(){

             $(".float").css("display","block");             $(".big_box").css("display","block")

         });         $(".small_box").mouseout(function(){

             $(".float").css("display","none");             $(".big_box").css("display","none")

         });

         $(".small_box").mousemove(function(e){

             var _event=e || window.event;

             var float_width=$(".float").width();             var float_height=$(".float").height();

             console.log(float_height,float_width);

             var float_height_half=float_height/2;             var float_width_half=float_width/2;             console.log(float_height_half,float_width_half);

              var small_box_width=$(".small_box").height();              var small_box_height=$(".small_box").width();

//  鼠标点距离左边界的长度与float应该与左边界的距离差半个float的width,height同理             var mouse_left=_event.clientX-float_width_half;             var mouse_top=_event.clientY-float_height_half;

             if(mouse_left<0){                 mouse_left=0             }else if (mouse_left>small_box_width-float_width){                 mouse_left=small_box_width-float_width             }

             if(mouse_top<0){                 mouse_top=0             }else if (mouse_top>small_box_height-float_height){                 mouse_top=small_box_height-float_height             }

              $(".float").css("left",mouse_left+"px");              $(".float").css("top",mouse_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);

             console.log(percentX,percentY)

              $(".big_box img").css("left", -percentX*mouse_left+"px")              $(".big_box img").css("top", -percentY*mouse_top+"px")         })   })

</script></body></html>

动画效果

回调函数

<!DOCTYPE html><html lang="en"><head>   <meta charset="UTF-8">   <title>Title</title>   <script src="jquery-2.1.4.min.js"></script>

</head><body> <button>hide</button> <p>helloworld helloworld helloworld</p><script>  $("button").click(function(){      $("p").hide(1000,function(){          alert($(this).html())      })  })   </script></body></html>

扩展方法 (插件机制)

用JQuery写插件时,最核心的方两个方法

<script>   $.extend(object)      //为JQuery 添加一个静态方法。$.fn.extend(object)   //为JQuery实例添加一个方法。

   jQuery.extend({         min: function(a, b) { return a < b ? a : b; },         max: function(a, b) { return a > b ? a : b; }       });   console.log($.min(3,4));

//-----------------------------------------------------------------------

$.fn.extend({   "print":function(){       for (var i=0;i<this.length;i++){           console.log($(this)[i].innerHTML)       }

   }});$("p").print();</script>

实例之注册验证

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

           list-style: disc;;       }       img{           display: block;           height: 200px;       }   </style></head><body><form class="Form">

   <p><input class="v1" type="text" name="username" mark="用户名"></p>   <p><input class="v1" type="text" name="email" mark="邮箱"></p>   <p><input class="v1" type="submit" value="submit"  onclick="return validate()"></p>

</form>

<script src="jquery-2.1.4.min.js"></script><script>   // 注意:   // DOM对象--->jquery对象    $(DOM)   // jquery对象--->DOM对象    $("")[0]

   //---------------------------------------------------------

   // DOM绑定版本   function validate(){

       flag=true;

       $("Form .v1").each(function(){           $(this).next("span").remove();// 防止对此点击按钮产生多个span标签             var value=$(this).val();           if (value.trim().length==0){                var mark=$(this).attr("mark");                var ele=document.createElement("span");                ele.innerHTML=mark+"不能为空!";                $(this).after(ele);                $(ele).prop("class","error");// DOM对象转换为jquery对象                flag=false;                //  return false-------->引出$.each的return false注意点           }

       });       return flag   }</script></body></html>

轮播图

<!DOCTYPE html><html> <head>   <meta charset="utf-8">   <title>轮播图</title>   <style media="screen">   * {       margin: 0;       padding: 0;     }   #Number li{       width: 50px;       height: 50px;       background-color: #303a40;       color: white;       text-align: center;       line-height: 50px;       border-radius: 50%;       margin-left: 30px;       font-size: large;       list-style-type: none;       display: inline-block;     }     #Number{       position: absolute;       width: 100%;       text-align: center!important;       top: 80%;     }

     .outer{       cursor: pointer;       width: 60%;       height: 75%;       position: absolute;       left: 50%;       top: 10%;       margin-left: -30%;

     }     .outer:hover .button{       display: inline-block;     }     .img img{       width: 100%;       height: 100%;       position: absolute;       top: 0;       bottom: 0;       left: 0;       right: 0;     }     .button{       display: none;       opacity: 0.3;       color: white;       font-size: 50px;       text-align: center;       line-height: 80px;       top: 50%;       margin-top: -40px;       position: absolute;       width: 80px;       height: 80px;       background-color: black;     }     .r{       right: 0;     }     .l1{       background-color: red!important;     }   </style> </head> <body>   <div class="outer" id="sliderWrap">     <div class="img" id="sliderContent">

     </div>     <div id="Number">       <ul>

       </ul>     </div>     <div class="button l" id="left">       &lt;     </div>     <div class="button r" id="right">       &gt;     </div>   </div> </body><script src="jquery-2.1.4.min.js"></script> <script type="text/javascript">   var arr=['images/1.jpg','images/2.jpg','images/3.jpg','images/4.jpg','images/5.jpg','images/6.jpg']   $.each(arr,function (i,v) {       console.log(i)       $('.img').append("<a><img src="+v+"></a>")       if(i==0){           $('ul').append("<li class='l1'>"+(i+1)+"</li>")       }else{           $('ul').append("<li>"+(i+1)+"</li>")       }   })   $('.img').append("<a><img src="+arr[0]+"></a>")   $('#Number li').mouseover(function () {       $(this).addClass('l1').siblings().removeClass('l1')       var index=$(this).index()       i=index       $('.img a').eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);   })   var time = setInterval(move,2000)   var i =0;   function move() {       if(i==arr.length-1){           i=-1       }       i++       $('#Number li').eq(i).addClass('l1').siblings().removeClass('l1')       $('.img a').eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000);   }   $('.outer').hover(function () {       clearInterval(time)   },function () {       time=setInterval(move,2000)   })   $('.r').click(function () {       move()   })   $('.l').click(function () {       if(i==0){           i=arr.length       }       i--       $('#Number li').eq(i).addClass('l1').siblings().removeClass('l1')       $('.img a').eq(i).stop().fadeIn(1000).siblings().stop().fadeOut(1000);   }) </script></html>

识别图中二维码,领取python全套视频资料

前端框架之jQuery(二)----轮播图,放大镜的更多相关文章

  1. 用jQuery实现轮播图效果,js中的排他思想

    ---恢复内容开始--- jQuery实现轮播图不用单独加载. 思路: a. 通过$("#id名");选择需要的一类标签,获得一个伪数组 b.由于是伪数组的原因,而对数组的处理最多 ...

  2. 用js和jQuery做轮播图

    Javascript或jQuery做轮播图 css样式 <style> a{ text-decoration:none; } .naver{ width: 100%; position:r ...

  3. 自实现PC端jQuery版轮播图

    最近其他项目不是很忙,被安排给公司的官网项目做一个新的页面(之前没接触公司官网项目),其中有一个用到轮播图的地方,最开始想直接用swiper.js插件实现就好了,可是发现官网项目里之前都没有引入过sw ...

  4. Web前端原生JavaScript浅谈轮播图

    1.一直来说轮播图都是困扰刚进业内小白的一大难点,因为我们不仅需要自己作出一个比较完美的运动框架(虽然网上一抓一大把,但是哪有比自己做出来实现的有成就感,不是吗?^_^),还必须需要非常关键性的把握住 ...

  5. JQuery实现轮播图及其原理

    源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" name="vi ...

  6. Jquery无缝轮播图的制作

    轮播是html页面中比较常见的一种展现形式,也是基础,把轮播图做好,是排版中比较关键的 1.首先是轮播的html元素放置:做轮播之前,要有一个初步的认识 2.每个元素的位置怎样摆放,也是很关键的,这里 ...

  7. jquery优化轮播图2

    继续优化 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  8. jquery改造轮播图1

    g改造轮播图1:https://www.cnblogs.com/huanghuali/p/8677338.html <!DOCTYPE html> <html lang=" ...

  9. jQuery无缝轮播图思路详解-唯品会

    效果图如上: 需求:图片自动轮播,鼠标移上停止播放,离开恢复播放,箭头切换图片. html代码 <!--轮播图大盒子开始--> <div class="wrap" ...

随机推荐

  1. lucene 范围搜索表达式(range expression)

    实际测试 lucene范围符号,大于等于或小于等于符号[],大于或小于符号{}   newIntRange或newLongRange一样     代码:           // test lucen ...

  2. 【MyBatis】MyBatis分页插件PageHelper的使用

    好多天没写博客了,因为最近在实习,大部分时间在熟悉实习相关的东西,也没有怎么学习新的东西,这周末学习了MyBatis的一个分页插件PageHelper,虽然没有那么的强大(我在最后会说明它的缺点),但 ...

  3. ios 调试过程捕获异常Stack 信息

    在AppDelegate,定义方法 void catchExceptionHandler(NSException *exception) { NSLog(@"CRASH: %@", ...

  4. sqlite or svn 错误 The database disk image is malformed 可解决

    在网上找了很多资料,很多网友都提到这个问题是不可解决的,面对这个问题,只能作罢. 但我不甘心这么丢失数据,最最后找到了一个解决方法.经测试,原来数据,全部保住. 以下为原文. http://www.s ...

  5. 27. Remove Element【easy】

    27. Remove Element[easy] Given an array and a value, remove all instances of that value in place and ...

  6. python抓取新浪首页的小例子

    参考 廖雪峰的python教程:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0 ...

  7. java.lang.IllegalStateException: class utils.filter.ContentFilter is not a javax.servlet.Filter

    1.错误描写叙述 2016-01-12 11:27:01.787:WARN:oejuc.AbstractLifeCycle:FAILED ContentFilter: java.lang.Illega ...

  8. Thinkphp5 使用命令行模式(cli模式)

    Tp5的cli模式跟Tp3.2变化较大,有自己的一套方式,在这里做个搬运工,把Tp文档的东西搬运过来,方便大家. 原出处截图 创建自定义命令行 第一步,配置command.php文件,目录在appli ...

  9. 关于JAVA编译时找不到自定义包的问题

    这两天照网上的教程,学习JSP/SERVLET/JAVABEAN,写了几个JAVA文件,目录放在TOMCAT的WEBAPPS下面,通过javac编译时,老提示找不到指定的包: 下图是我的目录路径: 通 ...

  10. C#调用python脚本

    因项目需要,需要使用C#控制台程序执行python脚本,查询各种资料后可以成功调用了,记录一下,以备后面遗忘. 只尝试了两种调用方式,第一种只适用于python脚本中不包含第三方模块的情况,第二种针对 ...