添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

JQuery实现元素移动位置有很多种方法,其中一个是根据鼠标在指定区域内随意移动,还有一种的是根据方向键在一定区域内上下左右平移。这二种只能说各有优劣,通过方向键平移,实现相对简单,操作也更具备可控性,但是就是移动效率相对较低,每次平移量过大造成不够精准,平移量过小则会使移动过程更为繁琐。跟随鼠标自由移动,可以自由控制平移量,精准的移动到自己想要的位置,但是实现较为复杂,并且控制过程中容易出现体验卡顿等。

一 根据方向键移动
这里写图片描述
HTML部分

<div class="content_room">
     <div class="room_text">欢迎各位领导前来视察工作</div>
</div>
<div class="add_metting_list">
<div class="subject_title">调整内容区位置:</div>
<div class="control_direction">
<div class="top"><img src="img/top.png"></div>
<div class="left"><img src="img/left.png"></div>
<div class="right"><img src="img/right.png"></div>
<div class="bottom"><img src="img/bottom.png"></div>
</div>
< </div>```
jQuery部分,仅展示出上升部分,下左右类似。
        $(".top").click(function () {
            var top=$(".room_text").css("top");
            var top_num =top.replace('px','');
            var top_new=top_num*1-5*1;
            if(top_new<5){
                alert("已到顶部");
            }else{
                var top_css=top_new+'px';
                $(".room_text").css('top',top_css);

二 根据鼠标在指定区域内随意移动
这里写图片描述
标题,内容,下标区都可以根据鼠标在指定区域块移动
HTML部分

    <div class="card" id="title">
        <!--<img src="img/loginbg.png"  >-->
        <div class="first_line">成都超极限文化传播有限公司</div>
        <div class="second_line">王欻欻</div>
        <div class="third_line">职务:软件工程师</div>
jQuery部分
   var x1,y1,x2,y2,offleft,offtop,isclik=0;
    $(function() {
        var wmax=500-$(".first_line").width();
        var hmax=300-$(".first_line").height();
        $(".first_line").mousedown(function(e){
            x1=e.pageX;
            y1=e.pageY;
            offleft=parseInt($(".first_line").css('left'));
            offtop=parseInt($(".first_line").css('top'));
            isclik=1;
        $(".card").mousemove(function(e){
            if(isclik==1){
                x2=e.pageX;
                y2=e.pageY;
                var xx=x2-x1+offleft;
                var yy=y2-y1+offtop;
                if(xx>=0&&xx<wmax){
                    $(".first_line").css('left',xx+"px");
                if(yy>=0&&yy<hmax-1){
                    $(".first_line").css('top',yy+"px");
        }).mouseup(function(){
            isclik=0;
        second_line和third_line的移动类似,只需要改动部分变量名。

这里主要是一个html截图与jQuery实现代码,具体细节欢迎留言讨论。

JQuery实现元素移动位置有很多种方法,其中一个是根据鼠标在指定区域内随意移动,还有一种的是根据方向键在一定区域内上下左右平移。这二种只能说各有优劣,通过方向键平移,实现相对简单,操作也更具备可控性,但是就是移动效率相对较低,每次平移量过大造成不够精准,平移量过小则会使移动过程更为繁琐。跟随鼠标自由移动,可以自由控制平移量,精准的移动到自己想要的位置,但是实现较为复杂,并且控制过程中容易出现体验卡
拖拽移动需要注意的是:拖拽移动的窗口是如何定位的,如果"left"属性为"%" ,以"margin-left"来计算定位,如下实例,如果"left"属性为数字,直接使用"left"即可。 // 弹窗模块拖拽拖动$(function(){ var _move=false;//移动标记 var _x,_y;//鼠标离控件左上角的相对位置 var _dragZone = $(".M_.
&lt;html&gt; &lt;head&gt; &lt;meta http-equiv=Content-Type content="text/html;charset=utf-8"&gt; &lt;title&gt;发票打印&lt;/title&gt; &lt;/head
获取页面某一元素的绝对X,Y坐标,可以用offset(): var X = $(‘#DivID’).offset().top; var Y = $(‘#DivID’).offset().left; 获取相对(父元素)位置: var X = $(‘#DivID’).position().top; var Y = $(‘#DivID’).position().left; 通过getBounding...
window.onload=function(){ var img=document.getElementsByTagName(&amp;amp;amp;amp;quot;img&amp;amp;amp;amp;quot;)[0]; img.onmouseover=function(){
实现这个效果的关键是给div的定位设置成absolute,然后获得鼠标移动后的位置坐标并给要移动的div。 我将它封装成了一个函数,只需要传入参数即可使用。 downDiv:鼠标按下部分的id; moveDiv:跟随鼠标移动的div的id; 代码如下: <!DOCTYPE html> <html lang="zh"> <meta http-equiv="Content-Type
<title>jsPlumb拖动元素位置</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jsPlumb/2.17.7/js/jsplumb.min.js"></script> <style type="text/css"> #container { width: 600px; height: 400px; border: 1px solid #ccc; position: relative; .node { width: 100px; height: 100px; background-color: #f0f0f0; border: 1px solid #ccc; position: absolute; text-align: center; line-height: 100px; cursor: move; </style> </head> <div id="container"> <div class="node draggable" style="top: 100px; left: 100px;">节点1</div> <div class="node draggable" style="top: 200px; left: 200px;">节点2</div> <script type="text/javascript"> jsPlumb.ready(function() { jsPlumb.draggable($(".draggable"), { containment: "parent" </script> </body> </html>