滚动到顶部或底部后效果很简单

时间:2016-05-09 22:41:01

标签: javascript jquery css scrollbars

我需要你的帮助来改善我的scipt中的错误。有谁能告诉我我做错了什么?

我使用两个插件。 First用于更改自定义滚动条,Second由我剪切并粘贴到第一个调用中。 以下是带注释的代码。

/* Set custom scrollbar for content-section */
    jQuery('.carousel-item').mCustomScrollbar({ axis:"y", theme: "rounded-dots", scrollButtons: { enable: true }, scrollInertia: 300,
        callbacks:{
            whileScrolling:function(){
                /* this.mcs.draggerTop <- I get it from First script (official page) example: Returning values */
                var pct=this.mcs.draggerTop;
                /*Below plugin is used for nice scrolling effect. I get it from github Second script. Below code was in jquery.fancy-scroll.js file. */
                var defaults = {
                    animation: "bounce",
                    bounceDistance: 150,
                    animDuration: "0.3s",
                    animEasing: "cubic-bezier(0.175, 0.885, 0.420, 1.310)",
                    innerWrapper: '.carousel-item'
                };
                fancy_scroll = function(options){
                    var settings = $.extend({}, defaults, options),
                        el = $(settings.innerWrapper),
                        container = $(this),
                        posWas = 0,
                        status = "off";
                    $.fn.bounceEffect = function(px, s, anim, settings) { 
                        var selector = $(this) 
                        selector.css({
                            "-webkit-transform": "translate3d(0, " + px + ", 0)",
                            "-webkit-transition": "all " + s + " " + anim,
                            "-moz-transform": "translate3d(0, " + px + ", 0)",
                            "-moz-transition": "all " + s + " " + anim,
                            "-ms-transform": "translate3d(0, " + px + ", 0)", 
                            "-ms-transition": "all " + s + " " + anim,
                            "transform": "translate3d(0, " + px + ", 0)",
                            "transition": "all " + s + " " + anim
                        })
                    }
                    if(pct==100){//if the user is scrolling down...
                        alert('dol');
                        if(status == "off") {
                            status = "on"
                            $('.carousel-item').bounceEffect(settings.bounceDistance * -1 + "px", settings.animDuration, settings.animEasing, settings);
                            $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                                $('.carousel-item').bounceEffect("0", settings.animDuration, settings.animEasing, settings);
                                $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                                    status = "off"
                                });
                            });
                        }
                    }
                    if(pct==0){ //if the user is scrolling up...
                        if(status == "off") {
                            if(container.scrollTop() <= 0) {
                                status = "on"
                                $('.carousel-item').bounceEffect(settings.bounceDistance + "px", settings.animDuration, settings.animEasing, settings);
                                $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                                    $('.carousel-item').bounceEffect("0px", settings.animDuration, settings.animEasing, settings);
                                    $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                                        status = "off"
                                    });
                                });
                            }
                        }
                    }
                }
                fancy_scroll();
            }
        }
    });

最好的问候

1 个答案:

答案 0 :(得分:0)

我相信很容易解释我想要实现的目标......我看到任何人都无法帮助我。 好的,我删除了错误,之前我的代码变得更简单了。

这就是我的解决方案:自定义滚动效果,当croll到顶部和底部

/* Set custom scrollbar for content-section */
jQuery('.carousel-item').mCustomScrollbar({ axis:"y", theme: "rounded-dots", scrollButtons: { enable: true }, scrollInertia: 100,
    callbacks:{
        whileScrolling:function(){
            var pct=this.mcs.topPct;
            /*$("#mcs-dragger-top").text(this.mcs.topPct);*/
            // alert(pct);
            /*Plugin is used for nice scrolling effect*/
            var settings = {
                    animation: "bounce",
                    bounceDistance: 60,
                    animDuration: "0.19s",
                    animEasing: "cubic-bezier(0.175, 0.885, 0.420, 1.310)" },
                el = $('.carousel-item'),
                container = $('.carousel-item'),
                posWas = 0,
                status = "off";
            $.fn.bounceEffect = function(px, s, anim, settings) { 
                $('.carousel-item').css({
                    "-webkit-transform": "translate3d(0, " + px + ", 0)",
                    "-webkit-transition": "all " + s + " " + anim,
                    "-moz-transform": "translate3d(0, " + px + ", 0)",
                    "-moz-transition": "all " + s + " " + anim,
                    "-ms-transform": "translate3d(0, " + px + ", 0)", 
                    "-ms-transition": "all " + s + " " + anim,
                    "transform": "translate3d(0, " + px + ", 0)",
                    "transition": "all " + s + " " + anim
                })
            }
            if(pct==100){//if the user is scrolling down...
                if(status == "off") {
                    status = "on"
                    $('.carousel-item').bounceEffect(settings.bounceDistance * -1 + "px", settings.animDuration, settings.animEasing, settings);
                    $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                        $('.carousel-item').bounceEffect("0", settings.animDuration, settings.animEasing, settings);
                        $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                            status = "off"
                        });
                    });
                }
            }
            if(pct==0){ //if the user is scrolling up...
                if(status == "off") {
                    status = "on"
                    $('.carousel-item').bounceEffect(settings.bounceDistance + "px", settings.animDuration, settings.animEasing, settings);
                    $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                        $('.carousel-item').bounceEffect("0px", settings.animDuration, settings.animEasing, settings);
                        $('.carousel-item').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
                            status = "off"
                        });
                    });
                }
            }
        }
    }
});

我希望这对那些搜索这种效果的人有所帮助。如果我在上面的代码中有错误,那么请写在这里。

最好的问候