动画div到另一个div的右侧

时间:2013-12-08 23:40:45

标签: javascript jquery html css google-chrome

我有以下 HTML

    <table>
      <tr>
        <td id="portrait">
            <div id="photo"></div>
        </td>
      </tr>
    </table>

CSS

#portrait{
    width:120px;
    height:100px;
  top:20px;
    border: solid black 1px;
    position:relative;
  float: left;
}
#photo{
  width:inherit;
  height:inherit;
  position:inherit;
  float:inherit;
}
#ppo{
  opacity:0;
  background-color:green;
  float:left;
  position:relative;
  width:0px;
  left:30px;
}

的Javascript

console.clear();

    function photoOptions(){

        div = document.createElement("div");
        div.setAttribute("id", "ppo");
        div.style.height = $("#portrait").css("height");
      div.style.top = $("#portrait").css("top");

      $(div).appendTo('#portrait').animate({ opacity: 1, width: "350px" }, 'slow');
    }

    $( document ).ready( function(){

      var timer = null;

    $("#photo").mouseenter(function(){
        $("#photo").css({"cursor":"pointer"});
      timer = setTimeout(function(){
          $("#photo").css({"cursor":"wait"});
        timer = setTimeout(function(){
           photoOptions();
        },600);
      },500);
    });

    $("#portrait").mouseleave(function(){
       clearTimeout(timer);
        $("#ppo").fadeOut("slow",function() {
          $("#ppo").remove()
        });
    });

    });

我想要的是绿色div,它看起来是黑色边框右侧的“完美贴合”(相同高度)。 (看起来你必须将鼠标悬停在盒子上)。对此有何帮助?谢谢!

1 个答案:

答案 0 :(得分:1)

小提琴是你的朋友。 原版的 http://jsfiddle.net/NEBRZ/

你可以纯粹用CSS做到这一点 http://jsfiddle.net/ffsLC/

#portrait{
    width:120px;
    height:100px;
    top:20px;
    border: solid black 1px;
    position:relative;
    float: left;
    margin: 0px;
    padding: 0px;
}
#photo{
    width:inherit;
    height:inherit;
    position:inherit;
    float:inherit;
    opacity:0;
    background-color:green;
    float:left;
    position:relative;
    width:0px;
   -moz-transition: width 2s, opacity 2s, -moz-transform 2s;
   -webkit-transition: width 2s, opacity 2s, -webkit-transform 2s;
   -o-transition: width 2s, opacity 2s, -o-transform 2s;
    transition: width 2s, opacity 2s, transform 2s;
}
#portrait:hover #photo{
    opacity:1;
    width:100%;
}

编辑:

我更了解你想要的东西。我把它作为CSS过渡只是因为它更优雅http://jsfiddle.net/59Yfq/

您的原始代码插入了一个元素。经验法则:只需display:none;width:0;就足够了,无需在JS中创建和管理元素。如果您使用的是表格,请使用该表格