zoukankan      html  css  js  c++  java
  • JS错误记录

    错误总结:

    1. var disX = 0;   现在window.onload里声明变量,而不是在事件oDiv.onmousedown里面声明并赋值。

    对于这个还不是很明白。

    2. onmousedown事件的主体是oDiv,不是整个窗口。

    3. if ... else if ...   两个花括号的中间不可以写分号 ; 。

    4. oDiv.style.left = l + 'px';    left 值有px。

    5. 写法错误。  可视窗的宽度:  document.documentElement.clientWidth

    if(l<0)
                {
                    l = 0;
                }
                // if(l>oEvent.clientWidth - oDiv.offsetWidth)
                else if(l>document.documentElement.clientWidth-oDiv.offsetWidth)
                {
                    // l = oEvent.clientWidth - oDiv.offsetWidth
    
                    l=document.documentElement.clientWidth-oDiv.offsetWidth;
                };
    <script>
    
        window.onload = function()
        {
            var oDiv = document.getElementById('div1');
    
            var disX = 0; // 为什么在这里声明, 且声明变量为 0 ?
            var disY = 0;
    
            oDiv.onmousedown = function(ev) 
            // 不是点击整个窗口时拖拽, 是点击div的时候拖拽
            {
                var oEvent = ev || event;
                
                disX = oEvent.clientX - oDiv.offsetLeft;
                disY = oEvent.clientY - oDiv.offsetTop;
    
                //window.onmousemove = function(ev)  // window.onmouseove 和 document.onmousemove 区别?
                document.onmousemove=function (ev)
                {
                    var oEvent = ev || event;
                    var l = oEvent.clientX - disX   // 变量表示div位置的值
                    var t = oEvent.clientY - disY
    
                    // 画图,分成 左边顶格, 右边顶格 两种情况考虑。
                    if(l<0)
                    {
                        l=0;
                    }    //;  // if 和 else if之间的语句不可以写分号 ; 
                    
                    else if(l>document.documentElement.clientWidth - oDiv.offsetWidth)
                    {
                        l = document.documentElement.clientWidth - oDiv.offsetWidth;
                    };
    
                    if(t<0)
                    {
                        t=0;
                    }
                    else if(t>document.documentElement.clientHeight-oDiv.offsetHeight)
                    {
                        t=document.documentElement.clientHeight-oDiv.offsetHeight;
                    }
    
                    oDiv.style.left = l + 'px'; // left 值有px
                    oDiv.style.top =  t + 'px';
                };
    
                document.onmouseup=function ()
                {
                    document.onmousemove=null;
                    document.onmouseup=null;
                };
    
                return false; // 阻止默认事件,解决火狐浏览器拖拽空div的bug
            };    
        };
        </script>
        <script>
        window.onload = function()
        {
          var oDiv = document.getElementById('div1');
          var disX = 0;
          var disY = 0;
    
          oDiv.onmousedown = function(ev)
          {
              var oEvent = ev||event;
              
              disX = oEvent.clientX - oDiv.offsetLeft;
              disY = oEvent.clientY - oDiv.offsetTop;
    
              document.onmousemove = function(ev)
              {
                var oEvent = ev||event;
                var l = oEvent.clientX - disX;
                var t = oEvent.clientY - disY;
    
                if(l<0)
                {
                    l = 0;
                }
                // if(l>oEvent.clientWidth - oDiv.offsetWidth)
                else if(l>document.documentElement.clientWidth-oDiv.offsetWidth)
                {
                    // l = oEvent.clientWidth - oDiv.offsetWidth
    
                    l=document.documentElement.clientWidth-oDiv.offsetWidth;
                };
    
                if(t<0)
                {
                    t = 0;
                }
                else if(t>document.documentElement.clientHeight-oDiv.offsetHeight)
                {
                    t=document.documentElement.clientHeight-oDiv.offsetHeight;
                }
    
                // if(t>oEvent.clientHeight - oDiv.offsetHeight)
                // {
                //     l = oEvent.clientHeight - oDiv.offsetHeight
                // };
    
                oDiv.style.left = l + 'px';
                oDiv.style.top = t + 'px';
              };
    
              document.onmouseup = function()
              {
                  document.onmousemove = null;
                  document.onmouseup = null;
              };
    
              return false;
          };
        };
        </script>
  • 相关阅读:
    教你用photoshop cs5或者cs6做IPad,背景随意换,gif制作,高清教程,原创
    ASP.NET MVC4 IN ACTION学习笔记第一波
    潜移默化学会C#不常用语法《1》动态类型绑定dynamic
    SubSnoic 框架入门到提高(1)全程记录
    杨洋疯狂C# 刊号:201208 第1期ASPNET验证(一)
    杨洋疯狂C# 刊号:201207 第1期
    ASP.NET MVC4 IN ACTION学习笔记第二波
    JavaScript深入【表达式和运算符(上集)】你能过我8关js运算符的题目吗?
    清新空气我的.net(C#)生涯知识总结 跨CSS,JS,JAVA,AJAX,WPF,WCF,LINQ,ASP.NET,Winform,Sqlserver,Mysql,EF,OOP,开发工具等
    潜移默化学会WPF(Treeview异步加载节点)
  • 原文地址:https://www.cnblogs.com/carpenterzoe/p/10214067.html
Copyright © 2011-2022 走看看