Check if element is visible on screen JavaScript/jQuery/iScroll

ittoryu

I'm using iScroll for horizontal scrolling and I have a long horizontal table and I'm trying to see if specific columns are visible.

I tried the following code which I found online:

function checkVisible( elm, evalType ) {
evalType = evalType || "visible";

var vpH = $(window).height(), // Viewport Height
    st = $(window).scrollTop(), // Scroll Top
    y = $(elm).offset().top,
    elementHeight = $(elm).height();

if (evalType === "visible") return ((y < (vpH + st)) && (y > (st - elementHeight)));
if (evalType === "above") return ((y < (vpH + st)));
alert('done');
};

however, it seems to always tell me that the element is visible on screen even though it's not. Any other way I could tell whether this table column is actually on screen on the browser?

Thanks.

sodawillow

The upper bound of the visible part of the page screen will be $(window).scrollTop()

The lower bound will be $(window).scrollTop() + $(window).height()

("upper" and "lower" are referring to physical boundaries)

Determine if $(element).offset().top is between those values to know if your element is in the visible viewport.

I have embedded this in the scroll handler but you can simply build a function to test your elements :)

See this Fiddle for a full example (watch the console when the green div gets visible) : http://jsfiddle.net/6v8j8z8e/3/

$(function() {
    $(window).on("scroll", function() {
        var up = $(window).scrollTop(),
            down = $(window).scrollTop() + $(window).height();
        
        if(($("div").offset().top > up) && ($("div").offset().top < down)) {
            console.log("green div is visible");
        }
    });
});
div {
    background: green;
    color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. <div>TARGET</div>Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor quidem nesciunt consequatur perspiciatis deserunt quasi quas ex ullam obcaecati laudantium voluptatum eveniet tenetur animi debitis minima explicabo unde incidunt neque!

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Check if element is visible in DOM

From Java

How can I check if an element exists in the visible DOM?

From Java

How to check if element is visible after scrolling?

From Java

How to use protractor to check if an element is visible?

From Java

Jquery check if element is visible in viewport

From Dev

Check if element is visible for certain percentage on screen (viewport)?

From Dev

How to get on-screen visible element objects in jQuery?

From Dev

Best practice for when element is visible on the screen?

From Dev

How can I check if an element is visible using Protractor?

From Dev

JQuery check if the next visible element has the same class

From Dev

How to check if TextView is within the Visible Screen Android

From Dev

Check if node is visible on the screen

From Dev

Jasmine jQuery: Check if element is visible

From Dev

Add class on html element when it gets visible on screen

From Dev

jQuery check if element is visible inside scrollable div

From Dev

Check whether cell at indexPath is visible on screen UICollectionView

From Dev

Get the element which is the most visible on the screen

From Dev

SVG element not visible on screen, can see element added in console

From Dev

How to check if the element is visible

From Dev

Javascript, check if element has left the screen

From Dev

Is there any way to check if an element is visible in the viewport using only javascript?

From Dev

WPF determine element is visible on screen

From Dev

jQuery check if element is visible in if statement not working

From Dev

How to know if an element is visible on the screen. If not, scroll the page

From Dev

Automatically loading more posts (checking if element is visible on screen)

From Dev

Check if element is x pixels away from being visible

From Dev

Check whether cell at indexPath is visible on screen UICollectionView

From Dev

SVG element not visible on screen, can see element added in console

From Dev

JavaScript - Selenium Webdriver. How to check if element is visible

Related Related

  1. 1

    Check if element is visible in DOM

  2. 2

    How can I check if an element exists in the visible DOM?

  3. 3

    How to check if element is visible after scrolling?

  4. 4

    How to use protractor to check if an element is visible?

  5. 5

    Jquery check if element is visible in viewport

  6. 6

    Check if element is visible for certain percentage on screen (viewport)?

  7. 7

    How to get on-screen visible element objects in jQuery?

  8. 8

    Best practice for when element is visible on the screen?

  9. 9

    How can I check if an element is visible using Protractor?

  10. 10

    JQuery check if the next visible element has the same class

  11. 11

    How to check if TextView is within the Visible Screen Android

  12. 12

    Check if node is visible on the screen

  13. 13

    Jasmine jQuery: Check if element is visible

  14. 14

    Add class on html element when it gets visible on screen

  15. 15

    jQuery check if element is visible inside scrollable div

  16. 16

    Check whether cell at indexPath is visible on screen UICollectionView

  17. 17

    Get the element which is the most visible on the screen

  18. 18

    SVG element not visible on screen, can see element added in console

  19. 19

    How to check if the element is visible

  20. 20

    Javascript, check if element has left the screen

  21. 21

    Is there any way to check if an element is visible in the viewport using only javascript?

  22. 22

    WPF determine element is visible on screen

  23. 23

    jQuery check if element is visible in if statement not working

  24. 24

    How to know if an element is visible on the screen. If not, scroll the page

  25. 25

    Automatically loading more posts (checking if element is visible on screen)

  26. 26

    Check if element is x pixels away from being visible

  27. 27

    Check whether cell at indexPath is visible on screen UICollectionView

  28. 28

    SVG element not visible on screen, can see element added in console

  29. 29

    JavaScript - Selenium Webdriver. How to check if element is visible

HotTag

Archive