jQuery UI & Effects: Switch class

This entry is part 6 of 10 in the series jQuery UI Effects

jQuery UI Effects – switchClass Demo

Add and remove class(es) to elements while animating with changes in style.

<!doctype html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <title>jQuery UI Effects - switchClass Demo</title>
    <link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
    <script src='//code.jquery.com/jquery-1.9.1.js'></script>
    <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
    <link rel='stylesheet' href='https://codecrawl.com/code/jqueryui/jqueryui_style.css'>
    <style>
        .toggler {
            width: 500px;
            height: 200px;
            position: relative;
        }

        #button {
            padding: .5em 1em;
            text-decoration: none;
        }

        #effect {
            position: relative;
        }

        .newClass {
            width: 240px;
            padding: 1em;
            letter-spacing: 0;
            font-size: 1.2em;
            margin: 0;
        }

        .anotherNewClass {
            text-indent: 40px;
            letter-spacing: .4em;
            width: 410px;
            height: 100px;
            padding: 30px;
            margin: 10px;
            font-size: 1.6em;
        }
    </style>
    <script>
        $(function () {
            $('#button').click(function () {
                $('.newClass').switchClass('newClass', 'anotherNewClass', 1000);
                $('.anotherNewClass').switchClass('anotherNewClass', 'newClass', 1000);
                return false;
            });
        });
    </script>
</head>
<body>

<div class='toggler'>
    <div id='effect' class='newClass ui-corner-all'>
        Sorry that I have confused you.  I am switching in and out of a class.
    </div>
</div>
<a href='#' id='button' class='ui-state-default ui-corner-all'>Run Effect</a>

</body>
</html>
Try The Code

jQuery UI & Effects: Easing Effects

This entry is part 7 of 10 in the series jQuery UI Effects

jQuery UI Effects – Easing demo

All the easing effects in one page.  Just click on the graphs above to see the effects.

<!doctype html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <title>jQuery UI Effects - Easing demo</title>
    <link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
    <script src='//code.jquery.com/jquery-1.9.1.js'></script>
    <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
    <link rel='stylesheet' href='https://codecrawl.com/code/jqueryui/jqueryui_style.css'>
    <style>
        .graph {
            float: left;
            margin-left: 10px;
        }
    </style>
    <script>
        $(function () {
            if (!$('<canvas>')[0].getContext) {
                $('<div>').text(
                        'Your browser does not support canvas, which is required for this demo.'
                ).appendTo('#graphs');
                return;
            }

            var i = 0,
                    width = 100,
                    height = 100;

            $.each($.easing, function (name, impl) {
                var graph = $('<div>').addClass('graph').appendTo('#graphs'),
                        text = $('<div>').text(++i + '. ' + name).appendTo(graph),
                        wrap = $('<div>').appendTo(graph).css('overflow', 'hidden'),
                        canvas = $('<canvas>').appendTo(wrap)[ 0 ];

                canvas.width = width;
                canvas.height = height;
                var drawHeight = height * 0.8,
                        cradius = 10;
                ctx = canvas.getContext('2d');
                ctx.fillStyle = 'black';

                // draw background
                ctx.beginPath();
                ctx.moveTo(cradius, 0);
                ctx.quadraticCurveTo(0, 0, 0, cradius);
                ctx.lineTo(0, height - cradius);
                ctx.quadraticCurveTo(0, height, cradius, height);
                ctx.lineTo(width - cradius, height);
                ctx.quadraticCurveTo(width, height, width, height - cradius);
                ctx.lineTo(width, 0);
                ctx.lineTo(cradius, 0);
                ctx.fill();

                // draw bottom line
                ctx.strokeStyle = '#555';
                ctx.beginPath();
                ctx.moveTo(width * 0.1, drawHeight + .5);
                ctx.lineTo(width * 0.9, drawHeight + .5);
                ctx.stroke();

                // draw top line
                ctx.strokeStyle = '#555';
                ctx.beginPath();
                ctx.moveTo(width * 0.1, drawHeight * .3 - .5);
                ctx.lineTo(width * 0.9, drawHeight * .3 - .5);
                ctx.stroke();

                // plot easing
                ctx.strokeStyle = 'white';
                ctx.beginPath();
                ctx.lineWidth = 2;
                ctx.moveTo(width * 0.1, drawHeight);
                $.each(new Array(width), function (position) {
                    var state = position / width,
                            val = impl(state, position, 0, 1, width);
                    ctx.lineTo(position * 0.8 + width * 0.1,
                                    drawHeight - drawHeight * val * 0.7);
                });
                ctx.stroke();

                // animate on click
                graph.click(function () {
                    wrap
                            .animate({ height: 'hide' }, 2000, name)
                            .delay(800)
                            .animate({ height: 'show' }, 2000, name);
                });

                graph.width(width).height(height + text.height() + 10);
            });
        });
    </script>
</head>
<body>

<div id='graphs'></div>

</body>
</html>
Try The Code

jQuery UI & Effects: Diplay and show elements

This entry is part 8 of 10 in the series jQuery UI Effects

jQuery UI Effects – Show Demo

Display elements using custom effects.

<!doctype html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <title>jQuery UI Effects - Show Demo</title>
    <link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
    <script src='//code.jquery.com/jquery-1.9.1.js'></script>
    <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
    <link rel='stylesheet' href='https://codecrawl.com/code/jqueryui/jqueryui_style.css'>
    <style>
        .toggler {
            width: 500px;
            height: 200px;
        }

        #button {
            padding: .5em 1em;
            text-decoration: none;
        }

        #effect {
            width: 240px;
            height: 135px;
            padding: 0.4em;
            position: relative;
        }

        #effect h3 {
            margin: 0;
            padding: 0.4em;
            text-align: center;
        }
    </style>
    <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: 100 };
                } else if (selectedEffect === 'size') {
                    options = { to: { width: 280, height: 185 } };
                }

                // run the effect
                $('#effect').show(selectedEffect, options, 500, callback);
            };

            //callback function to bring a hidden box back
            function callback() {
                setTimeout(function () {
                    $('#effect:visible').removeAttr('style').fadeOut();
                }, 1000);
            };

            // set effect from select menu value
            $('#button').click(function () {
                runEffect();
                return false;
            });

            $('#effect').hide();
        });
    </script>
</head>
<body>

<div class='toggler'>
    <div id='effect' class='ui-widget-content ui-corner-all'>
        <h3 class='ui-widget-header ui-corner-all'>Show</h3>

        <p>
            Just show up, baby.
        </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='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>
</select>

<a href='#' id='button' class='ui-state-default ui-corner-all'>Run Effect</a>

</body>
</html>
Try The Code

jQuery UI & Effects: Hide Elements Using Custom Effects

This entry is part 9 of 10 in the series jQuery UI Effects

jQuery UI Effects – Hide Demo

Click the button above to preview the effect.

<!doctype html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <title>jQuery UI Effects - Hide Demo</title>
    <link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
    <script src='//code.jquery.com/jquery-1.9.1.js'></script>
    <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
    <link rel='stylesheet' href='https://codecrawl.com/code/jqueryui/jqueryui_style.css'>
    <style>
        .toggler {
            width: 500px;
            height: 200px;
        }

        #button {
            padding: .5em 1em;
            text-decoration: none;
        }

        #effect {
            width: 240px;
            height: 135px;
            padding: 0.4em;
            position: relative;
        }

        #effect h3 {
            margin: 0;
            padding: 0.4em;
            text-align: center;
        }
    </style>
    <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: 0 };
                } else if (selectedEffect === 'size') {
                    options = { to: { width: 200, height: 60 } };
                }

                // run the effect
                $('#effect').hide(selectedEffect, options, 1000, 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').click(function () {
                runEffect();
                return false;
            });
        });
    </script>
</head>
<body>

<div class='toggler'>
    <div id='effect' class='ui-widget-content ui-corner-all'>
        <h3 class='ui-widget-header ui-corner-all'>Hide</h3>

        <p>
            I will be gone. See you all.
        </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='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>
</select>

<a href='#' id='button' class='ui-state-default ui-corner-all'>Run Effect</a>

</body>
</html>
Try The Code

jQuery UI & Effects: Remove Class

This entry is part 10 of 10 in the series jQuery UI Effects

jQuery UI Effects – removeClass Demo

Removes class(es) from elements while animating all style changes.

<!doctype html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <title>jQuery UI Effects - removeClass Demo</title>
    <link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
    <script src='//code.jquery.com/jquery-1.9.1.js'></script>
    <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
    <link rel='stylesheet' href='https://codecrawl.com/code/jqueryui/jqueryui_style.css'>
    <style>
        .toggler {
            width: 500px;
            height: 200px;
            position: relative;
        }

        #button {
            padding: .5em 1em;
            text-decoration: none;
        }

        #effect {
            position: relative;
            width: 240px;
            padding: 1em;
            letter-spacing: 0;
            font-size: 1.2em;
            border: 1px solid #000;
            background: #eee;
            color: #333;
        }

        .newClass {
            text-indent: 40px;
            letter-spacing: .4em;
            width: 410px;
            height: 100px;
            padding: 30px;
            margin: 10px;
            font-size: 1.6em;
        }
    </style>
    <script>
        $(function () {
            $('#button').click(function () {
                $('#effect').removeClass('newClass', 1000, callback);
                return false;
            });

            function callback() {
                setTimeout(function () {
                    $('#effect').addClass('newClass');
                }, 1500);
            }
        });
    </script>
</head>
<body>

<div class='toggler'>
    <div id='effect' class='newClass ui-corner-all'>
        You can not be incredible hulk all the time.
    </div>
</div>

<a href='#' id='button' class='ui-state-default ui-corner-all'>Run Effect</a>

</body>
</html>
Try The Code