Jeet framework: How to make Jeet sticky-menu continue when reaching footerlevel? - css-frameworks

Is there a way to make the Jeet relatively-sticky menu https://github.com/CorySimmons/relatively-sticky continue upwards when it reach the top level of the footer-section?
In my case the footer-section streches horizontaly over the whole page.

Related

Disable timeline hover action

I see the point of the "timeline" feature (I mean when you point the cursor on an item in Cypress log).
In my case, it is quite annoying: as soon as you hover on an entry in the Cypress log, all the previous steps of that test are repeated.
This means every time I point the mouse over an entry there (by mistake) I flood the server with dozens of unnecessary calls.
Is there a way to disable the hover action?

How to find Cumulative Layout Shift problems if Page Speed Insights says one thing and Search Console says another

With Cumulative Layout Shift (CLS) now a criteria of Page Speed Insights (PSI) and Google Search Console (GSC) I was wondering what method should be used in order to identify CLS if PSI returns a 0 value but Field Data returns a high value.
For example I have a page that scores 0 on PSI but gets 0.99 CLS for desktop (0 for mobile) according to Search Console.
Using Developer Tools I tried switching on paint flashing and switched on layout shift regions but still get 0 shift, whereas field data says 0.99.
So how do you identify what is causing a Layout Shift using developer tools?
So as nobody has answered this I will put down what I did, it may not be the best way to do it so bear that in mind!
I opened dev tools and setup a new profile under network speed where the latency was 1000ms and the speed to 50kb/s. (where it says "online" next to "disable cache", click there and go to "Custom > "Add...").
This effectively gives you time to see what is happening on a page as resources load in.
I then went to the "rendering" tab and switched on "Paint Flashing", "Layout Shift Regions" and "Layer borders"
I then just watched the page load with this artificial slow down in place.
It was immediately obvious doing this that I had a side menu loading in via AJAX but when it loaded it was about 1px too wide due to a border on it so it made the whole main section shift to the left a tiny bit.
Impossible to notice with the naked eye but really obvious with the above method. This didn't happen on the automated tests as it was (sort of) a race condition in a browser that depended on load order (using async for scripts as I do other manipulation on the aside) and PSI was consistent.
I hope this helps someone until someone comes up with a better way of identifying the root cause of a Layout Shift.
Update
As pointed out in the comments make sure you test at different screen sizes as well.
At the Developer tools, you can go to Performance > Record (the dot at the top). Then refresh the page by using a hard refresh (shift + refresh). NB: Best to make the developer tools sidebar as small as possible to simulate the correct browser size.
As the Developer tools is recording, you can scroll all the way down and stop the recording once you're at the bottom.
Resize the Developer tools tab, and a timeline will appear. This includes a section 'Web vitals'. At 'Experience', you will find blocks that indicate the Layout shifts.
If you hover over the Layout Shift box, the class will be visible in the webpage. You can even zoom in and hover over the timeline at the top, to see the layout at that specific time (and thus the difference in layout causing the layout shift).
If you click on the Layout Shift box, there's a summary in which you'll be able to see the changes e.g. 'Moved from Location [...], Size: [...x...]'
It takes some resizing between all the tabs in the Performance section, but for me, this is really helpful to find out what classes are causing these shifts! Hope this works for you as well.
Chrome DevTools can give you CLS measure and help you to debug pain-points of your website through:
Lighthouse
Performance panel
Red-tinted "Layout Shift" bar will drill you down into impacted elements
More read: https://web.dev/optimize-cls/

Is it possible to find an element like a button and click it, when it is continuously moving on? e.g Carousel

I am using Selenium Webdriver(Ruby) to automate my web app and my web app has this carousel wherein my element continuously keeps moving in a loop.
By the time I locate that element and try to click it, element moves ahead.Hence I am not able to locate that element.
I tried finding and clicking that moving element by following code:
{
ele_button = driver.find_element(:xpath,"xpath")
sleep 10
ele_button.click
}
I thought that by 'sleep 10' I could make that element wait for 10 seconds and then click it.But this does not work and I am getting ElementNotVisibleError whenever I run my script.
Question:
Is it even possible to automate a moving element? If yes please provide me a solution.
Yes it is absolutely possible. I handled same scenario for carousel on my site. There are three ways:
Most carousel stop on mouse hover. So you may use it to stop the
carousel. Use Actions class to move over to the carousel. Once it
stops you may click on it.
If you want a specific slide, you can click on dots or any other navigator, like prev/nxt, to reach your slide and then click it.
The sure shot way to click your specific slide, without worrying about whether it is displayed or not is to use Javascript to click it (Which I had done in my case although I had also implemented 2nd way but I found javascript the simplest solution).
Why are the actions divided?
I would recommend the following:
driver.find_element(:xpath,"xpath").click()
so it will find the object and click on it.
Another thing you can do, as we doing in selenium with java that put the implicitlyWait according to the time on which your button came back after one rotation; now perform click just after implicitlyWait
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
// Suppose a rotation of button takes 30 sec
driver.findElement(By.xpath("/html/body/div[2]")).click();
// action performs on the element
In ruby you have to use this type of syntax
#driver.manage.timeouts.implicit_wait = 30

Scroll SlickGrid only one line, when using keyboard navigation

I have implemented a slickgrid and activated keyboard navigation.
When the users is scrolling down using the down-arrow key and reaches the last of the currently visible rows, the grid loads a whole new section of rows and places the selection at the top.
My user tests have all included a complaint about this behaviour as they all find the jump jarring.
I would like to implement behaviour, so the grid scrolls just one line at a time, when I press the down arrow while the last visible row is selected.
I was wondering if there might be some setting, I have overlooked, or if anyone has some suggestions for how to approach the task of adding this behaviour.
(the "problem" is the same, when you scroll upwards - only reversed of course)
This is controlled by the doPaging argument in scrollRowIntoView(row, doPaging) (https://github.com/mleibman/SlickGrid/blob/master/slick.grid.js#L2662). There's no setting to control that behavior, but you could easily add one.
It was initially written this way to make keyboard navigation faster since continuously navigating down doesn't have to do as much work as it would have if we were updating the grid on every 'row down'.

Inno Setup jump to specified wizard page

Is there a way to jump to the specified wizard page? Backward and forward?
For example, I would add "Configure again" button in the wpReady, and when the button is clicked, I want to jump to wpInfoBefore.
You can't, at least not sanely. It's possible to fake mouseclicks on the Back/Next buttons, and use ShouldSkipPage, which would get you the desired effect, but it's very bad practice and potentially fragile.
If the user has made a mistake in the previous pages, then they should just go back however many pages are actually required (which might not be the full complement) and fix it. This is especially important when the contents of one page are dependent on the selections made on an earlier page, as jumping back too far would typically result in some of the user's choices being discarded.

Resources