CSS3 equivalent to jQuery slideUp and slideDown?

前端 未结 10 1100
没有蜡笔的小新
没有蜡笔的小新 2020-12-04 08:12

My application is performing poorly with jQuery\'s slideDown and slideUp. I\'m looking to use a CSS3 equivalent in browsers which support it.

Is it possible, using C

相关标签:
10条回答
  • 2020-12-04 08:53
        try this for slide up slide down with animation 
    give your **height
    
            @keyframes slide_up{
                from{
                    min-height: 0;
                    height: 0px;
                    opacity: 0;
                }
                to{
                    height: 560px;
                    opacity: 1;
                }
            }
    
            @keyframes slide_down{
                from{
                    height: 560px;
                    opacity: 1;
                }
                to{
                    min-height: 0;
                    height: 0px;
                    opacity: 0;
                } 
            }
    
    0 讨论(0)
  • 2020-12-04 08:57

    You could do something like this:

    #youritem .fade.in {
        animation-name: fadeIn;
    }
    
    #youritem .fade.out {
        animation-name: fadeOut;
    }
    
    @keyframes fadeIn {
        0% {
            opacity: 0;
            transform: translateY(startYposition);
        } 
        100% {
            opacity: 1;
            transform: translateY(endYposition);
        }
    }
    
    @keyframes fadeOut {
        0% {
            opacity: 1;
            transform: translateY(startYposition);
        } 
        100% {
            opacity: 0;
            transform: translateY(endYposition);
        }
    }
    

    Example - Slide and Fade:

    This slides and animates the opacity - not based on height of the container, but on the top/coordinate. View example

    Example - Auto-height/No Javascript: Here is a live sample, not needing height - dealing with automatic height and no javascript.
    View example

    0 讨论(0)
  • 2020-12-04 08:57

    I changed your solution, so that it works in all modern browsers:

    css snippet:

    -webkit-transition: height 1s ease-in-out;
    -moz-transition: height 1s ease-in-out;
    -ms-transition: height 1s ease-in-out;
    -o-transition: height 1s ease-in-out;
    transition: height 1s ease-in-out;
    

    js snippet:

        var clone = $('#this').clone()
                    .css({'position':'absolute','visibility':'hidden','height':'auto'})
                    .addClass('slideClone')
                    .appendTo('body');
    
        var newHeight = $(".slideClone").height();
        $(".slideClone").remove();
        $('#this').css('height',newHeight + 'px');
    

    here's the full example http://jsfiddle.net/RHPQd/

    0 讨论(0)
  • 2020-12-04 08:59

    why not to take advantage of modern browsers css transition and make things simpler and fast using more css and less jquery

    Here is the code for sliding up and down

    Here is the code for sliding left to right

    Similarly we can change the sliding from top to bottom or right to left by changing transform-origin and transform: scaleX(0) or transform: scaleY(0) appropriately.

    0 讨论(0)
提交回复
热议问题