javascript - 鼠标 "click"和 "click-drag n release"都移动 div

标签 javascript jquery html css

第一次点击将 d div d1 滑动到右侧。 Nw 仅适用于左侧幻灯片,我希望鼠标“单击”和“单击-拖动并释放”到原始位置。我只能通过单击将 div d1 滑动到其原始位置,但我希望它也通过单击拖动和释放来移动。

简单来说 在我下面给出的代码中,我想进一步将 id d1 的 div 滑动回相同的原始位置,这必须通过鼠标单击-拖动-释放方法来完成。请记住,这将在通过单击 div d2 更改 div d1 位置后发生。

<html>
<head><title></title><script src="jquery.min.js"></script>
<script type="text/javascript" src="jquery_1.6.1.js"></script>
<script type="text/javascript" language="javascript"> //<![CDATA[

$(document).ready(function(){   $("#d2").click(function(){
   if($("#d1").css("left") <="-131px") 
        {
       $("#d1").animate({left:'250px'});        
        }   
     else   {
    $("#d1").animate({left:'-131px'});      
                }   
  }); 

  $('#d1').draggable({
cursor: 'move',
containment: '#dd'      // sets to can be dragged only within its parent
 }); 



  });

  //]]> </script>

</head>
<body>
<div style="width:531px;height:301px; background:#a7daa8;">
<div id="dd" style="width:530px;height:300px;">
<div id="d1" style="position:absolute; left:-131px;">
<div style="float:left; background:#a90000;" >hidden div on left------</div>
<div id="d2"  style=" float:left;background:#ccc; height: 300px;" >click here to slide the div</div>
</div>
</div>
</div>



</body>
 </html>

最佳答案

因此,如果您想通过单击将 div 动画化到一个位置,然后能够将其拖回原来的位置,请在此处尝试:http://jsfiddle.net/xLBBP/8/

动画的点击处理程序是相同的,但现在还使 div 在被点击后可拖动。拖动仅限于 x 轴。然后你可以拖动 div,如果你把它拖回足够近的地方,它就会回到原来的位置。我还将 css 移动到 css Pane 并进行了一些修改,这可能会解决您在移动浏览器中遇到的问题(虽然可能不会...)。

我添加了一个变量来跟踪用户是否正在拖动,以防止拖动结束时的 mouseup 触发动画回到原始位置。所以现在您可以将 div 拖回其原始位置,或者单击它以触发动画回到其原始位置。

现在还有一个变量 snapBackDistance,因此您可以设置距其原始起始位置的距离,如果您拖动然后松开,它将以动画形式返回。您可以尝试使用它来设置您满意的值。

var isDragging = false;
var snapBackDistance = -125;

$(document).ready(function(){   
    $("#d2").click(function(){
        if (!$('#d1').is('.ui-draggable-dragging')){
            if(isDragging == false){
                 $("#d1").animate({left:'-131px'});   
            }   
            isDragging = false;
        }
        if($("#d1").css("left") <="-131px"){
            $("#d1").animate({left:'131px'});
            $("#d1").draggable({ 
                axis: "x",
                start: function( event, ui ) {
                    isDragging = true;
                },
                stop: function( event, ui ) {
                    if(parseInt($("#d1").css("left")) < snapBackDistance){
                        $("#d1").animate({left:'-131px'});
                        $("#d1").draggable("destroy");
                    }
                }
            });
        }   
    }); 
});

关于javascript - 鼠标 "click"和 "click-drag n release"都移动 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723560/

相关文章:

javascript - 单击按钮时不显示隐藏表单

javascript - 使用 jquery 阻止表单提交的问题

关于关键字this的javascript问题

javascript - IE < 9 显示显示 "Member not found"

javascript - 跨域上传图片

php - 防止一个数据循环

javascript - 使用jquery动态添加新行和新子行

javascript - CSS3动画播放/暂停与js

html - 表单字段不对齐问题

javascript - 使用 bing map api 获取地址(邮政编码)自动地理定位?