var positionStickySupport = function() { var el = document.createElement('a'), mStyle = el.style; mStyle.cssText = "position:sticky;position:-webkit-sticky;position:-ms-sticky;"; return mStyle.position.indexOf('sticky')!==-1; }();
positionStickySupport will be true if it's supported. You should use the following CSS:
.myElement { position: -webkit-sticky; position: -ms-sticky; position: sticky; top: 0px; }
Of course you can set top however you want. If you're wondering, the -ms-sticky is for future-proofing. As of this writing, Microsoft plans to support the feature in Edge, but it's not clear whether they'll use a prefix or not. Safari uses -webkit. Opera has it implemented in pre-release form without a prefix, and Firefox already supports it without one.
It would have been possible to use the CSS.supports() functionality, but Safari 6-8 support position: sticky but not CSS.supports().
Here is the one-liner version:
var positionStickySupport = function() {var el=document.createElement('a'),mStyle=el.style;mStyle.cssText="position:sticky;position:-webkit-sticky;position:-ms-sticky;";return mStyle.position.indexOf('sticky')!==-1;}();