Справка JQuery с наведением / исчезновением / анимацией изображения - PullRequest
0 голосов
/ 28 ноября 2009

Я хотел бы создать javascript / jquery, чтобы при наведении курсора на элемент

2 или 3 класса вызывались как парящие изображения, поскольку будут «слева», «середина» и «право». изображение. Слева и справа будет фиксированная ширина, но середина должна увеличиваться в соответствии с размером оставшейся ширины.

Я пытался использовать эффект lavalamp, однако это выглядит странно, останавливая движение, но это все, что я мог придумать / достичь. Однако потом я натолкнулся на другую проблему, с которой мне хотелось бы, чтобы изображение с наведением курсора на fadeIn и fadeOut.

Вы могли бы взглянуть на это меню, то, чего я достиг до сих пор - http://valkesh.000space.com

В основном код следующий -

<style type="text/css">
ul.nav { list-style:none;  overflow:hidden;  }
ul.nav li { float:left; height:39px; background-color:#666666;  padding:0 5px;  }
ul.nav li.last { -moz-border-radius-topright:9px; -webkit-border-top-right-radius:9px; 
-moz-border-radius-bottomright:9px; -webkit-border-bottom-right-radius:9px;
}
ul.nav li.bg { margin:7px 0px 0px 3px; padding-right:8px; position:absolute; z-index:50; left:155px; width:60px; background:url(bg-right.png) no-repeat right top; }
ul.nav li .left{ background:url(bg.png) no-repeat left top; height:39px;  }
ul.nav li a {padding:8px 20px;  color:#000000; font-size:18px; font-weight:bold; display:block; text-decoration:none; z-index:100; position:relative; }

</style>

<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
<script src="jquery.easing.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function()
{
   $('#nav1 li.bg').css({opacity: 0, visibility: "visible"});   

    $('#nav1 li a').hover(function()
    {
        var offset=$(this).offset();
        var thiswidth =$(this).width()+13;
        $('#nav1 li.bg').stop().animate({left:offset.left+"px",width:thiswidth+"px"},100);  
        $('#nav1 li.bg').css({opacity: 0, visibility: "visible"}).animate({opacity: 100});   
    },
    function()
    {
        $('#nav1 li.bg').stop().animate({left:"155px",width:"60px"},100); 
        $('#nav1 li.bg').css({opacity: 0, visibility: "visible"});   
    });    
});
</script>
<body>

<div class="menucontainer" style="margin-top:15px;">
   <ul class="nav" id="nav1">
        <li><a href="#">Home</a></li>   
        <li><a href="#">Services</a></li>
        <li><a href="#">Contact Us</a></li> 
        <li class="bg"><div class="left"></div></li>    
   </ul>
</div>
</body>

Буду признателен, если кто-нибудь поможет мне хотя бы навести на 2 или 3 изображения

Спасибо

1 Ответ

0 голосов
/ 28 ноября 2009

Попробуйте этот код, так как я думаю, что я получил его, чтобы делать то, что вы хотели. Я вытащил ваши анимации fadeIn и fadeOut и поместил их в отдельное наведение (для <ul>). Я не трогал CSS или HTML.

$(document).ready(function(){
 $('#nav1 li.bg').css({opacity: 0, visibility: "visible"});

 $('#nav1').hover(function(){
  $('#nav1 li.bg').animate({opacity: 1, visibility: "visible"},400);
 }, function(){
  $('#nav1 li.bg').animate({opacity: 0, visibility: "hidden"},400);
 })
 $('#nav1 li a').hover(function(){
  var offset=$(this).offset();
  var thiswidth =$(this).width()+13;
  $('#nav1 li.bg').animate({left:offset.left+"px",width:thiswidth+"px"},100);
 }, function(){
  $('#nav1 li.bg').animate({left:offset.left+"px",width:"60px"},100);       
 });
})
...