I was getting pretty annoyed by this appearing again but found the culprit:

I complained to Amazon a couple of weeks ago to be told that it was the private marketplace sellers doing it and are now free to customize the page how they see including altering stuff that has nothing to do with them and I believed the gentleman because he told me to go to a few pages that were not Amazon Marketplace and they didn't have that crap follow down the page.
Last week it was there permanently on certain pages and intermittently on others.
After spending 3 hours I found a culprit and also does affect some of the manufacturer's images:
Culprit:||m.media-amazon.com/images/I/61xJcNKKLXL.js
I'd prefer not seeing their other stuff than put up with that annoying thing appearing or following down the page completely unwanted and uncalled for.
Maybe I should complain to them and ask whether they set it or if they are not aware of it where it'd be part of a template.
It also seems influenced by size of window, so if it is small or zoomed out it appears, and on some listings appears on scroll down and disappears on scroll up.
I get pretty annoyed when decisions are made over my viewing area where it affects my concentration.
I have remember it appearing on scroll down on certain occasions and discovered it does so now:
Search

So it looks like Amazon have changed their minds or someone there is making out that their customers badly need this form of harassment to heckle them down the page in the form that'd it be helpful because it is always there and will generate them clicks and the usual garbage.
Time to get back on the phone and have a right go at them.
Just notice looking at the list of elements last night:
###nav-belt.nav-updated-pinned-config
###navbar.using-mouse.nav-progressive-attribute.hamburger.nav-packard-glow.layout3-alt.layout3.nav-flex.layout2.bold-focus-hover.nav-a11y-t1.nav-bluebeacon.celwidget.nav-sprite-v1
###navbar-main.nav-progressive-attribute.nav-rec.nav-ssl.nav-lang-en.nav-locale-gb.nav-flex.nav-opt-sprite
Hiding each even individual one of those and they cause the menu to disappear for good until reloading the page when the absolute positions of the header is set to fixed down the page.
Just phoned up the disability accessibility line which seems the only way to talk to a human these days. It seems they don't need proof but I comfortable with providing it as I do have one. The gentlemen was helpful (I was expecting arrogance this time), I explained the issue with the distraction and annoyance, he saw it appear on his screen on scroll. I told him about the the script that triggers with the elements and he passed it on their "I.T. team" and that they make changes and will look on reverting it on the 2nd or 5th December? but I don't expect that team to do anything. In fact I expect them to do the opposite make it worse in appearance and more difficult to make it disappear.
Saw a feedback request and suggested there be another rating on the outcome that reflects on Amazon as a whole and not just one person trying to help.
Looking back at the elements I some had descriptions after the question mark:
www.amazon.co.uk
3
get
script
https://m.media-amazon.com/images/I/61xJcNKKLXL.js?AUIClients/AmazonUIjQuery
So the page loads fine initially, other stuff loads up and this piece of sh*t queries where the header is fixed or not and sets it to fixed.
Top part of the file I notice:
/*
jQuery JavaScript Library v1.6.4
http://jquery.com/
Copyright 2011, John Resig
Dual licensed under the MIT or GPL Version 2 licenses.
http://jquery.org/license
Includes Sizzle.js
http://sizzlejs.com/
Copyright 2011, The Dojo Foundation
Released under the MIT, BSD, and GPL Licenses.
Amazon elects to use jQuery and Sizzle under the MIT license.
Date: Mon Sep 12 18:54:48 2011 -0400
Sizzle CSS Selector Engine
Copyright 2011, The Dojo Foundation
Released under the MIT, BSD, and GPL Licenses.
More information: http://sizzlejs.com/
Looks like it is fixing things. Attached as 61xJcNKKLXL.txt
c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,e=b.ownerDocument,f=e.documentElement,g=e.body;var h=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,l=b.offsetLeft;(b=b.parentNode)&&
b!==g&&b!==f&&(!c.offset.supportsFixedPosition||"fixed"!==h.position);)h=e?e.getComputedStyle(b,null):b.currentStyle,k-=b.scrollTop,l-=b.scrollLeft,b===d&&(k+=b.offsetTop,l+=b.offsetLeft,!c.offset.doesNotAddBorder||c.offset.doesAddBorderForTableAndCells&&fc.test(b.nodeName)||(k+=parseFloat(h.borderTopWidth)||0,l+=parseFloat(h.borderLeftWidth)||0),d=b.offsetParent),c.offset.subtractsBorderForOverflowNotVisible&&"visible"!==h.overflow&&(k+=parseFloat(h.borderTopWidth)||0,l+=parseFloat(h.borderLeftWidth)||
0);if("relative"===h.position||"static"===h.position)k+=g.offsetTop,l+=g.offsetLeft;c.offset.supportsFixedPosition&&"fixed"===h.position&&(k+=Math.max(f.scrollTop,g.scrollTop),l+=Math.max(f.scrollLeft,g.scrollLeft));return{top:k,left:l}};c.offset={initialize:function(){var a=q.body,b=q.createElement("div"),d=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="\x3cdiv style\x3d'position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'\x3e\x3cdiv\x3e\x3c/div\x3e\x3c/div\x3e\x3ctable style\x3d'position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding\x3d'0' cellspacing\x3d'0'\x3e\x3ctr\x3e\x3ctd\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e";
a.insertBefore(b,a.firstChild);var e=b.firstChild;var f=e.firstChild;var g=e.nextSibling.firstChild.firstChild;this.doesNotAddBorder=5!==f.offsetTop;this.doesAddBorderForTableAndCells=5===g.offsetTop;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=20===f.offsetTop||15===f.offsetTop;f.style.position=f.style.top="";e.style.overflow="hidden";e.style.position="relative";this.subtractsBorderForOverflowNotVisible=-5===f.offsetTop;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==
d;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();c.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(c.css(a,"marginTop"))||0,d+=parseFloat(c.css(a,"marginLeft"))||0);return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");"static"===e&&(a.style.position="relative");var f=c(a),g=f.offset(),h=c.css(a,"top"),k=c.css(a,"left"),l={};("absolute"===e||"fixed"===e)&&-1<c.inArray("auto",[h,k])?(k=f.position(),
https://github.com/jquery/sizzle/wikiSizzle.selectors.pseudos.NAME = function( elem ) {}
The most common extension to a selector engine: adding a new pseudo. The return result from this function must be boolean: true if the element matches the selector, false if not.
For example, this defines a simple :fixed pseudo:
var $test = jQuery( document );
Sizzle.selectors.pseudos.fixed = function( elem ) {
$test[ 0 ] = elem;
return $test.css( "position" ) === "fixed";
};
Sizzle.selectors.createPseudo(function)
I believe they should add a setting if they are going to add all this stuff to check whether certain conditions are true or false.