Maintain header's position as fixed while scrolling on mobile devices

My header has a position: fixed; property and it works fine on desktop.

However, when scrolling on mobile, there is a delay in the header adjusting to my scroll position. It remains unfixed until I stop scrolling, then suddenly snaps into place.

Is there any workaround or solution for this issue?

<div class="mobile-header">
   <a href="#" class="mobile-header-button">Open/close</a>
   <a href="/" class="mobile-header-home">Home</a>
   <ul class="mobile-header-searchbutton">
     <li class="search-button"><a href="/search">Search</a></li>
   </ul>
</div>

Above is the HTML code, and below is my CSS styling:

.mobile-header {
 display: block;
 background: #fff;
 height: 62px;
 width: 100%;
 float: left;
 position: fixed;
 top: 0;
 right: 0;
 -webkit-transition: left .2s;
 -o-transition: left .2s;
 transition: left .2s;
 z-index: 9999;
}

Despite setting the position as fixed, the header lags behind when scrolling on mobile while maintaining its fixed position on desktop.

Answer №1

On certain mobile devices, I've encountered some challenges with using position: fixed;. It appears that the touch-drag interface can disrupt the functionality of fixed elements, especially on older phones. It seems like more complex fixed layouts may not be fully supported by these devices.

To address this issue, it's helpful to limit the number of elements that are set to fixed position, and if feasible, apply this style only to top-level elements rather than nested ones. While theoretically a fixed element should function properly within nested positioned elements, in practice I've encountered problems when nesting a fixed element inside an absolute one.

I recommend starting with a basic layout to test whether a single element set to fixed behaves correctly. If successful, then gradually simplify your header code to minimize any potential issues.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Upon changing the content to a button, the button appears to be unresponsive to Jquery functionalities

Having some trouble when I switch the content of the div td tag to an a tag, the link does not work after being clicked, same issue with input tags. Here is the td tag: <td class='column2' id='e" . $row["id"] . "&a ...

How to use jquery and ajax to retrieve an array of data and show it on the screen

I am facing an issue with my ajax request. Actually, I am unsure of how to fetch multiple records. I attempted the following: $rqt = "SELECT a,b,c from table"; $res = mysql_query($rqt); while ($data = mysql_fetch_assoc($res)): $objet = $d ...

Is it possible to omit certain columns when extracting data from a Kendo grid?

My challenge involves extracting data from a Kendo grid using the following JavaScript call: var data = JSON.stringify($(".k-grid").data("kendoGrid").dataSource.data()) This retrieves all properties in the C# class for the records. There are three proper ...

Decimal error causing Bootstrap grid column division issue

I've been attempting to divide the Bootstrap grid column into 20 grids using the code below: <div style="width: 4.999999998%; margin-top: -27.5px; margin-left: 25px;" class="col-md-.6 col-sm-6"> <div style="height: 32.5px; ...

Oops! There seems to be an error in my code - it's expecting a semicolon. I'm currently working on developing an authentication system using credentials with next auth

#pages/api/auth I'm currently in the process of developing an authentication system using Nextauth in Next Js. I encountered an issue with authenticating using credentials while following a tutorial on YouTube.I've double-checked the syntax multi ...

Iterate over a JSON array using jQuery

I am attempting to iterate through this data to extract the 'name' values. Here is my current code, but it does not seem to be functioning correctly. I have tried a few variations from suggestions here, but none of them have worked. $.get("/ ...

Show a loading screen or spinner while waiting for a response from a REST API using JavaScript

I am currently developing a chrome extension that interacts with an exposed REST Service to send and receive data. To improve the user experience, I want to display a loading indicator while waiting for a response from the API server. However, due to the a ...

`Adding data to Rails database and displaying without the need for reloading using AngularJS`

When working on my Rails project, I encountered an issue with adding data to the database using `http.post` from an AngularJS controller. Below is the code snippet demonstrating this: RestaurantIndexCtrl.js.coffee: restauranteur.controller 'Restaura ...

With the latest Facebook Graph API integration, we are encountering issues where AJAX calls are returning empty values

Exploring the latest Facebook Graph API and experimenting with fetching data using jQuery Ajax. Below is a snippet of my simple JavaScript code: var apiUrl = 'https://graph.facebook.com/19292868552'; $.ajax({ url: apiUrl, data ...

Facing issues connecting to my MongoDB database as I keep encountering the error message "Server Selection Timed Out After 3000ms" on MongoDB Compass

I am encountering an error on my terminal that says: { message: 'connect ECONNREFUSED 127.0.0.1:27017', name: 'MongooseServerSelectionError', reason: TopologyDescription { type: 'Single', setName: null, maxS ...

Can the `XMLHttpRequest` object stay active when the user switches to a different page?

I am currently facing an issue on my website where users can submit a form using AJAX. The response is displayed in an alert indicating whether the submission was successful or if there were any issues. However, due to the asynchronous nature of this proce ...

In order to determine if components linked from anchor elements are visible on the screen in Next.js, a thorough examination of the components

Currently, I am in the process of developing my own single-page website using Next.js and Typescript. The site consists of two sections: one (component 1) displaying my name and three anchor elements with a 'sticky' setting for easy navigation, a ...

Filter Form Inputs using JQuery by Class and Value

I am currently utilizing AJAX to submit form values and I require the ability to extract values based on class rather than id. The form from which I am gathering information will be utilized multiple times within the web application. With a blend of Framew ...

Function useAppDispatch is missing a return type

.eslintrc.js module.exports = { root: true, extends: [ '@react-native-community', 'standard-with-typescript', 'plugin:@typescript-eslint/recommended', 'plugin:jest/recommended', 'plugin:p ...

Using Sencha Touch: What is the best method for populating an HTML panel with a JSON response?

I've exhausted all possible combinations in my attempts to load a JSON object from the server and use it to render a panel with video and other information. Despite my efforts, I haven't been able to make anything work. What could I be doing inco ...

Choose the child nodes upon selecting the root node

I am trying to implement a 2-level material-ui treeview where selecting the root node should automatically select all child nodes as well. Does anyone have suggestions on how to achieve this with material-ui treeview? For more information, please visit ma ...

Incorporating CSS classes conditionally in an Angular child component using input values

I am currently using a list component: <section class="p-10 flex flex-col gap-10"> <p class="text-xl font-black text-blue-700">Transfer history</p> <div class="flex flex-col gap-10"> @for(item o ...

Activate function when list item is clicked

My goal is to execute a function when users click on the li elements in the snippet below without relying solely on onclick. For instance, clicking on the first li element (with a value of 1) should trigger a function where the value "1" is passed as an ar ...

Preventing div contents from shrinking with changing screen sizes

I am currently working on creating a portfolio website similar to this one. Check out the Website Here Typically, when the screen size is reduced to less than half of the full width, the content of a website tends to be hidden rather than shrinking. Howe ...

Using jquery ajax to add new rows to a MySQL table at the bottom, creating a repeating pattern

Using AJAX jQuery, I am constantly updating a table with data from a MySQL database at regular intervals. The refresh rate is set to 1 second. Below is the PHP file responsible for successfully creating the JSON data: <?php $servername = "localhost"; ...