网页常用动态效果--拖拽

拖拽的关键在于事件源及坐标位

网页中的基本拖拽:

1.设定是否激活拖拽的标识flag;

2.当拖拽点按下时,在window范围内的移动;

3.拖拽区域不能超过窗口,加判断

HTML:

  body>div

CSS代码:

  

   <style>
            div{
                width:100px;
                height:100px;
                background: lightgrey;
                position: absolute;
                top:0;
                left:0;
            }
        </style>

JQ代码:

<script>
            $(function(){
                 //是否激活拖拽的标识
                    var flag = false;
                    var w1 = $(‘div‘).width();
                    var h1 = $(‘div‘).height();
                    var w2 = $(window).width();
                    var h2 = $(window).height();
                    $(‘div‘).mousedown(function(){
                        flag = true;
                        $(window).mousemove(function(event) {
                            if(flag == true){
                                var mx = event.pageX;
                                var my = event.pageY;
                                var x = mx-20;
                                var y = my-20;
                                if(x<0){
                                    x=0;
                                }
                                if(y<0){
                                    y=0;
                                }
                                if(x>w2-w1){
                                    x = w2-w1;
                                }
                                if(y>h2-h1){
                                    y=h2-h1;
                                }
                                $(‘div‘).css({left:x,top:y});
                            }
                        });

                    })
                     $(window).mouseup(function(event) {
                            /* Act on the event */
                            flag=false;
                        });
            })
        </script>

指定在有效范围内的拖拽:

1.拖拽的三个事件,拖拽点鼠标按下,移动范围内的鼠标移动,窗口范围内鼠标松开
2.三个距离:1-父盒子离窗口边框距离;2。拖拽点坐标;3.前两者之差即为拖拽点在父盒子中的大致位置
3.注意:拖拽点不能超出盒子,因此需加判断

HTML:

body>div>span

CSS:

        div{
            width: 1000px;
            height: 500px;
            background: #ccc;
            border:1px solid #000;
            margin:100px auto;
            position: relative;
        }
        span{
            width:100px;
            height: 100px;
            background: green;
            border:1px solid #000;
            position: absolute;
            left: 0;
            top: 0;
        }
        </style>

JQ:

  $(function(){
                var divX = $(‘div‘).offset().left;
                var divY = $(‘div‘).offset().top;
                var w1 = $(‘span‘).width();
                var h1 = $(‘span‘).height();
                var w2 = $(‘div‘).width();
                var h2 = $(‘div‘).height();
                var flag = false; //拖拽激活标识
                $(‘span‘).mousedown(function(event) {
                    flag = true;
                    $(‘div‘).mousemove(function(event) {
                        /* Act on the event */
                        var mx = event.pageX;
                        var my = event.pageY;
                        if(flag == true){
                            var x = mx - divX - 50; //拖拽点在span中间
                            var y = my - divY - 50;
                            //移动范围在div中
                            if(x <0){
                                x=0;
                            }
                            if(y<0){
                                y=0;
                            }
                            if(x>w2-w1){
                                x=w2-w1;
                            }
                            if(y>h2-h1){
                                y=h2-h1;
                            }
                            $(‘span‘).css({left:x,top:y});
                        }
                    });
                });
                $(window).mouseup(function(event) {
                    /* Act on the event */
                    flag = false;
                });
            })
时间: 2024-10-06 10:54:37

网页常用动态效果--拖拽的相关文章

网页常用动态效果--网易轮播图

与小米轮播图类似,多了下角标进度条,同时加了切换效果 HTML代码: <div class="box"> <div> <ul> <li style="z-index:1;"><img src="image/163/1.jpg" alt="" width="310" height="220"/> <span></

JavaScript实现网页元素的拖拽效果

以下的页面中放了两个div,能够通过鼠标拖拽这两个元素到任何位置. 实现该效果的HTML页面代码例如以下所看到的: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> #xixi { width:200px; h

javascript小实例,PC网页里的拖拽(转)

这是现在的效果,可能改了一些,原来的效果是,里面的这张图是可以上下左右拖动的,然后房子上面的显示的楼栋号,也跟着图片一起移动,当时js能力还不行,未能实现项目经理的要求,不过后来项目经理又把这个效果推掉了,换了另外的一个效果 尽管项目经理不想要这个效果了,但是当时就在我心里留下了一个节,到今天都忘不了这个梗. 好了,这就是我今天想写这篇博客的初衷,希望能给想实现这类拖拽效果,但是不知道该怎么去实现的同学,提供一种思路,不给青春留遗憾,当然实现拖拽的方法有很多,这里就只介绍JavaScript中的

网页常用动态效果--放大镜

HTML代码: div.box>span+div CSS代码: box相对定位,span在box内绝对定位,div绝对定位超出其自身宽 .box{ width:350px; height:350px; background: url(images/xiaotu.jpg) 0 0 no-repeat; margin:100px; border:1px solid #000; position: relative; } .box span{ width:150px; height:150px; ba

网页常用动态效果--优酷轮播图

优酷轮播图的不同之处在于用克隆在最后插入新的节点图片,因而在轮播时角标位的判断是关键 HTML代码: <div class="box"> <ul> <li><img src="image/youku/1.jpg" height="410" width="1190" alt=""/></li> <li><img src="

网页常用动态效果--淘宝竖条广告

布局:.box>ol+ul ol和ul均整体左浮动,box清浮 CSS: 1 .box{ 2 width:250px; 3 height:250px; 4 position: relative; 5 overflow:hidden; 6 } 7 ol{ 8 width:49px; 9 height:250px; 10 float: left; 11 border-right:1px solid black; 12 } 13 ol li{ 14 height:35px; 15 line-heigh

网页常用动态效果--小米官网轮播图

关键在于层级关系 HTML代码: div.box>ul+ol+span*2(ul层级1,ol层级2,span层级3) ul>li*5>img(注意可以将首个li的z-index定为10) ol>li*5 CSS代码: .box{ width:992px; height:420px; position: relative; overflow:hidden; } .box ul{ position: relative; z-index:1; } .box ul li{ position

HTML5开发 拖拽文件上传

Drag&Drop 拖拽功能的处理 关于HTML5拖拽文件上传,其实国外已经有很多网站有这样的应用,最早推出拖拽上传应用的是 Gmail,它支持标准浏览器下拖拽本地文件到浏览器中作为邮件的附件发送,但其实现在利用HTML5的功能实现,主要借助于新版支持的浏览器来实现,IE还是弱很多. 拖拽上传应用主要使用了以下 HTML5技术: Drag&Drop : HTML5基于拖拽的事件机制.File API : 可以很方便的让 Web 应用访问文件对象,File API 包括FileList.Bl

HTML5拖拽——将本地文件拖拽到网页中显示

HTML5标准中的提供的用于文件输入输出(I/O)的对象 File: 代表一个文件对象 FileList: 代表一个文件列表,类数组对象 FileReader 用于从文件中提取内容 FileWrite 用于向文件中写入类容 这些对象需要在 H5的拖拽事件中通过 e.dataTransfer 来访问和获取 完成效果如下: Data URL给了我们一种很巧妙的将图片"嵌入"到HTML中的方法.跟传统的用img标记将服务器上的图片引用到页面中的方式不一样,在Data URL协议中,图片被转换