Jquery 从左向右滑动不起作用

Jquery slide from left to right not working

当我单击 div 时,我试图在 jquery 中获得从右到左的幻灯片效果。这是我正在使用的HTML。

<div id="myDiv" style="height: 70px; display: none; background-color:#eee; position: absolute; bottom: 1px; width: 100%">
<img style="margin-left: 9px; top: 8px; position: absolute" id="transparent-image" src="images/hover.png" alt="">
<p class="bi" style="display: inline; color: black; margin-left: 7%; position: absolute">Webbing in an alternative social network. based on intrests and interactions between people all over the world.</p>

这就是我正在尝试使用的jquery。

$(function()
{
  $("#toggle").click(function () {
    $(".sliding").css("display","none");
    //$(".sliding").animate({left:'-240px'});
    // Set the effect type
    var effect = 'slide';

    // Set the options for the effect type chosen
    var options = { direction: 'left' };

    // Set the duration (default: 400 milliseconds)
    var duration = 10000;

    $('#myDiv').toggle(effect, options, duration);
  });

我实现的是div显示的是onclick,但是没有从左向右滑出。请帮帮我。我感谢您的帮助。谢谢。

我还添加了 jsfiddle link。 http://jsfiddle.net/yLyr599z/

我想这就是你想要的:

$(function() {
    $("#toggle").click(function () {
        $("#myDiv").animate({right:'0'});
    });
});
#toggle{
    position: absolute;
    left: 10px;
    bottom: 10px;
    cursor: pointer;
}

#myDiv {
    height: 70px;     
    background-color:#eee; 
    position: absolute; 
    bottom:0;
    right: 100%; 
    width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="toggle">
 Text to click. This will be an image though.
</div>
<div id="myDiv">
 This text should slide out from left to right and overlap the onclick text.
</div>

一些关键的事情:

  1. 在 jQuery 中,您需要使用 animate 方法。
  2. 如果您希望滑入的文本与您用作点击目标的文本(或图像)重叠,请将其放在源顺序中的另一个之后。换句话说,在您的 HTML 示例中,将其设为第二个 div.
  3. 您的 myDiv 的起始位置一直在屏幕左侧。在 CSS 中,你可以在定位元素上使用 right: 100% 来做到这一点。
  4. 滑动元素的结束位置是 right: 0,因为您的宽度是 100%。这是您传递给 jQuery.
  5. 中的 animate 方法的值

我做了一些修改。我认为您需要的是如下所示的功能。

       function slide(){
   //$("#toggle").css({'display':'none'}); // line 1
   $("#myDiv").css('display','inline'); 
   $("#myDiv").animate({'width': 500},2000,function(){
   }); 
   // remove below and uncomment line 1 to remove the toggle div immediately 
   $("#toggle").animate({'width': 0},2000,function(){
    $("#toggle").css({'display':'none'});
   });  
  }
 #toggle{
   position: absolute;
   background : red;
   height : 50px;   
  }
  
  .old {
   position: absolute; 
   display : none;
   width : 0px;
   height : 50px;
   background : green;  
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<span>
  <div id="myDiv" class = "old">
   This text should slide out from left to right and overlap the onclick text.
 </div>
 </span> 
  <div id="toggle" class="sliding"    onClick = "slide()" >
   Text to click. This will be an image though.
  </div>

我认为发生在你身上的是滑动部分先发生,然后将 CSS 属性 更改为显示 DIV。所以你看不到实际的滑动,但滑动后你会看到,因为显示会影响滑动后。但不确定是不是这样。

$(function() {
    $("#toggle").click(function () {
        $("#myDiv").animate(left:'0'});
    });
});
#toggle{
    position: absolute;
    left: 10px;
    bottom: 10px;
    cursor: pointer;
}

#myDiv {
    height: 70px;     
    background-color:#eee; 
    position: absolute; 
    bottom:0;
    right: 100%; 
    width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="toggle">
 Text to click. This will be an image though.
</div>
<div id="myDiv">
 This text should slide out from left to right and overlap the onclick text.
</div>