我希望检测图像尺寸放置在主图像中时,如果它高于某个高度,请将图像调整到一定高度。我遇到了这方面的问题,因为现在,当我通过点击缩略图选择另一个图像时,它似乎只检测到第一个图像并且当前没有响应。
放入主图像区域时的所有图像都应居中。
javascript不起作用,但我想我希望能朝着正确的方向前进。
$('.thumb-box').click(function() {
$(this).parent('.main-image').attr('src', '.thumb-box > img').fadeIn();
});
//Resize image
$('.main-image').each(function() {
if ($(this).height() > 550) { $(this).addClass('higher-than-max'); }
else if ($(this).height() <= 550) {$(this).addClass('not-higher-than-max');}
});
.parent{
border:1px solid purple;
height:100%;
width:80%;
float:Right;
}
.child{
border:1px solid red;
height:100%;
background:gray;
text-align:center;
}
.child-img{
display:inline-block;
max-width:100%;
margin:0 auto;
}
.image-wrapper{
width:100%;
background:orange;
}
.thumbnails img{
width:auto;
height:100%;
width:100%;
}
.thumbnails{
width:100px;
height:100px;
}
.thumb-box{
height:40%;
width:40%;
display:inline-block;
background:red;
}
.higher-than-max{
max-height:500px;
width:auto;
}
.not-higher-than-max{
max-height:100%;
width:auto;
}
<div class="parent">
<div class="child">
<div class="image-wrapper">
<img src="http://vignette2.wikia.nocookie.net/pokemon/images/b/b1/025Pikachu_XY_anime_3.png/revision/latest?cb=20140902050035" alt="374x333" class="main-image">
<div class="thumbnails">
<div class="thumb-box">
<img src="http://vignette2.wikia.nocookie.net/pokemon/images/b/b1/025Pikachu_XY_anime_3.png/revision/latest?cb=20140902050035" alt="374x333" class="child-img"> </div>
<div class="thumb-box">
<img src="https://i.kinja-img.com/gawker-media/image/upload/unnbgkdbmsszmazgxkmr.jpg" alt="800x450" class="child-img"></div>
<div class="thumb-box">
<img src="http://vignette3.wikia.nocookie.net/scratchpad/images/0/02/Pikachu.gif/revision/latest?cb=20150217015901" alt="" class="child-img">
</div>
<div class="thumb-box">
<img src="http://cdn.bulbagarden.net/upload/thumb/0/0d/025Pikachu.png/250px-025Pikachu.png" alt="" class="child-img">
</div>
</div>
</div>
</div>
答案 0 :(得分:3)
.click()
函数中存在几个问题:
.main-image
不是 thumb-box
的父级,因此您需要使用parents()
( 1 )< / sup>而不是parent()
选择更高级别的父级,然后导航到大图像 - ,它将是parents('.image-wrapper').find('.main-image')
。.attr('src', '.thumb-box > img')
会将字符串“。thumb-box&gt; img”注入大图片的src
属性,而不是注入图像的来源将.thumb-box
放入大图src
属性。将其更改为此
$('.thumb-box').click(function() {
// grab the src of the image nested in the just clicked tumb-box
var theSRC = $(this).find('img').attr('src');
// using parents() we grab the .image-wrapper, then the main-image nested inside it
// and inject the stored src value of the thumb-box image into the main-image source
$(this).parents('.image-wrapper').find('.main-image').attr('src', theSRC).fadeIn();
});
对于第二期“最大高度为550px ”你可以在CSS中完成,而无需在javascript中调整大小代码,因此删除不必要的代码( 2 ),只需将其添加到CSS ( 3 ):
.main-image {
max-height: 550px;
width: auto;
}
( 1 ) https://api.jquery.com/parents/
( 2 )除了删除//Resize image $('.main-image').each(...)
之外,还要从CSS中删除.higher-than-max
和.not-higher-than-max
个类,您不需要任何他们。
( 3 ),在变调max-height: 550px;
至250px
或300px