Lid |
|
Hi,
ben momenteel bezig met het leren van jQuery en wou een eigen slider maker. Nu werk de slider prima so far, en de effecten ook, alleen het eerste plaatje heeft geen effect.
Iemand die mij kan vertellen hoe ik dit kan realiseren? van alles geprobeerd maar niks werkt.
Onderaan zie je dat ik op het eerste plaatje een class "transition" toeken, dit werkt prima maar toch is het plaatje niet geanimeerd.
Hij heeft dus direct het eindresultaat en slaat de overgang van de animatie over.
Mijn code hier:
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8">
<title>Beta Slider</title>
<style type="text/css">
body {
background:#dedede;
}
.description {
width:611px;
position:absolute;
top:50%;
left:50%;
margin-top:-220px;
margin-left:-330px;
padding:12px;
border:12px solid #fff;
background:#D5D5D5;
font-family:Verdana;
font-size:12px;
}
.container {
width:660px;
position:absolute;
top:50%;
left:50%;
margin-left:-330px;
margin-top:-116px;
padding:12px;
box-sizing:border-box;
border:1px solid #dedede;
background:#fff;
}
.slide-viewer {
position:relative;
overflow:hidden;
height:312px;
}
.slide-viewer .slide-group {
width:100%;
height:100%;
position:relative;
}
.slide-viewer .slide-group .slide {
width:100%;
height:100%;
position:absolute;
display:none;
}
.slide-viewer .slide-group .slide:first-child {
display:block;
}
.slide-buttons {
position:absolute;
width:100%;
bottom:10px;
text-align: center;
}
.slide-btn {
border: none;
background: none;
color: #fff;
font-size: 200%;
line-height: 0.5em;
}
.slide-btn.active, .slide-btn:hover {
color: #F86C24;
cursor: pointer;
}
.slide-viewer .slide-group .slide .textarea {
position:absolute;
top:30px;
left:30px;
width:100%;
}
.slide-viewer .slide-group .slide .textarea p {
font-size:24px;
color:#FFFFFF;
margin:11px 0px 11px 0px;
}
.slide-viewer .slide-group .slide .textarea p .black {
background-image:url('bg.png');
background-repeat:repeat;
padding:5px;
}
.slide-viewer .slide-group .slide img {
-webkit-transition:8s all ease-in-out;
-moz-transition:8s all ease-in-out;
transition:8s all ease-in-out;
}
.transition {
-webkit-transform: scale(1.1) rotate(2deg);
-moz-transform: scale(1.1) rotate(2deg);
-o-transform: scale(1.1) rotate(2deg);
transform: scale(1.1) rotate(2deg);
}
.black a:link, .black a:visited {
color:#72C02C;
text-decoration:none;
border-bottom:1px solid #72C02C;
}
.green {
color:#72C02C;
font-weight:normal;
}
</style>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<div class="container slider">
<div class="slide-viewer">
<div class="slide-group">
<div class="slide slide-1">
<img src="slider1.jpg" alt="" />
<div class="textarea">
<p>
<span class="black">
<span class="normal"><a href="#" title="">Lorem ipsum</a> dolor sit amet</span>
</span>
</p>
<p>
<span class="black">
<span class="normal"><strong class="green">consectetuer</strong> adipiscing elit</span>
</span>
</p>
<p>
<span class="black">
<span class="normal">Typi non habent <strong class="green">claritatem</strong> insitam</span>
</span>
</p>
</div>
</div>
<div class="slide slide-2">
<img src="slider2.jpg" alt="" />
<div class="textarea">
<p>
<span class="black">
<span class="normal"><a href="#" title="">Lorem ipsum</a> dolor sit amet</span>
</span>
</p>
<p>
<span class="black">
<span class="normal"><strong class="green">consectetuer</strong> adipiscing elit</span>
</span>
</p>
<p>
<span class="black">
<span class="normal">Typi non habent <strong class="green">claritatem</strong> insitam</span>
</span>
</p>
</div>
</div>
<div class="slide slide-3">
<img src="slider3.jpg" alt="" />
<div class="textarea">
<p>
<span class="black">
<span class="normal"><a href="#" title="">Lorem ipsum</a> dolor sit amet</span>
</span>
</p>
<p>
<span class="black">
<span class="normal"><strong class="green">consectetuer</strong> adipiscing elit</span>
</span>
</p>
<p>
<span class="black">
<span class="normal">Typi non habent <strong class="green">claritatem</strong> insitam</span>
</span>
</p>
</div>
</div>
<div class="slide slide-4">
<img src="slider4.jpg" alt="" />
<div class="textarea">
<p>
<span class="black">
<span class="normal"><a href="#" title="">Lorem ipsum</a> dolor sit amet</span>
</span>
</p>
<p>
<span class="black">
<span class="normal"><strong class="green">consectetuer</strong> adipiscing elit</span>
</span>
</p>
<p>
<span class="black">
<span class="normal">Typi non habent <strong class="green">claritatem</strong> insitam</span>
</span>
</p>
</div>
</div>
</div>
</div>
<div class="slide-buttons">
</div>
</div>
<script language="javascript">
$('.slider').each(function() {
var $this = $(this);
var $group = $(this).find('.slide-group');
var $slides = $(this).find('.slide');
var buttonArray = [];
var currentIndex = 0;
var timeout;
function move(newIndex) {
var animateLeft;
var animateRight;
advance();
if($group.is(':animated') || currentIndex === newIndex) {
return;
}
buttonArray[currentIndex].removeClass('active');
buttonArray[newIndex].addClass('active');
if(newIndex > currentIndex) {
slideLeft = '100%';
animateLeft = '-100%';
} else {
slideLeft = '-100%';
animateLeft = '100%';
}
$slides.eq(newIndex).css({
left: slideLeft,
display: 'block',
});
$group.animate({
left: animateLeft
}, function(){
$slides.eq(newIndex).find('img').removeClass('transition');
$slides.eq(currentIndex).find('img').removeClass('transition');
$slides.eq(currentIndex).css({ display: 'none' });
$slides.eq(newIndex).css({ left: 0 });
$slides.eq(newIndex).find('img').addClass('transition');
$group.css({ left: 0 });
currentIndex = newIndex;
});
}
function advance() {
clearTimeout(timeout);
timeout = setTimeout(function(){
if(currentIndex < ($slides.length - 1)) {
move(currentIndex + 1);
} else {
move(0);
}
}, 8000);
}
$.each($slides, function(index) {
var $button = $('<button type="button" class="slide-btn">•</button>');
if(index === currentIndex) {
$button.addClass('active');
}
$button.on('click', function(){
move(index)
}).appendTo('.slide-buttons');
buttonArray.push($button);
});
advance();
$this.find('img:first').addClass('transition');
});
</script>
</body>
</html>
<!doctype html> body { background:#dedede; } .description { width:611px; position:absolute; top:50%; left:50%; margin-top:-220px; margin-left:-330px; padding:12px; border:12px solid #fff; background:#D5D5D5; font-family:Verdana; font-size:12px; } .container { width:660px; position:absolute; top:50%; left:50%; margin-left:-330px; margin-top:-116px; padding:12px; box-sizing:border-box; border:1px solid #dedede; background:#fff; } .slide-viewer { position:relative; overflow:hidden; height:312px; } .slide-viewer .slide-group { width:100%; height:100%; position:relative; } .slide-viewer .slide-group .slide { width:100%; height:100%; position:absolute; display:none; } .slide-viewer .slide-group .slide:first-child { display:block; } .slide-buttons { position:absolute; width:100%; bottom:10px; text-align: center; } .slide-btn { border: none; background: none; color: #fff; font-size: 200%; line-height: 0.5em; } .slide-btn.active, .slide-btn:hover { color: #F86C24; cursor: pointer; } .slide-viewer .slide-group .slide .textarea { position:absolute; top:30px; left:30px; width:100%; } .slide-viewer .slide-group .slide .textarea p { font-size:24px; color:#FFFFFF; margin:11px 0px 11px 0px; } .slide-viewer .slide-group .slide .textarea p .black { background-image:url('bg.png'); background-repeat:repeat; padding:5px; } .slide-viewer .slide-group .slide img { -webkit-transition:8s all ease-in-out; -moz-transition:8s all ease-in-out; transition:8s all ease-in-out; } .transition { -webkit-transform: scale(1.1) rotate(2deg); -moz-transform: scale(1.1) rotate(2deg); -o-transform: scale(1.1) rotate(2deg); transform: scale(1.1) rotate(2deg); } .black a:link, .black a:visited { color:#72C02C; text-decoration:none; border-bottom:1px solid #72C02C; } .green { color:#72C02C; font-weight:normal; } <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <div class="container slider"> <div class="slide-viewer"> <div class="slide-group"> <div class="slide slide-1"> <img src="slider1.jpg" alt="" /> <span class="normal"><a href="#" title="">Lorem ipsum </a> dolor sit amet </span> <div class="slide slide-2"> <img src="slider2.jpg" alt="" /> <span class="normal"><a href="#" title="">Lorem ipsum </a> dolor sit amet </span> <div class="slide slide-3"> <img src="slider3.jpg" alt="" /> <span class="normal"><a href="#" title="">Lorem ipsum </a> dolor sit amet </span> <div class="slide slide-4"> <img src="slider4.jpg" alt="" /> <span class="normal"><a href="#" title="">Lorem ipsum </a> dolor sit amet </span> <div class="slide-buttons"> <script language="javascript"> $('.slider').each(function() { var $this = $(this); var $group = $(this).find('.slide-group'); var $slides = $(this).find('.slide'); var buttonArray = []; var currentIndex = 0; var timeout; function move(newIndex) { var animateLeft; var animateRight; advance(); if($group.is(':animated') || currentIndex === newIndex) { return; } buttonArray[currentIndex].removeClass('active'); buttonArray[newIndex].addClass('active'); if(newIndex > currentIndex) { slideLeft = '100%'; animateLeft = '-100%'; } else { slideLeft = '-100%'; animateLeft = '100%'; } $slides.eq(newIndex).css({ left: slideLeft, display: 'block', }); $group.animate({ left: animateLeft }, function(){ $slides.eq(newIndex).find('img').removeClass('transition'); $slides.eq(currentIndex).find('img').removeClass('transition'); $slides.eq(currentIndex).css({ display: 'none' }); $slides.eq(newIndex).css({ left: 0 }); $slides.eq(newIndex).find('img').addClass('transition'); $group.css({ left: 0 }); currentIndex = newIndex; }); } function advance() { clearTimeout(timeout); timeout = setTimeout(function(){ if(currentIndex < ($slides.length - 1)) { move(currentIndex + 1); } else { move(0); } }, 8000); } $.each($slides, function(index) { var $button = $('<button type="button" class="slide-btn">•</button>'); if(index === currentIndex) { $button.addClass('active'); } $button.on('click', function(){ move(index) }).appendTo('.slide-buttons'); buttonArray.push($button); }); advance(); $this.find('img:first').addClass('transition'); });
|