Итак, мне нужен очень, очень простой слайдер изображений.Вместо того, чтобы бороться со слишком мощным плагином, я подумал, что просто напишу один.
Я положил его в скрипку здесь
Есть контейнерШирина div 620 пикселей, а ширина внутреннего div 1240 пикселей.Таким образом, только половина из них видна одновременно, и я просто оживляю левый атрибут внутреннего div.Foo перемещает его на первый слайд, а Bar Humbug перемещает его на второй.Это отлично работает.
Итак, меня попросили добавить таймер. Итак, каждые пять секунд он должен переходить на другой слайд, какой бы он ни был.Если вы переходите к другому слайду вручную, он ждет немного дольше, прежде чем снова перемещаться сам.Будучи общим программистом n00b, я пытался сделать это с if
s и переменными, что мне показалось логичным.
Однако что-то здесь не работает.Он счастливо перемещается ко второму слайду, но никогда не вернется сам по себе.Я предполагаю, что это как-то связано с тем, что переменные не читаются внутри различных функций, но они меняются, и console.logs сообщают правильное число.Так что, возможно, if
не читают переменные.Честно говоря, я немного растерялся, куда двигаться дальше.Любая помощь будет принята с благодарностью.Спасибо.
Я добавил приведенный ниже код, если скрипка не работает для кого-то, или если вы предпочитаете, чтобы она была встроена здесь.
Вот javascript
$(document).ready(function() {
var speed = 5000;
var timerOn = 0;
var slideNumber = 1;
console.log(slideNumber)
function slideTimer()
{
if (timerOn = 1) {
if (slideNumber=1) {
goToSlide2();
console.log(slideNumber)
}
else if (slideNumber=2) {
goToSlide1();
console.log(slideNumber)
}
};
}
function goToSlide2()
{
$('#slider_arrow').animate({left: '375px'}, 400);
$('#slider_content').animate({left: '-620px'}, 400, function(){
slideNumber=2;
window.setTimeout(function()
{
timerOn = 1;
}, speed);
});
}
function goToSlide1()
{
$('#slider_arrow').animate({left: '75px'}, 400);
$('#slider_content').animate({left: '0px'}, 400, function(){
slideNumber=1;
window.setTimeout(function()
{
timerOn = 1;
}, speed);
});
}
$('#isr_title span.slider_button.foo').click(function() {
timerOn = 0;
goToSlide1();
});
$('#isr_title span.slider_button.bar_humbug').click(function() {
timerOn = 0;
goToSlide2();
});
window.setInterval(
function()
{
slideTimer();
}, 4000);
});
Вот HTML
<div id="main" role="main" class="clearfix">
<div id="branding_section_buttons">
<h1 id="isr_title"><span class="slider_button foo">Foo</span> <span class="slider_button bar_humbug"> Bar Humbug</span></h1>
<div id="slider_arrow" class="target_independent">
</div>
</div>
<div id="slider">
<div id="slider_content" class="clearfix">
<p>Our <span class="highlight">lorem</span> ipsum lorem ipsum lorem ipsum lorem ipsum <span class="highlight">lorem</span> ipsum <span class="highlight">lorem</span> ipsum.</p>
<img src="http://placekitten.com/280/200" alt="" width="280" height="200">
<p style="color: red;">Our <span class="highlight">lorem</span> ipsum lorem ipsum lorem ipsum lorem ipsum <span class="highlight">lorem</span> ipsum <span class="highlight">lorem</span> ipsum.</p>
<img src="http://placekitten.com/280/200" alt="" width="280" height="200">
</div>
</div>
Вот соответствующий CSS
#slider
{
position: relative;
width: 600px;
margin-bottom: 20px;
margin-right: 20px;
overflow:hidden;
height: 200px;
}
#slider_content
{
width: 1240px;
position: absolute;
}
#slider_content p, #slider_content img
{
float: left;
width: 300px;
}
#slider_content p
{
font-size:182%;
line-height: 1.2;
font-weight: 300;
}
#slider_content p span.highlight
{
font-weight: 700;
color: #445daa;
}
#slider_content img
{
margin-right: 20px;
}
#slider_content
{
width: 1240px;
position: absolute;
}
#slider_content p, #slider_content img
{
float: left;
width: 300px;
}
#slider_content p
{
font-size:182%;
line-height: 1.2;
font-weight: 300;
}
#slider_content p span.highlight
{
font-weight: 700;
color: #445daa;
}
#slider_content img
{
margin-right: 20px;
}