首页 新闻 会员 周边

angularjs modal模态框----可拖动

0
悬赏园豆:10 [已解决问题] 解决于 2019-06-04 09:52

目前在用angularjs做项目,modal用的是ui-bootstrap的,但是那个弹出层需要扩展的太多了,比如居中显示,尤其不能接受的是无法拖动,忘高人指点一二~~

小七灬的主页 小七灬 | 初学一级 | 园豆:102
提问于:2016-08-31 14:39
< >
分享
最佳答案
0

自己写一个吧,又不难

收获园豆:10
小精灵儿Pawn | 菜鸟二级 |园豆:470 | 2016-08-31 16:38

大兄弟,要是我自己能写出来我就不在这里提问了,我是想能不能在ui-bootstrap上直接扩展,网上看到了别人封装的一个指令,但是自己弄了半天也没效果。
http://www.cnblogs.com/bobo-show/p/5106204.html

兄弟能指点下否。卡了好久这个问题

小七灬 | 园豆:102 (初学一级) | 2016-08-31 16:40

@抱着树死劲摇:

                element.on('mousedown', function(event) {
                    // Prevent default dragging of selected content
                    event.preventDefault();
                    startX = event.pageX - x;
                    startY = event.pageY - y;
                    $document.on('mousemove', mousemove);
                    $document.on('mouseup', mouseup);
                });

                function mousemove(event) {
                    y = event.pageY - startY;
                    x = event.pageX - startX;
                    element.css({
                    top: y + 'px',
                    left:  x + 'px'
                    });
                }

在鼠标按下的时候,记录原来窗体的位置和鼠标位置,然后在鼠标移动的时候,记录鼠标的偏移量,用这个偏移量来重新计算窗体的位置。 这样就可以了

我猜你失败的原因是 不能用style来获取内联样式和外部样式,要用getComputeStyle()

小精灵儿Pawn | 园豆:470 (菜鸟二级) | 2016-08-31 16:50

@胖乎乎的小奶油: 我是把别人那段代码直接放在了ui-bootstrap-tpls.js创建angular.module('ui.bootstrap.modal', ['ui.bootstrap.transition'])模块的后面,也不知道这样对不对,一个人学angular真心累

小七灬 | 园豆:102 (初学一级) | 2016-08-31 16:55

@抱着树死劲摇: 你去看看 angularJs自定义指令吧,主要是三个参数, scope,表示当前数据域,elem表示当前元素,

小精灵儿Pawn | 园豆:470 (菜鸟二级) | 2016-08-31 17:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册