Смена при клике "src" текущей на "href" следующей из списка
Приветствую.
Есть мини фото галерея, работает с применением библиотеки jQuery. html: <div id='bigfoto'><img src='http//..большая картинка..'></div> <ul id='smallfoto'> <li><a href='http..большая картинка..'><img src='http//..маленькая..'></a></li> <li><a href='http..большая картинка..'><img src='http//..маленькая..'></a></li> <li><a href='http..большая картинка..'><img src='http//..маленькая..'></a></li> </ul> При клики на превьюшки в блоке #smallfoto в блоке #bigfoto открывается большая картинка Как сделать чтобы при клике по большой картинке также была смена на большую картинку следующую по списку, по достижению последней переключалась на первую и так по кругу? вот пока такое решение:
$('#bigfoto img').click(function() {
var countImg = $('#smallfoto li a').length;
if (countImg > 1) {
if ($('#smallfoto li a').attr('href') == $(this).attr('src')) {
$(this).hide().attr('src',$('#smallfoto li a').parent('li').next().find('a').attr('href'));
$(this).load(function() {
$(this).fadeIn(1000);
});
}
}
imgSmall.fadeTo(500,1);
});
это не работает так как нужно, меняется только на вторую по списку и переключения дальше нет |
desertFox,
а как выглядит код при нажатии на маленькую картинку, |
Цитата:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style>body{
margin:0;
padding:0;
font:75%/120% Arial,Helvetica,sans-serif;
}
#bigfoto img{
border:solid 1px #ccc;
width:550px;
height:400px;
padding:5px;
}
#smallfoto a{
border:solid 1px #ccc;
width:100px;
height:100px;
padding:3px;
margin:2px;
float:left;
}
#smallfoto a:hover{
border-color:#FF9900;
}
#smallfoto li{
list-style:none;
}
#smallfoto{
margin:0;
padding:0;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script>
$(document)
.ready(function () {
var small = $("#smallfoto li img"),
big = $("#bigfoto img");
small.each(function (i, el) {
var next = i + 1 == small.size() ? 0 : i + 1;
$(el)
.click(
function (event) {
event.preventDefault();
if(big.data("next") == next) return;
big.fadeTo(500, 0.1, function () {
big.attr({
"src": $(el)
.parent()
.attr("href")
})
.data({
"next": next
});
});
big.fadeTo(800, 1);
}
)
});
big.data({
"next": 1
})
.click(function (event) {
small.eq($(this)
.data("next"))
.click()
})
});
</script>
</head>
<body>
<div id='bigfoto'><img src='http://ru.lookatcode.com/show/7580928785829615/img2-lg.jpg' title="next"></div>
<ul id='smallfoto'>
<li><a href="http://ru.lookatcode.com/show/7580928785829615/img2-lg.jpg" title="Image 2"><img src="http://ru.lookatcode.com/show/7580928785829615/img2-thumb.jpg"></a></li>
<li><a href="http://ru.lookatcode.com/show/7580928785829615/img3-lg.jpg" title="Image 3"><img src="http://ru.lookatcode.com/show/7580928785829615/img3-thumb.jpg"></a></li>
<li><a href="http://ru.lookatcode.com/show/7580928785829615/img4-lg.jpg" title="Image 4"><img src="http://ru.lookatcode.com/show/7580928785829615/img4-thumb.jpg"></a></li>
<li><a href="http://ru.lookatcode.com/show/7580928785829615/img5-lg.jpg" title="Image 5"><img src="http://ru.lookatcode.com/show/7580928785829615/img5-thumb.jpg"></a></li>
<li><a href="http://ru.lookatcode.com/show/7580928785829615/img6-lg.jpg" title="Image 6"><img src="http://ru.lookatcode.com/show/7580928785829615/img6-thumb.jpg"></a></li>
</ul>
</body>
</html>
|
круто, благодарю, поставил Ваш код,
при нажатии на маленькие картинки у меня был такой код:
$(document).ready(function() {
var imgBig = $('#bigfoto img');
imgSmall = $('#smallfoto li a');
imgSmall.click(function(event) {
event.preventDefault();
if (imgBig.attr('src') != $(this).attr('href')) {
imgBig.hide().attr('src',$(this).attr('href'));
imgBig.load(function() {
$(this).fadeIn(1000);
});
}
imgSmall.fadeTo(500,1);
$(this).fadeTo(500,0.6);
});
});
|
а куда условие вставить чтобы при повторном клике на одну и туже превьюшку снова не грузилась большая фотка? по идеи она уже загружена и при повторном клике зачем её снова грузить
|
Цитата:
|
благодарю, то что хотел
как быстро ответили, не ожидал если честно |
время анимации в 55 строке небыло проставлено. :thanks:
|
Цитата:
|
| Часовой пояс GMT +3, время: 17:34. |