How can I check if a scrollbar is visible?

后端 未结 19 2875
情话喂你
情话喂你 2020-11-22 14:39

Is it possible to check the overflow:auto of a div?

For example:

HTML

19条回答
  •  暗喜
    暗喜 (楼主)
    2020-11-22 15:27

    Here's an improved version of Evan's answer which seems to properly account for overflow logic.

                function element_scrollbars(node) {
                    var element = $(node);
                    var overflow_x = element.css("overflow-x");
                    var overflow_y = element.css("overflow-y");
                    var overflow = element.css("overflow");
                    if (overflow_x == "undefined") overflow_x == "";
                    if (overflow_y == "undefined") overflow_y == "";
                    if (overflow == "undefined") overflow == "";
                    if (overflow_x == "") overflow_x = overflow;
                    if (overflow_y == "") overflow_y = overflow;
                    var scrollbar_vertical = (
                        (overflow_y == "scroll")
                        || (
                            (
                                (overflow_y == "hidden")
                                || (overflow_y == "visible")
                            )
                            && (
                                (node.scrollHeight > node.clientHeight)
                            )
                        )
                    );
                    var scrollbar_horizontal = (
                        (overflow_x == "scroll")
                        || (
                            (
                                (overflow_x == "hidden")
                                || (overflow_x == "visible")
                            )
                            && (
                                (node.scrollWidth > node.clientWidth)
                            )
                        )
                    );
                    return {
                        vertical: scrollbar_vertical,
                        horizontal: scrollbar_horizontal
                    };
                }
    

提交回复
热议问题