老师的放上去的代码怎么和课程里的不一致

来源:8-2 综合实战题

Ginger_Z

2016-11-16 15:42

老师的放上去的代码怎么和课程里的不一致,我是用课程中的代码,有一些奇怪的现象,希望老师放一下视频里的源代码。

写回答 关注

1回答

  • 太阳帆sail
    2016-12-07 14:30:44
    已采纳

    我从最后一课里拷出来的,可以参考~

    ===============================================================

    <!DOCTYPE html>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


    <title>慕课网-拖拽效果</title>


    <style type="text/css">


        body{ 

            background: url(images/baidu_demo.png) no-repeat top center #fff; 

            padding: 0px;margin: 0px;font-size: 12px;font-family: "微软雅黑";

        }


        .ui-dialog{

            width: 380px;height: auto;display: none;

            position: absolute;z-index: 9000;

            top: 100px;left: 100px;

            border: 1px solid #d5d5d5;background: #fff;

        }

        .ui-dialog a{ text-decoration: none;}

        .ui-dialog-title{

            height: 48px;line-height: 48px;padding-left: 20px;color: #535353;font-size: 16px;

            background: #f5f5f5;

            border-bottom: 1px solid #efefef;

            cursor: move;

        }

        .ui-dialog-title-closebutton{

            width: 16px;height: 16px;display: block;

            position: absolute;top: 12px;right: 20px;

            background: url(images/close_def.png);

        }

        .ui-dialog-title-closebutton:hover{

            background: url(images/close_hov.png);   

        }

        .ui-dialog-content{

            padding: 15px 20px;

        }



        .ui-dialog-pt15{

            padding-top: 15px;

        }

        .ui-dialog-l40{

            height: 40px;line-height: 40px;

            text-align: right;;

        }


        .ui-dialog-input{

            width: 100%;height: 40px;

            margin: 0px;padding: 0px;

            border: 1px solid #d5d5d5;

            font-size: 16px;color: #c1c1c1;

            text-indent: 25px;

            outline: none;

        }

        .ui-dialog-input-username{

            background: url(images/input_username.png) no-repeat;

        }

        .ui-dialog-input-password{

            background: url(images/input_password.png) no-repeat;

        }


        .ui-dialog-submit{

            width: 100%;height: 50px;display: block;

            font-size: 16px;color: #fff;

            background: #3b7ae3;

            text-align: center;line-height: 50px;

        }

        .ui-dialog-submit:hover{

            background: #3f81b0;

        }


        .ui-mask{

            width: 100%;height: 100%;background: #000;opacity: 0.4;filter: Alpha(opacity=40);

            position: absolute;top: 0px;left: 0px;z-index: 8000;display: none;

        }


        .link{

            text-align: right;line-height: 20px;padding-right: 40px;

        }


    </style>


    </head>

    <body >


    <div class="ui-dialog" id="dialog">


    <div class="ui-dialog-title" id="dialogTitle">

                登录通行证

    <a href="javascript:hideDialog();" class="ui-dialog-title-closebutton"></a>

    </div>

    <div class="ui-dialog-content">



    <div class="ui-dialog-pt15 ui-dialog-l40">

    <input type="text" value="手机/邮箱/用户名" class="ui-dialog-input ui-dialog-input-username">

    </div>

    <div class="ui-dialog-pt15 ui-dialog-l40">

    <input type="text" value="密码" class="ui-dialog-input ui-dialog-input-password">

    </div>

    <div class=" ui-dialog-l40 ">

    <a href="#">忘记密码</a>

    </div>

    <div>


    <a href="#" class="ui-dialog-submit">登录</a>


    </div>

    <div class="ui-dialog-l40">

    <a href="#">立即注册</a>

    </div>

    </div>

    </div>


    <div class="ui-mask" id="mask" onslectstart="return false"></div>

    <div class="link">

    <a href="javascript:showDialog();">登录</a>

    </div>



    <script type="text/javascript">


            //  获取元素对象

            function g(id){ return document.getElementById(id); }


            //  自动居中 - 登录浮层 ( el = Elemenet)

            function autoCenter( el ){

                var bodyW = document.documentElement.clientWidth;

                var bodyH = document.documentElement.clientHeight;


                var elW = el.offsetWidth;

                var elH = el.offsetHeight;


                el.style.left = ( bodyW - elW  ) / 2  + 'px';

                el.style.top  = ( bodyH - elH  ) / 2  + 'px';

            }


            //  自动全屏 - 遮罩

            function fillToBody( el ){

                el.style.width   =  document.documentElement.clientWidth  +'px';

                el.style.height  =  document.documentElement.clientHeight +'px';

            }


            var mouseOffsetX = 0;   //  偏移

            var mouseOffsetY = 0;


            var isDraging = false;  //  是否可拖拽的标记


            //  鼠标事件1 - 在标题栏上按下(要计算鼠标相对拖拽元素的左上角的坐标,并且标记元素为可拖动)

            g('dialogTitle').addEventListener('mousedown',function(e){

                var e = e || window.event;

                mouseOffsetX = e.pageX - g('dialog').offsetLeft;

                mouseOffsetY = e.pageY - g('dialog').offsetTop;

                isDraging = true;

            })

            //  鼠标事件2 - 鼠标移动时(要检测,元素是否可标记为移动,如果是,则更新元素的位置,到当前鼠标的位置[ps:要减去第一步中获得的偏移])

            document.onmousemove = function( e ){

                var e = e || window.event;


                var mouseX = e.pageX;   // 鼠标当前的位置

                var mouseY = e.pageY;


                var moveX = 0;  //  浮层元素的新位置

                var moveY = 0;


                if( isDraging === true ){


                    moveX = mouseX - mouseOffsetX;

                    moveY = mouseY - mouseOffsetY;


                    //  范围限定   moveX > 0 并且  moveX < (页面最大宽度 - 浮层的宽度)

                    //            moveY > 0 并且  movey < (页面最大高度 - 浮层的高度)


                    var pageWidth  = document.documentElement.clientWidth ;

                    var pageHeight = document.documentElement.clientHeight ;


                    var dialogWidth  = g('dialog').offsetWidth;

                    var dialogHeight = g('dialog').offsetHeight;


                    var maxX = pageWidth - dialogWidth;

                    var maxY = pageHeight- dialogHeight;


                    moveX = Math.min( maxX , Math.max(0,moveX) );

                    moveY = Math.min( maxY , Math.max(0,moveY) );


                    g('dialog').style.left = moveX + 'px';

                    g('dialog').style.top  = moveY + 'px';

                }


            }



            //  鼠标事件3 - 鼠标松开的时候(标记元素为不可拖动即可)

            document.onmouseup = function(){

                isDraging = false; 

            }


         //  展现登录浮层

            function showDialog(){

                g('dialog').style.display= "block";

                g('mask').style.display = 'block';

                autoCenter(g('dialog'));

                fillToBody( g('mask') );

            }


            //  隐藏登录浮层

            function hideDialog(){

                g('dialog').style.display = 'none';

                g('mask').style.display = 'none';

            }


    window.onresize =function(){

                autoCenter(g('dialog'));

                fillToBody( g('mask') ); 

            }

    </script>


    </body>

    </html>


鼠标拖拽效果

用你的鼠标任意拖拽屏幕上的弹出窗口,了解把元素设置为可拖拽的原理

25993 学习 · 142 问题

查看课程

相似问题