美文网首页
2019-02-14 day9 jQuery和Ajax 和拖动方

2019-02-14 day9 jQuery和Ajax 和拖动方

作者: woming | 来源:发表于2019-02-14 21:14 被阅读0次

01jQuery补充

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery.min.js">
            
        </script>
        
        <script type="text/javascript" src="js/tool.js">
            
        </script>
        <style type="text/css">
            #box div{
                width: 200px;
                height: 100px;
                
            }
        </style>
    </head>
    <body>
        <p>我是段落1</p>
        <p>我是段落2</p>
        <p>我是段落3</p>
        <div id="box">
            <div>div1</div>
            <div>div2</div>
            <div>div3</div>
            <div>div4</div>
            
        </div>
        
    </body>
    
    
    <script type="text/javascript">
        //1.jQuery同时选中多个标签
        //a.同时处理  -  直接操作选中的jQuery对象,就是同时操作被选中的所有标签
        $('p').css('color', 'red')  // 同时设置所有p标签的文字颜色
        console.log($('p'))
        
        //同时给所有p标签添加点击事件
        $('p').on('click', function(){
            //注意:函数中的this都是js对象
            console.log(this)
            //通过js的方式获取内容
            console.log(this.innerText)
            //通过jQuery的方式获取内容
            //js转jQuery: $(js对象)  - 将js对象转换成jQuery对象
            console.log($(this).text())
        })
        
        //因为p标签有多个,pNodes其实是一个容器型的jQuery对象,可以通过下标将每个标签一一取出
        //注意:单独取出来的标签都是js对象
        pNodes = $('p')
        //取指定的标签
        console.log(pNodes[0])
        console.log(pNodes[1])
        //遍历所有标签
        for(i=0;i<pNodes.length;i++){
            console.log(pNodes[i])
            pNode = pNodes[i]
            //使用js的方式操作标签
            pNode.style.color = 'blue'
            //使用jQuery方式操作标签
            $(pNode).css('font-size','20px')
        }
        
        //2.事件绑定
        divNodes = $('#box div')
        for(i=0;i<divNodes.length;i++){
            $(divNodes[i]).css('background-color',randomColor())
        }
        
        
        //a. 标签.on(事件名,回调函数)   - 指定的标签发生指定的事件后,自动调用对应的函数(回调函数)
//      $('#box').on('click',function(evt){
//          console.log(this)
//          alert(this.innerText)
//      })      
        
        //推荐使用!!!
        //b. 标签.on(事件名,选择器,回调函数) - 给父标签添加事件,将事件传递给指定的选择器选中的子标签,函数中的this是子标签
        //标签 - 父标签
        //选择器 - 在父标签中去选中子标签
        $('#box').on('click','div',function(evt){
            console.log(this)
            alert(this.innerText)
        })      
    </script>
</html>

02Ajax基础

主要是get/post进行网络请求获取数据

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery.min.js">
            
        </script>
    </head>
    <body>
        <button onclick="getData()">图片</button>
        <!--<button onclick="getDuanzi">段子</button>-->
    </body>
    <script type="text/javascript">
        
        //1.什么是Ajax
        //A - asynchronous    ja - javascript   x - xml  (异步js+xml)
        //Ajax类似于python中的requests第三方库,专门提供js中的网络请求功能(http请求)
        //2.使用方法
        //1) $.get/post(url,data,fn,type)  - 获取url接口提供的数据(get的接口)
        //url  - 请求地址(字符串)
        //data - 参数(对象)
        //fn - 回调函数(函数),请求结束后,会自动调用这个函数;这个函数的参数就是请求结果
        //type -返回数据的类型(字符串,例如:json,html,text...)
        //http://api.tianapi.com/meinv/?key=772a81a51ae5c780251b1f98ea431b84&num=10
        function getData(){
            $.get('http://api.tianapi.com/meinv/',{key:'772a81a51ae5c780251b1f98ea431b84',num:10},function(result){
                console.log(result)
                var newsLists = result['newslist']
                for(i=0;i<newsLists.length;i++){
                    news = newsLists[i]
                    imgNode = $("<img style='width: 200px;height: 200px;' />")
                    imgNode.attr('src',news['picUrl'])
                    $('body').append(imgNode)
                    
                }
            },'json')
        }
        
        //获取profile_image 和 name
        //https://www.apiopen.top/satinApi?type=1&page=1
        $.get('https://www.apiopen.top/satinApi',{type:1,page:1},function(result){
            var datas = result['data']
            for(i=0;i<datas.length;i++){
                var data = datas[i]
                //创建图片标签
                var imgNode = $('<img />')
                imgNode.attr('src',data['profile_image'])
                //创建p标签
                var pNode1 = $('<p></p>')
                pNode1.text(data['name'])
                
                var pNode2 = $('<p></p>')
                pNode2.text(data['text'])
                
                //添加到网页
                $('body').append(imgNode)
                $('body').append(pNode1)
                $('body').append(pNode2)
            }

        },'json')
        
        
        //$.ajax({url:请求地址,type:'get'/'post',async:是否异步,success:回调函数,data:参数对象})
        $.ajax({
            type:"get",
            url:"http://api.tianapi.com/meinv/",
            data:{key:'772a81a51ae5c780251b1f98ea431b84',num:10},
            async:true,
            success:function(result){
                console.log(result)
            }
        });
        
    </script>
</html>

03拖动方块移动

注意移动的时候position的位置要怎样改变

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        
        
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            div{
                width: 100px;
                height: 100px;
                position: absolute;
                
            }
            #div1{
                background-color: palevioletred;
                left: 50px;
                top: 20px;
                z-index: 0;
            }
            #div2{
                background-color: greenyellow;
                top: 50px;
                left: 30px;
                z-index: 1;
            }
            #div3{
                background-color: dodgerblue;
                z-index: 2;
            }
            
        
        </style>
    </head>
    <body>
        <div id="div1"></div>
        <div id="div2"></div>
        <div id="div3"></div>
        
        
        <script type="text/javascript" src="js/jquery.min.js">
            
        </script>
        <script type="text/javascript">
            bodyNode = $('body')
            //鼠标按下事件
            var z = 3
            bodyNode.on('mousedown','div',function(evt){
                
                console.log('鼠标按下')
                //鼠标按下,让this处于最上层
                z++
                $(this).css('z-index',z)
                
                //获取鼠标的位置
                var mouseX1 = evt.clientX
                var mouseY1 = evt.clientY
                //获取this的position的数值
                var x = this.offsetLeft
                var y = this.offsetTop

                //鼠标移动事件
                this.onmousemove = function(evt){
                    //获取鼠标的位置
                    var mouseX2 = evt.clientX
                    var mouseY2 = evt.clientY
                    
                    //鼠标移动的时候修改this的position的值
                    this.style.left = mouseX2-mouseX1+x+'px'
                    this.style.top = mouseY2-mouseY1+y+'px'

                }
                
            })
            
            //鼠标弹起移动鼠标无效
            bodyNode.on('mouseup','div',function(evt){
                this.onmousemove = null
                console.log('鼠标弹起')
            })
            
        </script>

    </body>
</html>

相关文章

网友评论

      本文标题:2019-02-14 day9 jQuery和Ajax 和拖动方

      本文链接:https://www.haomeiwen.com/subject/lpiyeqtx.html