转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> 网页制作 >> 正文
div+css实现网页模块或栏目拖动(即拖拽效果)         ★★★★

div+css实现网页模块或栏目拖动(即拖拽效果)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2452 更新时间:2009/6/9 2:31:46

<script type="text/javascript" language="javascript">
    //为Number增加一个属性,判断当前数据类型是否是数字
    Number.prototype.NaN0=function(){return isNaN(this)?0:this;}

    //全局变量
    var iMouseDown=false;
    var dragObject=null;

    //获得鼠标的偏移量(对象2-对象1)
    function getMouseOffset(target,ev)
    {
        ev=ev||window.event;
        var docPos=getPosition(target);
        var mousePos=mouseCoords(ev);
        return {x:mousePos.x-docPos.x,y:mousePos.y-docPos.y};
    }

    //获得事件发生的实际位置----------------------对象1
    function getPosition(e)
    {
        var left=0;
        var top=0;
        //相对位置累加得到实际位置
        while(e.offsetParent)
        {
            left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
            top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
            e=e.offsetParent;
        }
        left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
        top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
        return {x:left,y:top};
    }
    //获得发生事件鼠标的位置----------------------对象2
    function mouseCoords(ev)
    {
        if(ev.pageX||ev.pageY)
        {
            return {x:ev.pageX,y:ev.pageY};
        }
        return {x:ev.clientX+document.body.scrollLeft-document.body.clientLeft,y:ev.clientY+document.body.scrollTop-document.body.clientTop};
    }


    //定义可以拖拽的对象
    function makeDragable(item)
    {
        if(!item) return;
        //为可拖拽对象定义一个onmousedown事件的方法
        ev=window.event;
        item.onmousedown=function(ev)
        {
            dragObject=this;
            mouseOffset=getMouseOffset(this,ev);
            return false;
        }
    }

    //定义鼠标点下所调用的方法
    function mouseDown(ev)
    {
        ev=ev||window.event;
       
        var target=ev.target||ev.srcElement;
        if(target.onmousedown||target.getAttribute('DragObj'))
        {
            return false;
        }   
    }
    //鼠标抬起后释放对象
    function mouseUp(ev)
    {
        dragObject = null;
        //onmouseup事件触发时说明鼠标已经松开,所以设置down变量值为false
        iMouseDown = false;
    }

    //鼠标移动
    function mouseMove(ev)
    {
        ev=ev||window.event;
        var target   = ev.target || ev.srcElement;
        var mousePos = mouseCoords(ev);
        if(dragObject)
        {
            if(dragObject.style)
            {
                //移动对象
                dragObject.style.left=mousePos.x - mouseOffset.x;
                dragObject.style.top= mousePos.y - mouseOffset.y;
            }
        }
        //lMouseState = iMouseDown;
        if(dragObject) return false;
    }
    document.onmousedown=mouseDown;
    document.onmousemove=mouseMove;
    document.onmouseup=mouseUp;


    function moveImg()
    {
        var img1=document.getElementById('img1');
        makeDragable(img1);
    }
    </script>
</head>
<body onload="moveImg()">
    <form id="form1" runat="server">
    <div>
    <img src="a.jpg" alt="" id="img1" style="position:absolute;left:0px;top:0px;" />
    </div>
    </form>
</body>
</html>


[办公软件]如何在PowerPoint中使用(插入)Media Player控件播…  [Web开发]Visual Studio.Net鲜为人知的技巧
[平面设计]Emotion 3D Web Edition为您制作出动感十足的网页…  [网页制作]什么是CSS+DIV
[网页制作]让Div中的文字(文本)垂直居中显示(对齐)—简单代码…  [网页制作]CSS+DIV制作圆角边框,无须使用图片
[网页制作]DreamWeaver+Css轻松实现网页段落首行缩进!  [网页制作]DIV+CSS+javascript实现DIV对象显示在页面任何位置…
[网页制作]XHTML+CSS兼容性解决方案  [网页制作]网页设计之css+div PK table+css
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台