UNPKG

@hoc-element/affix

Version:

📌 Affix 将页面元素固定在可视范围内。

2 lines 8.04 kB
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("vue"));else if("function"==typeof define&&define.amd)define([],t);else{var n="object"==typeof exports?t(require("vue")):t(e.Vue);for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(function(e){return function(){var t={521:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},549:function(e,t,n){"use strict";Object.defineProperty(t,"X",{value:!0}),t.Z=void 0;var o=n(789),r=(0,o.defineComponent)({name:"Affix",props:{offsetTop:{type:Number,default:0}},emits:["change"],setup:function(e,t){var n=t.emit,r=(0,o.ref)({}),i=(0,o.ref)({position:"initial",top:"initial"}),a=(0,o.ref)({}),c=(0,o.ref)(!1),u=(0,o.ref)(""),s=(0,o.computed)((function(){return"fixed"===i.value.position}));(0,o.onMounted)((function(){(0,o.nextTick)((function(){d()}))})),(0,o.onBeforeUnmount)((function(){document.removeEventListener("scroll",h)}));var f=function(){return r.value.getBoundingClientRect()},l=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop},d=function(){u.value=f().top,m(),document.addEventListener("scroll",h)},p=function(){i.value={position:"fixed",top:"".concat(e.offsetTop,"px")},n("change",!0)},v=function(){c.value=!0;var e=f();a.value={width:"".concat(e.width,"px"),height:"".concat(e.height,"px")}},m=function(){u.value<e.offsetTop&&(p(),v()),u.value=l()+u.value},h=function(){f().top<e.offsetTop&&(p(),v());var t=l();u.value-e.offsetTop>=t&&"fixed"===i.value.position&&(i.value={},c.value=!1,a.value={},n("change",!1))};return{refScrollAffix:r,affixStyle:i,stylePlaceHolder:a,showPlaceHolder:c,defaultInstancePosition:u,getAffixed:s}}});t.Z=r},837:function(e,t,n){"use strict";t.s=function(e,t,n,r,i,a){return(0,o.openBlock)(),(0,o.createElementBlock)("div",null,[e.showPlaceHolder?((0,o.openBlock)(),(0,o.createElementBlock)("div",{key:0,style:(0,o.normalizeStyle)(e.stylePlaceHolder)},null,4)):(0,o.createCommentVNode)("",!0),(0,o.createElementVNode)("div",{ref:"refScrollAffix",style:(0,o.normalizeStyle)(e.affixStyle),class:"scroll-affix-container"},[(0,o.renderSlot)(e.$slots,"default",(0,o.normalizeProps)((0,o.guardReactiveProps)({affixed:e.getAffixed})),void 0,!0)],4)])};var o=n(789)},951:function(e,t,n){"use strict";n.r(t);var o=n(80),r=n.n(o),i=n(460),a=n.n(i)()(r());a.push([e.id,".scroll-affix-container[data-v-4fb4f137]{position:initial;top:initial}","",{version:3,sources:["webpack://./src/components/ScrollAffix/index.vue"],names:[],mappings:"AACA,yCACE,gBAAA,CACA,WAAA",sourcesContent:["\n.scroll-affix-container {\n position: initial;\n top: initial;\n}\n"],sourceRoot:""}]),t.default=a},460:function(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,o,r,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(o)for(var c=0;c<this.length;c++){var u=this[c][0];null!=u&&(a[u]=!0)}for(var s=0;s<e.length;s++){var f=[].concat(e[s]);o&&a[f[0]]||(void 0!==i&&(void 0===f[5]||(f[1]="@layer".concat(f[5].length>0?" ".concat(f[5]):""," {").concat(f[1],"}")),f[5]=i),n&&(f[2]?(f[1]="@media ".concat(f[2]," {").concat(f[1],"}"),f[2]=n):f[2]=n),r&&(f[4]?(f[1]="@supports (".concat(f[4],") {").concat(f[1],"}"),f[4]=r):f[4]="".concat(r)),t.push(f))}},t}},80:function(e){"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),i="/*# ".concat(r," */"),a=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[t].concat(a).concat([i]).join("\n")}return[t].join("\n")}},553:function(e,t){"use strict";t.Z=(e,t)=>{const n=e.__vccOpts||e;for(const[e,o]of t)n[e]=o;return n}},289:function(e,t,n){"use strict";n.r(t),n.d(t,{__esModule:function(){return r.X},default:function(){return i}});var o=n(837),r=n(549);n(419);var i=(0,n(553).Z)(r.Z,[["render",o.s],["__scopeId","data-v-4fb4f137"]])},419:function(e,t,n){var o=n(951);o.__esModule&&(o=o.default),"string"==typeof o&&(o=[[e.id,o,""]]),o.locals&&(e.exports=o.locals),(0,n(950).Z)("5fd99bb8",o,!0,{})},950:function(e,t,n){"use strict";function o(e,t){for(var n=[],o={},r=0;r<t.length;r++){var i=t[r],a=i[0],c={id:e+":"+r,css:i[1],media:i[2],sourceMap:i[3]};o[a]?o[a].parts.push(c):n.push(o[a]={id:a,parts:[c]})}return n}n.d(t,{Z:function(){return v}});var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var i={},a=r&&(document.head||document.getElementsByTagName("head")[0]),c=null,u=0,s=!1,f=function(){},l=null,d="data-vue-ssr-id",p="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function v(e,t,n,r){s=n,l=r||{};var a=o(e,t);return m(a),function(t){for(var n=[],r=0;r<a.length;r++){var c=a[r];(u=i[c.id]).refs--,n.push(u)}for(t?m(a=o(e,t)):a=[],r=0;r<n.length;r++){var u;if(0===(u=n[r]).refs){for(var s=0;s<u.parts.length;s++)u.parts[s]();delete i[u.id]}}}}function m(e){for(var t=0;t<e.length;t++){var n=e[t],o=i[n.id];if(o){o.refs++;for(var r=0;r<o.parts.length;r++)o.parts[r](n.parts[r]);for(;r<n.parts.length;r++)o.parts.push(g(n.parts[r]));o.parts.length>n.parts.length&&(o.parts.length=n.parts.length)}else{var a=[];for(r=0;r<n.parts.length;r++)a.push(g(n.parts[r]));i[n.id]={id:n.id,refs:1,parts:a}}}}function h(){var e=document.createElement("style");return e.type="text/css",a.appendChild(e),e}function g(e){var t,n,o=document.querySelector("style["+d+'~="'+e.id+'"]');if(o){if(s)return f;o.parentNode.removeChild(o)}if(p){var r=u++;o=c||(c=h()),t=b.bind(null,o,r,!1),n=b.bind(null,o,r,!0)}else o=h(),t=A.bind(null,o),n=function(){o.parentNode.removeChild(o)};return t(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;t(e=o)}else n()}}var y,x=(y=[],function(e,t){return y[e]=t,y.filter(Boolean).join("\n")});function b(e,t,n,o){var r=n?"":o.css;if(e.styleSheet)e.styleSheet.cssText=x(t,r);else{var i=document.createTextNode(r),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}function A(e,t){var n=t.css,o=t.media,r=t.sourceMap;if(o&&e.setAttribute("media",o),l.ssrId&&e.setAttribute(d,t.id),r&&(n+="\n/*# sourceURL="+r.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},789:function(t){"use strict";t.exports=e}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={id:e,exports:{}};return t[e](i,i.exports,o),i.exports}o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return function(){"use strict";var e=r,t=o(521);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(o(289)),i=function(e){e.component("HocElAffix",n.default)};"undefined"!=typeof window&&window.Vue&&i(window.Vue);var a={version:"1.0.0",install:i,HocElAffix:n.default};e.default=a}(),r}()})); //# sourceMappingURL=hoc-el-affix.js.map