Reputation: 524
I wanted to add a transition for the slide show which i am making for one of my page..
Here is the code,
var index= 1;
var toggle=0;
function plusIndex(n){
index = index + n;
showImage(n);
}
showImage(1);
function showImage(n){
var i;
var x = document.getElementsByClassName("placestovisit");
if (index > x.length) {index=1};
if (index < 1) {index= x.length};
for (i=0; i<x.length; i++)
{
x[i].style.display="none";
}
x[index-1].style.display= "block";
}
autoSlide();
function autoSlide(){
if (toggle) {return};
var i;
var x = document.getElementsByClassName("placestovisit");
for (i=0; i<x.length; i++)
{
x[i].style.display="none";
}
if (index > x.length) {index = 1};
x[index-1].style.display= "block";
index++;
setTimeout(autoSlide, 4000);
}
<body style="height:100%;">
<div id="placescontainer">
<div class="placestovisit fade">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Hanumangundi_Falls.jpg/1200px-Hanumangundi_Falls.jpg" alt="" />
<h1>Hanumanagundi Falls</h1>
<h2 > Suthanabbe Falls or Hanumanagundi Falls is located in the hilly surroundings of the Kudremukh National Park in the Chikkamagaluru district of Karnataka, India.
Suthanabbe Falls is located between Karkala and Lakya dam in the Kudremukh national park. The water falls from a height of 22 meters creating a scenic surroundings around it.</h2>
</div>
<div class="placestovisit fade">
<img src="https://upload.wikimedia.org/wikipedia/commons/4/4b/Hampi_virupaksha_temple.jpg" alt="" />
<h1> Hambi(Hambe) </h1>
<h2> Hampi (Hampe) is a village and temple town recognised as a UNESCO World Heritage Site, listed as the Group of Monuments at Hampi. in northern Karnataka, India. It was one of the richest and largest cities in the world during its prime. It is located within the ruins of the city of Vijayanagara, the former capital of the Vijayanagara Empire. Predating the city of Vijayanagara, Hampi continues to be an important religious centre, housing the Virupaksha Temple and several other monuments belonging to the old city. According to statistics of 2014, Hampi is the most searched historical place in Karnataka on Google.</h2>
</div>
<div class="placestovisit w3-animate-fading">
<img src="http://www.thebetterindia.com/wp-content/uploads/2012/09/IMG_0750-Com-800x533.jpg" alt="" />
<h1> Agumbe </h1>
<h2> Agumbe is a hill station which can be reached by bikes or cars. The way to this place is a diversion from Parkala (The diversion is just a few kms from DT). The best part of the trip to Agumbe is the ride. Beautiful sceneries on both sides will keep company all along the way. This place is abount 45 km from Manipal. Agumbe is one of the highest peaks of the Western Ghats located about 60kms from Udupi. Situated at a height of 830 metres from sea level, it overlooks the Arabian Sea. Agumbe is part of the Shimoga district which is a neighboring district of Udupi. </h2>
</div>
<div class="placestovisit fade">
<img src="https://d28dwf34zswvrl.cloudfront.net/wp-content/uploads/2017/01/kerala-carbon-neutral-panchayat.jpg" alt="" />
<h1> Kerala </h1>
<h2> The border of Kerala is just 75 km from Manipal. The 300-year-old Bekal Fort, shaped like a giant key-hole, is one of the largest and best-preserved forts in Kerala. Surrounded by a splendid beach, the historic Bekal Fort offers a superb view of the Arabian Sea from its tall observation towers, where a few centuries ago huge cannons used to be placed. Today, it is one of the favourite spots for film-makers because the Bekal Fort and its surroundings with backwaters and hilly destinations make fascinating locales. This fort was made by Tipu Sultan and is built right next to the sea. The popular song 'Tu Hi Re' was picturised with this fort in the backdrop.</h2>
</div>
<div class="placestovisit fade">
<img src="http://udupitoday.com/udtoday/images/uploads/January/images/jan1431attur1.jpg" alt="" />
<h1> Attur church </h1>
<h2> Attur Church situated in the outskirts of Karkala town in Karnataka state — India. It is situated 58 km from Mangalore.
Placed amidst placid greenery, the Attur-Karkala parish has a rich history with its origin tracing back to 1759. Moreover it is known for its miraculous history. Miracle, history, beauty, social activities, all bundled into one.
Unlike others, the church is a place of worship and belief for all, irrespective of caste and creed. An vidence for universal peace and brotherhood. People from all walks of the society come here to offer their prayers to St Lawrence</h2>
</div>
<button class="btn" onclick="plusIndex(-1)" id="btn1"> ❮</button>
<button class="btn" onclick="plusIndex(1)" id="btn2"> ❯</button>
<button class="play" onclick="toggle=1-toggle; autoSlide()" id="btn3"> Play/Pause </button>
</div>
</body>
I am newbie to javascript as well as css.
The above works properly, which out transition offline, I dont know what is the problem in fiddle. I think that there is some small misunderstanding, with that..
Could any one help me in adding a slide transition.
I need something like the link http://www.devtrix.net/sliderman/examples.html
Upvotes: 2
Views: 1479
Reputation: 2294
The simple fade in-out effect can be done trough css as follows. The tile effect will require much more coding ;)
var index = 1;
var toggle = 0;
function plusIndex(n) {
index = index + n;
showImage(n);
}
showImage(1);
function showImage(n) {
var i;
var x = document.getElementsByClassName("placestovisit");
if (index > x.length) {
index = 1
};
if (index < 1) {
index = x.length
};
for (i = 0; i < x.length; i++) {
x[index - 1].style.opacity = 0
}
x[index - 1].style.opacity = 0;
if (x[index - 1].className.indexOf('initial') == -1) {
x[index - 1].className += ' initial';
}
x[index - 1].style.opacity = 1;
}
autoSlide();
function autoSlide() {
if (toggle) {
return
};
var i;
var x = document.getElementsByClassName("placestovisit");
for (i = 0; i < x.length; i++) {
x[i].style.opacity = 0;
}
if (index > x.length) {
index = 1
};
x[index - 1].style.opacity = 0;
if (x[index - 1].className.indexOf('initial') == -1) {
x[index - 1].className += ' initial';
}
x[index - 1].style.opacity = 1;
index++;
setTimeout(autoSlide, 4000);
}
.initial {
-webkit-transition: opacity 2s;
transition: opacity 2s;
}
#placescontainer {
position: relative;
clear: both;
height: 1500px;
}
.fade {
position: absolute;
top: 0;
left: 0;
}
<body style="height:100%;">
<div id="placescontainer">
<div class="placestovisit fade">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Hanumangundi_Falls.jpg/1200px-Hanumangundi_Falls.jpg" alt="" />
<h1>Hanumanagundi Falls</h1>
<h2> Suthanabbe Falls or Hanumanagundi Falls is located in the hilly surroundings of the Kudremukh National Park in the Chikkamagaluru district of Karnataka, India. Suthanabbe Falls is located between Karkala and Lakya dam in the Kudremukh national park.
The water falls from a height of 22 meters creating a scenic surroundings around it.</h2>
</div>
<div class="placestovisit fade">
<img src="https://upload.wikimedia.org/wikipedia/commons/4/4b/Hampi_virupaksha_temple.jpg" alt="" />
<h1> Hambi(Hambe) </h1>
<h2> Hampi (Hampe) is a village and temple town recognised as a UNESCO World Heritage Site, listed as the Group of Monuments at Hampi. in northern Karnataka, India. It was one of the richest and largest cities in the world during its prime. It is located
within the ruins of the city of Vijayanagara, the former capital of the Vijayanagara Empire. Predating the city of Vijayanagara, Hampi continues to be an important religious centre, housing the Virupaksha Temple and several other monuments belonging
to the old city. According to statistics of 2014, Hampi is the most searched historical place in Karnataka on Google.</h2>
</div>
<div class="placestovisit w3-animate-fading">
<img src="http://www.thebetterindia.com/wp-content/uploads/2012/09/IMG_0750-Com-800x533.jpg" alt="" />
<h1> Agumbe </h1>
<h2> Agumbe is a hill station which can be reached by bikes or cars. The way to this place is a diversion from Parkala (The diversion is just a few kms from DT). The best part of the trip to Agumbe is the ride. Beautiful sceneries on both sides will
keep company all along the way. This place is abount 45 km from Manipal. Agumbe is one of the highest peaks of the Western Ghats located about 60kms from Udupi. Situated at a height of 830 metres from sea level, it overlooks the Arabian Sea. Agumbe
is part of the Shimoga district which is a neighboring district of Udupi. </h2>
</div>
<div class="placestovisit fade">
<img src="https://d28dwf34zswvrl.cloudfront.net/wp-content/uploads/2017/01/kerala-carbon-neutral-panchayat.jpg" alt="" />
<h1> Kerala </h1>
<h2> The border of Kerala is just 75 km from Manipal. The 300-year-old Bekal Fort, shaped like a giant key-hole, is one of the largest and best-preserved forts in Kerala. Surrounded by a splendid beach, the historic Bekal Fort offers a superb view of
the Arabian Sea from its tall observation towers, where a few centuries ago huge cannons used to be placed. Today, it is one of the favourite spots for film-makers because the Bekal Fort and its surroundings with backwaters and hilly destinations
make fascinating locales. This fort was made by Tipu Sultan and is built right next to the sea. The popular song 'Tu Hi Re' was picturised with this fort in the backdrop.</h2>
</div>
<div class="placestovisit fade">
<img src="http://udupitoday.com/udtoday/images/uploads/January/images/jan1431attur1.jpg" alt="" />
<h1> Attur church </h1>
<h2> Attur Church situated in the outskirts of Karkala town in Karnataka state — India. It is situated 58 km from Mangalore. Placed amidst placid greenery, the Attur-Karkala parish has a rich history with its origin tracing back to 1759. Moreover it
is known for its miraculous history. Miracle, history, beauty, social activities, all bundled into one. Unlike others, the church is a place of worship and belief for all, irrespective of caste and creed. An vidence for universal peace and brotherhood.
People from all walks of the society come here to offer their prayers to St Lawrence</h2>
</div>
</div>
<button class="btn" onclick="plusIndex(-1)" id="btn1"> ❮</button>
<button class="btn" onclick="plusIndex(1)" id="btn2"> ❯</button>
<button class="play" onclick="toggle=1-toggle; autoSlide()" id="btn3"> Play/Pause </button>
</body>
Upvotes: 1
Reputation: 56
The problem is that you are swapping the css display property to display: none, which is instantly making the div invisible, not waiting for any fades.
Instead of turning the display on/off at once, try fadeOut:
fadeOut("slow", function () {
$(this).css({display:"none"});
});
The difference is that the second parameter of fadeOut is a callback function which runs after the fadeout is completed.
Upvotes: 3
Reputation: 4181
You can use css and make your Slider change images Like Fading, zoom,..
animate-fading{animation:fading 10s infinite}@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
animate-zoom {animation:animatezoom 0.6s}@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
animate-top{position:relative;animation:animatetop 0.4s}@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
Also you can use SildeShow Maker softwares like Amazing Slider. easy download, easy use: download link
See a jsfiddle example: jsfiddle
Upvotes: 3
Reputation: 803
Have a look at below snippet. I have introduced jQuery for simple animation effects.
Effect Used: jQuery.fadeIn
jQuery also has lot of other animation effects which can be used in the place where jQuery.fadeIn
is being used.
Have a look jQuery.animate
method
And also I have cleaned up some code and wrote a simple logic to display next place in autoSlide
var index = 0,
totalPlaceCount = 0;
function plusIndex(n) {
index = index + n;
showImage(index);
}
function updateVisible(index) {
$(".placestovisit").css({
display: "none"
});
var targetPlace = $($(".placestovisit").get(index));
targetPlace.fadeIn(1000);
//console.log("Showing : ", index);
}
function showImage(n) {
updateVisible(n);
}
function autoSlide() {
index++;
var targetPlaceToShow = index % totalPlaceCount;
showImage(targetPlaceToShow);
setTimeout(autoSlide, 4000);
}
$(document).ready(function() {
totalPlaceCount = $(".placestovisit").length;
$("#btn1").on("click", plusIndex.bind(null, -1));
$("#btn2").on("click", plusIndex.bind(null, 1));
autoSlide();
});
.html .body {
height: 100%;
}
#placescontainer {
position: relative;
width: 100%;
height: 100%;
margin: 0 auto;
border: 1px solid black;
}
#placescontainer img {
width: 100%;
height: 100%;
position: absolute;
-webkit-transition: width 2s, height 4s;
/* For Safari 3.1 to 6.0 */
transition: width 2s, height 4s;
}
#placescontainer .btn {
position: absolute;
width: 50px;
height: 50px;
border: 2px solid;
border-radius: 50px;
top: 50%;
background: none;
color: white;
font-size: 20px;
}
#placescontainer .play {
position: absolute;
height: 50px;
border: 2px solid;
top: 20%;
right: 10%;
color: white;
border-radius: 20px;
background: none;
font-size: 20px;
}
#placescontainer .play:hover {
position: absolute;
height: 50px;
border: 2px solid;
top: 20%;
right: 10%;
color: white;
border-radius: 20px;
background: #06445F;
font-size: 20px;
}
#placescontainer #btn2 {
position: relative;
float: right;
}
#placescontainer #btn3 {
position: absolute;
top: 5%;
}
#placescontainer #btn1:hover {
background: #06445F;
}
#placescontainer #btn2:hover {
background: #06445F;
}
.placestovisit {
position: absolute;
width: 100%;
height: 100%;
}
.placestovisit h1 {
position: absolute;
display-type: block;
top: 17%;
left: 5%;
color: white;
border: 2px solid;
padding: 10px;
}
.placestovisit h1:hover {
position: absolute;
display-type: block;
top: 17%;
left: 5%;
color: white;
border: 2px solid;
background: #06445F;
padding: 10px;
}
.placestovisit h2 {
position: absolute;
color: white;
top: 30%;
left: 5%;
width: 30%;
font: 15px/25px Serif;
font-weight: 300;
padding: 10px;
border-radius: 15px;
background: rgba(4, 10, 12, 0.6);
}
.placestovisit h2:hover {
position: absolute;
color: white;
top: 30%;
left: 5%;
width: 30%;
font: 15px/25px Serif;
font-weight: 300;
padding: 10px;
border-radius: 15px;
background: #06445F;
}
.fade {
-webkit-animation-name: fade;
-webkit-animation-duration: 2.5s;
animation-name: fade;
animation-duration: 2.5s;
}
@-webkit-keyframes fade {
from {
opacity: .4
}
to {
opacity: 1
}
}
@keyframes fade {
from {
opacity: .4
}
to {
opacity: 1
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="placescontainer">
<div class="placestovisit fade">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Hanumangundi_Falls.jpg/1200px-Hanumangundi_Falls.jpg" alt="" />
<h1>Hanumanagundi Falls</h1>
<h2> Suthanabbe Falls or Hanumanagundi Falls is located in the hilly surroundings of the Kudremukh National Park in the Chikkamagaluru district of Karnataka, India. Suthanabbe Falls is located between Karkala and Lakya dam in the Kudremukh national park.
The water falls from a height of 22 meters creating a scenic surroundings around it.</h2>
</div>
<div class="placestovisit fade">
<img src="https://upload.wikimedia.org/wikipedia/commons/4/4b/Hampi_virupaksha_temple.jpg" alt="" />
<h1> Hambi(Hambe) </h1>
<h2> Hampi (Hampe) is a village and temple town recognised as a UNESCO World Heritage Site, listed as the Group of Monuments at Hampi. in northern Karnataka, India. It was one of the richest and largest cities in the world during its prime. It is located
within the ruins of the city of Vijayanagara, the former capital of the Vijayanagara Empire. Predating the city of Vijayanagara, Hampi continues to be an important religious centre, housing the Virupaksha Temple and several other monuments belonging
to the old city. According to statistics of 2014, Hampi is the most searched historical place in Karnataka on Google.</h2>
</div>
<div class="placestovisit w3-animate-fading">
<img src="http://www.thebetterindia.com/wp-content/uploads/2012/09/IMG_0750-Com-800x533.jpg" alt="" />
<h1> Agumbe </h1>
<h2> Agumbe is a hill station which can be reached by bikes or cars. The way to this place is a diversion from Parkala (The diversion is just a few kms from DT). The best part of the trip to Agumbe is the ride. Beautiful sceneries on both sides will keep
company all along the way. This place is abount 45 km from Manipal. Agumbe is one of the highest peaks of the Western Ghats located about 60kms from Udupi. Situated at a height of 830 metres from sea level, it overlooks the Arabian Sea. Agumbe is
part of the Shimoga district which is a neighboring district of Udupi. </h2>
</div>
<div class="placestovisit fade">
<img src="https://d28dwf34zswvrl.cloudfront.net/wp-content/uploads/2017/01/kerala-carbon-neutral-panchayat.jpg" alt="" />
<h1> Kerala </h1>
<h2> The border of Kerala is just 75 km from Manipal. The 300-year-old Bekal Fort, shaped like a giant key-hole, is one of the largest and best-preserved forts in Kerala. Surrounded by a splendid beach, the historic Bekal Fort offers a superb view of the
Arabian Sea from its tall observation towers, where a few centuries ago huge cannons used to be placed. Today, it is one of the favourite spots for film-makers because the Bekal Fort and its surroundings with backwaters and hilly destinations make
fascinating locales. This fort was made by Tipu Sultan and is built right next to the sea. The popular song 'Tu Hi Re' was picturised with this fort in the backdrop.</h2>
</div>
<div class="placestovisit fade">
<img src="http://udupitoday.com/udtoday/images/uploads/January/images/jan1431attur1.jpg" alt="" />
<h1> Attur church </h1>
<h2> Attur Church situated in the outskirts of Karkala town in Karnataka state — India. It is situated 58 km from Mangalore. Placed amidst placid greenery, the Attur-Karkala parish has a rich history with its origin tracing back to 1759. Moreover it is
known for its miraculous history. Miracle, history, beauty, social activities, all bundled into one. Unlike others, the church is a place of worship and belief for all, irrespective of caste and creed. An vidence for universal peace and brotherhood.
People from all walks of the society come here to offer their prayers to St Lawrence</h2>
</div>
<button class="btn" id="btn1"> ❮</button>
<button class="btn" id="btn2"> ❯</button>
<button class="play" onclick="toggle=1-toggle; autoSlide()" id="btn3"> Play/Pause </button>
</div>
Upvotes: 1