js面向对象封装拖拽效果

一、面向对象
两种编程模式:
面向过程:注重过程
面向对象:注重结果
Js基于对象
对象的特征:
封装 继承 多态
对象的组成:
属性:静态的,对象的描述 --------------------- 变量
方法:动态,对象的行为 -------------------------- 函数
2.call与apply与bind
call apply bind:改变this的指向
普通函数的this------指向window
事件处理函数的this------指向触发事件的对象
构造函数中的this------ S对象

js面向对象封装拖拽效果

在这里插入<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width: 300px;
            height: 300px;
            background: red;
            position: absolute;
        }

    </style>
</head>
<body>
<div id="div"></div>


<script>

    function Drag(id) {
        var _this = this;
        this.x=0;
        this.y=0;
        this.oDiv = document.getElementById(id);
        this.oDiv.onmousedown = function (ev) {
            _this.down(ev);
            return false
        }
    }
    Drag.prototype={
       down: function (ev) {
           var _this=this;
           var ev = window.event || ev;
           this.x =  ev.clientX - this.oDiv.offsetLeft;
           this.y =  ev.clientY - this.oDiv.offsetTop;
           document.onmousemove = function(ev){
               _this.move(ev);
           };
           document.onmouseup = function (){
               _this.up()
           }
       },
       move:function (ev) {
           var ev = window.event || ev;
           var l = ev.clientX - this.x;
           var t = ev.clientY - this.y;

           //2.元素随鼠标动
           this.oDiv.style.left = l + "px";
           this.oDiv.style.top = t + "px";
       },
        up: function () {
            document.onmousemove=document.onmouseup = null;
        }
    }
     new Drag('div')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式或编程风格,它将现实世界中的事物抽象成为对象,通过对对象的抽象、封装、继承和多态等特性,来实现程序的模块化、可靠性和可复用性等优点。 面向对象编程和面向过程编程各自的优缺点如下: 1. 面向对象编程的优点: - 易于扩展和维护:面向对象编程通过封装、继承和多态等机制,可以使得程序的各个部分相互独立,易于修改和扩展。 - 提高开发效率:通过对象的抽象和封装,可以将复杂的问题简化为简单的对象,从而提高开发效率。 - 代码可复用性高:面向对象编程通过继承和多态等机制,可以使得代码的复用性更高。 2. 面向过程编程的优点: - 内存利用率高:面向过程编程不要创建对象,因此内存利用率更高。 - 执行速度快:由于不要创建对象,因此执行速度更快。 在JavaScript中,面向对象编程主要靠对象字面量、构造函数、原型和类等语法实现。其中,对象字面量是一种简单的创建对象的方式,构造函数则可以用来创建多个相似的对象,原型可以用来实现继承,而类则是ES6中新增的一种语法糖,可以更加方便地实现面向对象编程。 弹出层案例的实现思路: 1.创建一个div元素作为弹出层,设置其样式和内容。 2.创建一个按钮或链接,用于触发弹出层的显示。 3.通过JavaScript获取按钮或链接的点击事件,并在事件处理程序中显示弹出层。 4.为了实现点击弹出层以外的区域,关闭弹出层的功能,要在弹出层显示时,通过JavaScript创建一个遮罩层,并为其添加点击事件,用于隐藏弹出层和遮罩层。 5.如果要支持拖拽功能,可以通过JavaScript获取弹出层的mousedown、mousemove和mouseup事件,并在事件处理程序中实现拖拽效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值