Ai
1 Star 7 Fork 0

沉默小管/toolCollection

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
index.umd.js 2.25 KB
一键复制 编辑 原始数据 按行查看 历史
(function(e,i){typeof exports=="object"&&typeof module<"u"?module.exports=i(require("vue")):typeof define=="function"&&define.amd?define(["vue"],i):(e=typeof globalThis<"u"?globalThis:e||self,e.vueVirtualList=i(e.Vue))})(this,function(e){"use strict";const i=e.defineComponent({__name:"virtualList",props:{data:{default:[]},containerHeight:{default:""},columns:{default:0}},setup(o){const t=o;let a=e.ref(0),c=e.ref(0),u=e.ref(0),h=e.ref(0),d=e.ref(0),_=e.ref(0),g=e.ref(null),w=e.useAttrs();const x=e.computed(()=>`translate3d(0,${u.value}px,0)`),H=e.computed(()=>t.data.slice(a.value,Math.min(c.value,t.data.length))),S=()=>{let l=document.querySelector(".listContainer"),r=l==null?void 0:l.offsetHeight,n=t.columns>0?t.columns:Math.ceil(r/d.value),s=Math.floor(l.scrollTop),m=Math.ceil(s/d.value);a.value=m,c.value=n+a.value,u.value=s-s%n},y=()=>{var N,v;let l=document.querySelector(".listContainer"),r=g.value,n=l==null?void 0:l.offsetHeight,s=l==null?void 0:l.offsetWidth;d.value=r?(N=r[0])==null?void 0:N.offsetHeight:1,_.value=r?(v=r[0])==null?void 0:v.offsetWidth:1;let m=(s/_.value).toFixed(0),V=(t.data.length/m).toFixed(0);h.value=V*d.value,a.value=0;let E=t.columns>0?t.columns:Math.ceil(n/d.value);c.value=a.value+E};return e.watch(()=>t.data,l=>{y()},{immediate:!0,deep:!0}),e.onMounted(()=>{y()}),(l,r)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{class:"listContainer",style:e.normalizeStyle({height:e.unref(t).containerHeight,width:"100%"}),onScroll:S},[e.createElementVNode("div",{class:"listContainerPhantom",style:e.normalizeStyle({height:e.unref(h)+"px"})},null,4),e.createElementVNode("div",{class:"listContainerList",style:e.normalizeStyle({transform:x.value})},[e.createElementVNode("div",e.mergeProps({class:"list"},e.unref(w)),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(H.value,(n,s)=>(e.openBlock(),e.createElementBlock("div",{ref_for:!0,ref_key:"listItemRef",ref:g,key:s+"-"+(n==null?void 0:n.id)},[e.renderSlot(l.$slots,"default",{data:n},void 0,!0)]))),128))],16)],4)],36)]))}}),I="",k=[((o,t)=>{const a=o.__vccOpts||o;for(const[c,u]of t)a[c]=u;return a})(i,[["__scopeId","data-v-e9fe0bf2"]])],p=o=>{k.map(t=>{o.component(t.__name,t)})};let f=window;if(typeof f<"u"&&f.Vue){const o=f.Vue.createApp({});p(o)}return p});
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/derekgo/tool-collection.git
git@gitee.com:derekgo/tool-collection.git
derekgo
tool-collection
toolCollection
master

搜索帮助