当前位置: 首页 > news >正文

html网页制作内容网站做301对优化有影响

html网页制作内容,网站做301对优化有影响,网页开发培训,网站的分类有哪些类型vue数据无限滚动 参考来源 Vue3 实现消息无限滚动的新思路 —— 林三心不学挖掘机 完整代码中项目中使用了vuetify#xff0c;估div内的class会代表了对应的样式#xff0c;根据需要自行删减。 功能实现主要依赖js代码部分。 鼠标悬浮停止滚动#xff0c;鼠标离开恢复滚动在… vue数据无限滚动 参考来源 Vue3 实现消息无限滚动的新思路 —— 林三心不学挖掘机 完整代码中项目中使用了vuetify估div内的class会代表了对应的样式根据需要自行删减。 功能实现主要依赖js代码部分。 鼠标悬浮停止滚动鼠标离开恢复滚动在最后区别就是将scroll方法从onMounted中提取出来了。vue3代码 templatediv classscroll-container refscrollRefdiv v-for(item, index) in list :keyindex styleheight: 40px; line-height: 40px;{{ item.title }}/div/div /templatescript setup import { onMounted, ref } from vue defineOptions({name: publicRecruitment-bountyDisplay})// 容器的 dom 节点 const scrollRef ref() // 模拟列表数据 const dataSource new Array(10).fill(0).map((_, index) ({title: 这是一条信息${index} })) const list ref([...dataSource])// 记录原始数据的长度 const len dataSource.length onMounted(() {// 滚动的距离let top 0// 索引let index 0const scroll () {// 垂直方向滚动scrollRef.value?.scrollTo({top: top})if (top % 40 0) {// 哪一项滚不见了就拿这一项 push 到列表中const target list.value[index]if (target) list.value.push(target)if (index (len - 1)) {// 不断递增index} else {// 刚好滚动完一轮重新来过初始化数据top 0index 0scrollRef.value?.scrollTo({top: 0})list.value [...dataSource]}}// 不断滚动requestAnimationFrame(scroll)}scroll() }) /scriptstyle langscss scoped .scroll-container {// 防止有滚动条出现overflow: hidden;height: 150px; } /style兼容升级版本 1.如果数据长度形成的总高度少于容器高度不设置滚动 2.如果数据长度仅高于容器高度不足一个数据单位的长度会出现抖动滚动。解决方法将数据复制一份 删减代码!-- 滚动展示 -- templatediv styleheight: 100%; width: 100%;div classmb-3 stylefont-size: 13px; color: #666;无缝衔接滚动/div!-- 滚动 --divclassscroll-containerrefscrollRefstyleheight: calc(100% - 32px); overflow: hidden; font-size: 13px;color: #333;!-- 数据list --divv-for(item) in list:keyitem.nameclassd-flex justify-space-between align-center:styleheight: ${dataItemHeight}px;div classml-2{{ item.name }}/div/div/div/div /templatescript setup import { onMounted, ref } from vue defineOptions({name: publicRecruitment-bountyDisplay}) // 滚动实现代码部分 const dataItemHeight 40 // 容器的 dom 节点 const scrollRef ref() // // 模拟列表数据 let listSource new Array(10).fill(0).map((_, index) ({ name: name${index}})) const list ref([...listSource])// 记录原始数据的长度 let len listSource.length onMounted(() {// 滚动的距离let top 0// 索引let index 0const scroll () {// 垂直方向滚动scrollRef.value?.scrollTo({top: top,})if (top % dataItemHeight 0) {// 哪一项滚不见了就拿这一项 push 到列表中const target list.value[index]if (target) list.value.push(target)if (index len - 1) {// 不断递增index} else {// 刚好滚动完一轮重新来过初始化数据top 0index 0scrollRef.value?.scrollTo({top: 0,})list.value [...listSource]}}// 不断滚动requestAnimationFrame(scroll)}// 如果数据长度形成的总高度少于容器高度不设置滚动const clientHeight scrollRef.value?.clientHeightif (len*dataItemHeight clientHeight) {if ((len - 1)*dataItemHeight clientHeight) {// 如果clientHeight刚好大于len*dataItemHeight但不满足(len1)*dataItemHeight会出现抖动。// 解决方法将数据复制一份listSource listSource.concat(...Array.from({ length: 1 }, () [...listSource]))list.value listSourcelen listSource.length}scroll()} }) /script style langscss scoped .red {color: red; } .ellipsisText {// width: 120px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden; } /style 完整代码!-- 滚动展示 -- templatediv styleheight: 100%; width: 100%;div classmb-3 stylefont-size: 13px; color: #666;最近30天已有span classred68人/span提现成功累计提现span classred9450/span/div!-- 滚动 --divclassscroll-containerrefscrollRefstyleheight: calc(100% - 32px); overflow: hidden; font-size: 13px;color: #333;!-- 数据list --divv-for(item) in list:keyitem[keyText] || item.nameclassd-flex justify-space-between align-center:styleheight: ${dataItemHeight}px;!-- 头像、用户名 --div classd-flex align-centerv-avatar size30 :imageitem.avatar || https://minio.citupro.com/dev/menduner/7.png/v-avatardiv classml-2{{ formatName(item.name) }}/div!-- div classml-2{{ item.name }}/div --/divdiv classd-flex stylewidth: calc(100% - 65px);!-- 内容 --div classd-flex ellipsisText mx-4 styleflex: 1;div推荐到/divdiv classellipsisText ml-1 stylemax-width: 100px;{{ item.company }}/divdiv classellipsisText ml-1 stylemax-width: 60px;{{ item.job }}/div/div!-- 赏金 --div提现span classred{{ item.money }}/span/div/div/div/div/div /templatescript setup import { onMounted, ref } from vuedefineOptions({name: publicRecruitment-bountyDisplay}) defineProps({keyText: {type: String,default: id} }) const avatarList [https://img0.baidu.com/it/u230622178,1565949306fm253fmtautoapp138fJPEG?w449h300,https://img0.baidu.com/it/u1401084042,2724457850fm253fmtautoapp138fJPEG?w500h726,https://img1.baidu.com/it/u3995643348,1848098846fm253fmtautoapp138fJPEG?w800h800,https://img0.baidu.com/it/u230622178,1565949306fm253fmtautoapp138fJPEG?w449h300,https://img0.baidu.com/it/u1401084042,2724457850fm253fmtautoapp138fJPEG?w500h726,https://img1.baidu.com/it/u3995643348,1848098846fm253fmtautoapp138fJPEG?w800h800,https://img0.baidu.com/it/u230622178,1565949306fm253fmtautoapp138fJPEG?w449h300, ] let listSource [] for (let index 0; index 68; index) {const obj {id: id (index1),name: 用户 (index1),// name: (index1),avatar: avatarList[index % 7],company: 某某公司 (index1),job: 某某职位 (index1),money: index*index*(100 - index) || 100,}listSource.push(obj) }// 用户名加*号 const formatName (name) {if (!name.length) {return name} else if (name.length 1) { return name // 如果名字只有一个字则直接返回该字 } else if (name.length 2) { return name.charAt(0) * // 如果名字有两个字则返回第一个字后跟一个星号 } else { return name.charAt(0) ** // 如果名字有多于两个字则返回第一个字后跟两个星号 } }// 滚动实现代码部分 const dataItemHeight 40 // 容器的 dom 节点 const scrollRef ref() // // 模拟列表数据 // const listSource new Array(10).fill(0).map((_, index) ({ title: 这是一条信息${index}})) const list ref([...listSource])// 记录原始数据的长度 let len listSource.length onMounted(() {// 滚动的距离let top 0// 索引let index 0const scroll () {// 垂直方向滚动scrollRef.value?.scrollTo({top: top,})if (top % dataItemHeight 0) {// 哪一项滚不见了就拿这一项 push 到列表中const target list.value[index]if (target) list.value.push(target)if (index len - 1) {// 不断递增index} else {// 刚好滚动完一轮重新来过初始化数据top 0index 0scrollRef.value?.scrollTo({top: 0,})list.value [...listSource]}}// 不断滚动requestAnimationFrame(scroll)}// 如果数据长度形成的总高度少于容器高度不设置滚动const clientHeight scrollRef.value?.clientHeightif (len*dataItemHeight clientHeight) {if ((len - 1)*dataItemHeight clientHeight) {// 如果clientHeight刚好大于len*dataItemHeight但不满足(len1)*dataItemHeight会出现抖动。// 解决方法将数据复制一份listSource listSource.concat(...Array.from({ length: 1 }, () [...listSource]))list.value listSourcelen listSource.length}scroll()} }) /script style langscss scoped .red {color: red; } .ellipsisText {// width: 120px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden; } /style 完整代码二鼠标悬浮停止滚动鼠标离开恢复滚动!-- 滚动展示 -- templatediv styleheight: 100%; width: 100%; mouseoverhandleMouseover mouseleavehandleMouseleavediv classmb-3 stylefont-size: 13px; color: #666;最近30天已有span classred68人/span提现成功累计提现span classred9450/span/div!-- 滚动 --divclassscroll-containerrefscrollRefstyleheight: calc(100% - 32px); overflow: hidden; font-size: 13px;color: #333;!-- 数据list --divv-for(item) in list:keyitem[keyText] || item.nameclassd-flex justify-space-between align-center:styleheight: ${dataItemHeight}px;!-- 头像、用户名 --div classd-flex align-centerv-avatar size30 :imageitem.avatar || https://minio.citupro.com/dev/menduner/7.png/v-avatardiv classml-2{{ formatName(item.name) }}/div/divdiv classd-flex stylewidth: calc(100% - 65px);!-- 内容 --div classd-flex ellipsisText mx-4 styleflex: 1;div推荐到/divdiv classellipsisText ml-1 stylemax-width: 100px;{{ item.company }}/divdiv classellipsisText ml-1 stylemax-width: 60px;{{ item.job }}/div/div!-- 赏金 --div提现span classred{{ item.money }}/span/div/div/div/div/div /templatescript setup import { onMounted, ref } from vuedefineOptions({name: publicRecruitment-bountyDisplay}) defineProps({keyText: {type: String,default: id} }) const avatarList [https://img0.baidu.com/it/u230622178,1565949306fm253fmtautoapp138fJPEG?w449h300,https://img0.baidu.com/it/u1401084042,2724457850fm253fmtautoapp138fJPEG?w500h726,https://q7.itc.cn/q_70/images03/20240423/6d236fae5c8f44ed9b60d977f32debb7.jpeg,https://q1.itc.cn/q_70/images03/20240609/1c1be14298be4dbe978e55bde6e958b0.jpeg,https://q4.itc.cn/q_70/images03/20240528/298d4abda5e4469d98fa77e7cde46525.jpeg,https://q5.itc.cn/q_70/images03/20240520/ceb0d77d1be24eea8cd3826994eac1c1.jpeg,https://img1.baidu.com/it/u3995643348,1848098846fm253fmtautoapp138fJPEG?w800h800, ] let listSource [] for (let index 0; index 68; index) {const obj {id: id (index1),name: 用户 (index1),avatar: avatarList[index % 7],company: 某某公司 (index1),job: 某某职位 (index1),money: index*index*(100 - index) || 100,}listSource.push(obj) }// 用户名加*号 const formatName (name) {if (!name.length) {return name} else if (name.length 1) { return name // 如果名字只有一个字则直接返回该字 } else if (name.length 2) { return name.charAt(0) * // 如果名字有两个字则返回第一个字后跟一个星号 } else { return name.charAt(0) ** // 如果名字有多于两个字则返回第一个字后跟两个星号 } }// 滚动实现代码部分 const dataItemHeight 40 // 单位高度 const scrollRef ref() // 容器的 dom 节点 const list ref([...listSource]) // 滚动数据列表 let len listSource.length // 记录原始数据的长度 const scrollItem ref(null) let top 0 // 滚动的距离 let index 0 // 索引 const scroll () {// 垂直方向滚动scrollRef.value?.scrollTo({top: top,})if (top % dataItemHeight 0) {// 哪一项滚不见了就拿这一项 push 到列表中const target list.value[index]if (target) list.value.push(target)if (index len - 1) {// 不断递增index} else {// 刚好滚动完一轮重新来过初始化数据top 0index 0scrollRef.value?.scrollTo({top: 0,})list.value [...listSource]}}// 不断滚动scrollItem.value requestAnimationFrame(scroll)// setTimeout(() { scrollItem.value requestAnimationFrame(scroll) }, 20) // 延迟滚动- 20 : 1px。即:1秒滚动50px } const handleMouseover () { cancelAnimationFrame(scrollItem.value) } //暂停滚动 const handleMouseleave () { scroll() } // 恢复滚动 onMounted(() {// 如果数据长度形成的总高度少于容器高度不设置滚动const clientHeight scrollRef.value?.clientHeightif (len*dataItemHeight clientHeight) {if ((len - 1)*dataItemHeight clientHeight) {// 如果clientHeight刚好大于len*dataItemHeight但不满足(len1)*dataItemHeight会出现抖动。// 解决方法将数据复制一份listSource listSource.concat(...Array.from({ length: 1 }, () [...listSource]))list.value listSourcelen listSource.length}scroll() // 启动滚动} }) /script style langscss scoped .red {color: red; } .ellipsisText {// width: 120px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden; } /style
http://www.ho-use.cn/article/10817295.html

相关文章:

  • 浙江嘉兴网站建设凌河建设网站
  • 企业网站建设设计任务书排版设计网站有哪些
  • 高端网站制作费用怎么做wordpress主题
  • 比较好的做网站公司微网站 pc网站同步
  • 网站横幅怎做用wordPress搭建图片库
  • 网站开发系统流程图如何做好网络宣传工作
  • 企业网站推广工具做国际网站阿里巴巴
  • 做网站三河百度竞价员
  • 网站建设服务谁便宜大气的个人网站
  • 织梦网站做图床手机网站指向什么意思
  • 网站建设公司走进深圳易百讯网站内链怎么布局
  • 做的美食视频网站新手小白怎样运营1688店铺
  • 域名对网站的好处网站宣传视频
  • 佛山网站建设费用服装品牌网站建设
  • 做名人故居的网站多少钱镇江建设网站
  • 扬中做网站的公司网络推广培训吧
  • 在线看seo网站网站上传连接失败的原因
  • pc网站开发微信支付深圳企业馆设计公司
  • 2018网站建设涉及陕西省住房建设厅官方网站
  • 广厦建设集团官方网站厦门响应式网站建设
  • 免费自建商城网站asp网站改成php
  • 做微电网的公司网站那个合作网站做360推广比较好
  • 影响网站速度因素 dnsWordpress 帖子翻译
  • vs2008 手机网站开发苏州创建公司
  • 做网站体会心得wordpress一键关注
  • 天水网站建设公司排名wordpress 正在跳转中 请稍等
  • 化工原材料网站建设湘潭网站建设 诚信磐石网络
  • 华为网站建设的目标是否明确花2w学ui值得吗
  • 敦煌网网站推广方式wordpress icon 修改
  • 怎么给自己建网站大同网站建设开发