JS determines page scroll bar

php中世界最好的语言
Release: 2018-06-11 13:52:48
Original
1204 people have browsed it

This time I will bring you JS to judge the page scroll bar. What are the precautions for JS to judge the page scroll bar? The following is a practical case, let's take a look.

Preface

Recently in the process of writing a plug-in, I need to use JS to determine whether there is a scroll bar. After searching, the general methods are similar, but they are all a bit verbose. The code is not concise enough. Finally, by referring to different methods, I wrote a relatively simple method. When judging the scroll bar, you also need to calculate the width of the scroll bar. I will share it with you through this article.

Why should we judge the scroll bar

The need to judge the scroll bar is often used in pop-up window plug-ins, because most pop-up windows will addOverflow: hiddenattribute. If the page is relatively long, the page will shake after adding this attribute.

In order to enhance the user experience, add themargin-leftattribute to offset the scroll bar position afteroverflow: hiddenby determining whether there is a scroll bar.

How to determine whether there is a scroll bar

In fact, only one line of JS is needed to test compatibility with IE7

function hasScrollbar() { return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight); }
Copy after login

Generally, usedocument.body.scrollHeight>window.innerHeightcan be judged.

But in IE7 and IE8,window.innerHeightisunderfined, so in order to be compatible with IE7 and IE8, you need to usedocument.documentElement.clientHeightProperty calculates window height.

The method of calculating the scroll bar width

still takes the pop-up window as an example, because the scroll bars of IE 10 and above and mobile browsers do not occupy the page width. Transparent style (IE 10 and above browsers can restore the original scroll bar style through CSS properties), so in order to further enhance the user experience, we also need to calculate the width of the scroll bar and add a reasonablemargin-left ## according to the situation. #Value.

The method to calculate the width of the scroll bar is relatively simple. Create a new p element with a scroll bar and pass the

offsetWidthandclientWidth of the element. The difference ofcan be obtained. I will learn from the method inMagnific-popup

function getScrollbarWidth() { var scrollp = document.createElement("p"); scrollp.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;'; document.body.appendChild(scrollp); var scrollbarWidth = scrollp.offsetWidth - scrollp.clientWidth; document.body.removeChild(scrollp); return scrollbarWidth; }
Copy after login

Summary

Use JS to implement a The function may not be difficult, but as programmers, you should always think about how to implement this function more simply and elegantly, and always focus on improving the user experience. For conditional judgment, maybe ten lines of logical judgment may only require one line. I have been very impressed recently, and I must be good at using ternary expressions instead of

if..elseto streamline the code.

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

How to apply response writeback to render the page

Use JS to make animated progress bar function

The above is the detailed content of JS determines page scroll bar. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!