起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1638|回复: 2

[处理中4] 关于DIV移动的问题

[复制链接]

9

主题

16

帖子

46

积分

新手上路

Rank: 1

积分
46
QQ
发表于 2016-9-22 15:41:25 | 显示全部楼层 |阅读模式

//鼠标按下时
        Model.prototype.div3Mousedown = function(event){
                var obj=this.getElementByXid('testDiv');
                obj.style.cursor = "move";
                objX = obj.style.left;
                objY = obj.style.top;
                mouseX = e.clientX;
                mouseY = e.clientY;
                isDowm = true;
        };

//鼠标移动
        Model.prototype.div3Mouseover = function(event){
                var obj =this.getElementByXid('testDiv') ;
                var x = e.clientX;
                var y = e.clientY;
                if (isDowm) {
                        obj.style.left = parseInt(objX) + parseInt(x) - parseInt(mouseX) + "px";
                        obj.style.top = parseInt(objY) + parseInt(y) - parseInt(mouseY) + "px";
                }
        };
//鼠标松开
        Model.prototype.div3Mouseup = function(event){
                if (isDowm) {
                        var x = e.clientX;
                        var y = e.clientY;
                        var obj =this.getElementByXid('testDiv');
                        obj.style.left = (parseInt(x) - parseInt(mouseX) + parseInt(objX)) + "px";
                        obj.style.top = (parseInt(y) - parseInt(mouseY) + parseInt(objY)) + "px";
                        mouseX = x;
                        rewmouseY = y;
                        obj.style.cursor = "default";
                        isDowm = false;
                }
        };


这代码执行的时候..拉动是父窗体.....请技术看看

9

主题

16

帖子

46

积分

新手上路

Rank: 1

积分
46
QQ
 楼主| 发表于 2016-9-22 16:15:28 | 显示全部楼层
上面事件弄错了.下面这个..
不是拉动父窗口,是压根就不实现拉动效果....
var obj=this.getElementByXid('testDiv');
测试打印了下obj...报错

var Model = function(){
                this.callParent();
                var mouseX, mouseY;  //鼠标 坐标
                var objX, objY;      //div座标
                var isDowm = false; //是否按下鼠标
        };

//鼠标按下时
        Model.prototype.testDivMousedown = function(event){
                var obj=this.getElementByXid('testDiv');
                obj.style.cursor = "move";
                objX = obj.style.left;
                objY = obj.style.top;
                mouseX = e.clientX;
                mouseY = e.clientY;
                isDowm = true;
        };

//鼠标移动
        Model.prototype.testDivMousemove = function(event){
                var obj =this.getElementByXid('testDiv') ;
                var x = e.clientX;
                var y = e.clientY;
                if (isDowm) {
                        obj.style.left = parseInt(objX) + parseInt(x) - parseInt(mouseX) + "px";
                        obj.style.top = parseInt(objY) + parseInt(y) - parseInt(mouseY) + "px";
                }
        };
       
//鼠标松开
        Model.prototype.testDivMouseup = function(event){
                if (isDowm) {
                        var x = e.clientX;
                        var y = e.clientY;
                        var obj =this.getElementByXid('testDiv');
                        obj.style.left = (parseInt(x) - parseInt(mouseX) + parseInt(objX)) + "px";
                        obj.style.top = (parseInt(y) - parseInt(mouseY) + parseInt(objY)) + "px";
                        mouseX = x;
                        rewmouseY = y;
                        obj.style.cursor = "default";
                        isDowm = false;
                }
        };
回复 支持 反对

使用道具 举报

0

主题

1639

帖子

497

积分

中级会员

Rank: 3Rank: 3

积分
497
QQ
发表于 2016-9-22 18:20:06 | 显示全部楼层
来改一改
define(function(require) {
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");

        var Model = function() {
                this.callParent();
        };

        var mouseX, mouseY; // 鼠标 坐标
        var objX, objY; // div座标
        var isDowm = false; // 是否按下鼠标

        // 鼠标按下时
        Model.prototype.testDivMousedown = function(event) {
                var e = event.originalEvent;
                var obj = this.getElementByXid('testDiv');
                obj.style.cursor = "move";
                objX = obj.style.left;
                objY = obj.style.top;
                mouseX = e.clientX;
                mouseY = e.clientY;
                isDowm = true;
        };

        // 鼠标移动
        Model.prototype.testDivMousemove = function(event) {
                var e = event.originalEvent;
                var obj = this.getElementByXid('testDiv');
                var x = e.clientX;
                var y = e.clientY;
                if (isDowm) {
                        obj.style.left = parseInt(objX) + parseInt(x) - parseInt(mouseX) + "px";
                        obj.style.top = parseInt(objY) + parseInt(y) - parseInt(mouseY) + "px";
                }
        };

        // 鼠标松开
        Model.prototype.testDivMouseup = function(event) {
                var e = event.originalEvent;
                if (isDowm) {
                        var x = e.clientX;
                        var y = e.clientY;
                        var obj = this.getElementByXid('testDiv');
                        obj.style.left = (parseInt(x) - parseInt(mouseX) + parseInt(objX)) + "px";
                        obj.style.top = (parseInt(y) - parseInt(mouseY) + parseInt(objY)) + "px";
                        mouseX = x;
                        rewmouseY = y;
                        obj.style.cursor = "default";
                        isDowm = false;
                }
        };

        return Model;
});
其中,你前面的div需要设置样式(里面有一些是我测试的样式主要是定位)
position:relative;border:1px solid red;height:100px;width:100px;top:0px;left:0px;
回复我的时候请点击我当前评论旁边的回复按钮,能保证第一时间看到您的回复,在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-17 11:03 , Processed in 0.074618 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表