javascript - JQuery:图像库向下滑动图像并在 src 中淡入淡出

标签 javascript jquery html image animation

我有以下代码,可以在单击缩略图时交换主图像:

$('#thumbs img').click(function(){
    var imgsrc = $(this).attr('src');

    $('#mainphoto img').fadeOut(function(){
       $(this).attr('src', imgsrc).fadeIn();
    });
});

这里有一个工作示例:http://clarkeconstructions.com.au/newsite/index.php?id=8

有些图像是纵向照片,有些是横向照片(如果您单击示例中的第二个缩略图)。

我希望能够向下滑动图像,以使横向到纵向的过渡更加平滑,但我不确定如何使用当前的代码来实现这一点。

有人能给我任何关于我将使用什么语法来完成此任务的提示吗?

谢谢

最佳答案

您可以使用的一个技巧是:

  • 将所有原始图像尺寸存储在每个图像 data 属性内
  • 在将内部图像设置为 H: 100% 和 W: 100% 的情况下对容器 W/H 进行动画处理

jsBin demo

HTML:

<div id="projphotos">
  
  <div id="mainphoto"><img src="" /></div><!--MAINPHOTO-->
  
  <div id="projthumbs">
    <img src="images/image_1.jpg" /> 
    <img src="images/image_2.jpg" /> 
    <img src="images/image_3.jpg" /> 
  </div><!--PROJTHUMBS-->
  
</div>

CSS:

#mainphoto{ /* roXon */
   border-radius: 5px 5px 5px 5px;
   box-shadow: 0 0 5px #888888;
   padding: 10px;
   display:inline-block;
   *dispaly:inline;
   zoom:1;
   width:0;
   height:0;
}
#mainphoto img{
   position:relative;
   margin:0 auto;
   vertical-align:middle;
   width:100%;
   height:100%;
}
#projphotos img {
    /* removed properties */
    background-image: url("tmpimages/billie_holiday.png");
}

jQuery(存储/使用原始图像大小来动画主图像父级:)

$(window).load(function(){
  
  var imgs = $('#projthumbs img');

  $.each(imgs, function(i, el){
    $('<img>', {"src": this.src}).load(function(){
      $(el).data({'h': this.height, 'w': this.width});
      if(i===0){
        $(el).click(); 
      }
    });
  });
    
  $('#projthumbs img').click(function(){ 
      var imgsrc = this.src;
      var orgSize = { h: $(this).data('h'), w: $(this).data('w') };
  
      $('#mainphoto img').stop().fadeTo(400,0,function(){
         $(this).attr('src', imgsrc).fadeTo(400,1);
         $('#mainphoto').animate({height: orgSize.h, width: orgSize.w },400);
      });
  });
  
  $('#projthumbs img').eq(0).click();
});

关于javascript - JQuery:图像库向下滑动图像并在 src 中淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262266/

相关文章:

java - 通过 Javascript 进行 Vertx 3 应用程序日志记录

javascript - jquery animate.scrollTop() 在 mdl 链接中不起作用

javascript - 如何在react-native中显示从另一个js文件到当前文件的模式?

jquery - 使用 jQuery 在窗口中央突出显示唯一的 div

javascript - jQuery 与 Google map

javascript - 展开式可折叠 HTML 列表- ul - li

javascript - react ref.example.value 与 e.target.value

javascript - 如何将 JSON 值从 Controller 传递到 Thymeleaf 中的 HTML?

javascript - 滚动到一个链接并激活它

html - Flexbox 粘性页脚延伸到没有内容的页面底部