So you want neat animation effects on your UI? Seems like it might be a tricky implementation, right?
It could not be simpler with jQuery UI and other open source options. Here is an easy sample to pick up and run with from jQuery.com:
jQuery UI Effects
Animate.css makes it easy to implement modern UI animation effects that make for better user experience/cues
It could not be simpler with jQuery UI and other open source options. Here is an easy sample to pick up and run with from jQuery.com:
jQuery UI Effects
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Effects - Effect demo</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
.toggler {
width: 500px;
height: 200px;
position: relative;
}
#button {
padding: .5em 1em;
text-decoration: none;
}
#effect {
width: 240px;
height: 170px;
padding: 0.4em;
position: relative;
}
#effect h3 {
margin: 0;
padding: 0.4em;
text-align: center;
}
.ui-effects-transfer {
border: 2px dotted gray;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$(function () {
// run the currently selected effect
function runEffect() {
// get effect type from
var selectedEffect = $("#effectTypes").val();
// Most effect types need no options passed by default
var options = {};
// some effects have required parameters
if (selectedEffect === "scale") {
options = { percent: 50 };
} else if (selectedEffect === "transfer") {
options = { to: "#button", className: "ui-effects-transfer" };
} else if (selectedEffect === "size") {
options = { to: { width: 200, height: 60 } };
}
// Run the effect
$("#effect").effect(selectedEffect, options, 500, callback);
};
// Callback function to bring a hidden box back
function callback() {
setTimeout(function () {
$("#effect").removeAttr("style").hide().fadeIn();
}, 1000);
};
// Set effect from select menu value
$("#button").on("click", function () {
runEffect();
return false;
});
});
</script>
</head>
<body>
<div class="toggler" style="margin-top:200px;">
<div id="effect" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Effect</h3>
<p>
Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
</p>
</div>
</div>
<select name="effects" id="effectTypes">
<option value="blind">Blind</option>
<option value="bounce">Bounce</option>
<option value="clip">Clip</option>
<option value="drop">Drop</option>
<option value="explode">Explode</option>
<option value="fade">Fade</option>
<option value="fold">Fold</option>
<option value="highlight">Highlight</option>
<option value="puff">Puff</option>
<option value="pulsate">Pulsate</option>
<option value="scale">Scale</option>
<option value="shake">Shake</option>
<option value="size">Size</option>
<option value="slide">Slide</option>
<option value="transfer">Transfer</option>
</select>
<button id="button" class="ui-state-default ui-corner-all">Run Effect</button>
</body>
</html>
And one I whipped up from Animate.css...:
<html>
<head>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css">
<script>
$( document ).ready(function() {
myDiv = document.querySelector('#myDiv')
$("#buttonBounce").on("click", function () {
removeAllClasses();
myDiv.classList.add('animated', 'bounce')
});
$("#buttonSwing").on("click", function () {
removeAllClasses();
myDiv.classList.add('animated', 'swing')
});
$("#buttonWobble").on("click", function () {
removeAllClasses();
myDiv.classList.add('animated', 'wobble')
});
$("#buttonTada").on("click", function () {
removeAllClasses();
myDiv.classList.add('animated', 'tada')
});
$("#buttonBounceOut").on("click", function () {
removeAllClasses();
myDiv.classList.add('animated', 'bounceOutLeft')
});
function removeAllClasses(){
myDiv.classList.remove('animated', 'bounce', 'wobble', 'bounceOutLeft', 'tada', 'swing');
}
});
</script>
</head>
<body style="background:#000000;">
<div id="myDiv" style="margin-top:100px; margin-left:300px; width:250px; background:aqua; font-weight:bold; font-family:Arial; border: 2px solid lime; padding: 10px; border-radius: 25px;">~Something to animate~</h1>
<br/><br/>
<input type="button" id="buttonBounce" class="ui-state-default ui-corner-all" value="Bounce" />
</br><br/>
<input type="button" id="buttonTada" class="ui-state-default ui-corner-all" value="Tada" />
</br><br/>
<input type="button" id="buttonSwing" class="ui-state-default ui-corner-all" value="Swing" />
</br><br/>
<input type="button" id="buttonWobble" class="ui-state-default ui-corner-all" value="Wobble" />
</br><br/>
<input type="button" id="buttonBounceOut" class="ui-state-default ui-corner-all" value="Bounce Out" />
</br><br/>
</body>
</html>
This is what the Animate.css code above will look like..
Happy coding!
Codepens:
https://codepen.io/radagast27/pen/pooavXd
https://codepen.io/radagast27/pen/xxxYboM
References:
https://jqueryui.com/effect
https://github.com/daneden/animate.css
No comments:
Post a Comment