3

I need to keep track of the page offset on a website.

var supportPageOffset = window.pageXOffset !== undefined;
var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");
var Y = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;

Using the above code returns the vertical offset for me on all desktop browsers. However, I only get 0 on mobile browsers. How can I get the scroll location on mobile?

jppower175
  • 415
  • 6
  • 16

1 Answers1

1

I guess this might help you:

Demo : Fiddle

JQuery

$(window).scroll(function (event) {
    var scroll = $(window).scrollTop(); // This would give you offsetY while you scroll
    $(".scrollY").text(scroll); // This is just to display for instance.
});

Open in Mobile

Update

JavaScript

window.addEventListener('scroll', function(){
 var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
  
  document.getElementsByClassName("scrollY")[0].innerHTML = scrollTop;
  
}, true)
.scrollY
{
    position:fixed;
    top:0px;
    left:0px;
    padding:10px;
    display:block;
    width:auto;
    height:auto;
    background:red;
    color:yellow;
}
.title h1
{
    text-align:center;
}

div
{
    display:block;
    width:90%;
    background:#2b2937;
    color:#eee;
    padding:10px;
    margin:10px 0px;
    border-radius:10px;
}
<div class="scrollY"> </div>
<div class="title">
    <h1>Dummy HTML Text</h1>
</div>
<div>
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
</div>
<div>
    <h1>HTML Ipsum Presents</h1>
        
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>

<h2>Header Level 2</h2>
        
<ol>
   <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
   <li>Aliquam tincidunt mauris eu risus.</li>
</ol>

<blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>

<h3>Header Level 3</h3>

<ul>
   <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
   <li>Aliquam tincidunt mauris eu risus.</li>
</ul>

<pre><code>
#header h1 a { 
 display: block; 
 width: 300px; 
 height: 80px; 
}
</code></pre>
</div>

Demo : Fiddle

divy3993
  • 5,732
  • 2
  • 28
  • 41
  • 1
    I do not think that the solution on jQuery is suitable here – MobiDevices Jul 18 '17 at 16:20
  • Hey @Vadizar, How you doing? Why do you think is not suitable? The Orignal question poster has added `jQuery` tag. Please check. Also updating answer with JS Solution. Thanks! – divy3993 Jul 19 '17 at 06:44
  • @divy3993 You added a solution to the native JS just yesterday =) – Andrey Yanov Jul 20 '17 at 08:02
  • That's because you wanted, but OP added jQuery that means OP doesn't even mind with jQuery answer. Anyways welcome to Stack Overflow and have a great time. P.S: Could you take away the down vote please? – divy3993 Jul 20 '17 at 09:15