继承应用

继承函数 DragBox

<style>
        div {
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
        }

        #box2 {
            background: green;
        }

        #box3 {
            background: blue;
        }
        *{margin:0;padding:0}
        body{height: 100vh}
    </style>
  
    <div id="box1"></div>
    <div id="box2"></div>
    <div id="box3"></div>

    <script src="DragBox.js"></script>
    <script>
/*
            DragBoxText  继承 DragBox
            需要在继承的基础上,实现在移动时,显示自己的坐标

            步骤:
                1. 继承属性
                2. 继承方法
                3. 修改 move 方法

            【练习】 你实现继承的 DragBoxText
        */
        function DragBoxText(boxId){
            DragBox.call(this,boxId)
        }
        DragBoxText.prototype = new DragBox()
        DragBoxText.prototype.move = function(x,y){
            DragBox.prototype.move.call(this,x,y)
            this.ele.innerHTML = x +","+ y
        }
        
        DragBox2.prototype = new DragBox()
        function DragBox2(boxId){
            DragBox.call(this,boxId)
        }
        DragBox2.prototype.move = function(x,y){
            
            if (x<0)
            {
                x=0
            }else if (x>document.body.clientWidth-this.ele.offsetWidth)
            {
                x = document.body.clientWidth-this.ele.offsetWidth
            }
            if (y<0)
            {
                y=0
            }else if (y>document.body.clientHeight-this.ele.offsetHeight)
            {
                y = document.body.clientHeight-this.ele.offsetHeight
            }
            DragBox.prototype.move.call(this,x,y)
            
        }
        
        // 让 box1 具备拖拽的能力
        new DragBox("box1");
        new DragBoxText("box2");
        new DragBox2("box3");
    </script>

遇到的问题

1.获取屏幕高度
应该先给body设置高度
如: body{ height: 100vh} (vh表示百分比)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,870评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,792评论 0 17
  • 被雨洗過的天空,格外晴明,一如我面對你的心境
    長卿_a014阅读 124评论 0 0
  • 文 | 壹梦说专栏作者:宋一雪丨不羁的灵魂 一 要说这两天最受关注的大事,莫过于2017年高考了。 据悉,今年是最...
    壹梦说阅读 249评论 0 0