• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

记一次用vue做的活动页的方法步骤

vue 搞代码 4年前 (2022-01-08) 10次浏览 已收录 0个评论

这篇文章主要介绍了记一次用vue做的活动页的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

最近,公司的PR提了一个需求 自动获取七天新上传的并且审核通过的商品做成固定的链接的一个活动页面。当时想了一想就用vue做了,感觉效果还行,在这分享一下我是如何做的 希望对大家有一点点帮助。

效果图

附上线上地址

在线预览:新品租赁页

1:页面的构建及优化

所谓的活动页 首先第一步肯定是把页面切出来,这里就是2*n页面 我这里用的就是grid布局(也可以用flex)我主要讲三个点:

1:关于图片的优化

由于后段传过来的图片大小不一样,我就对图片做了做了一下优化 。整个图片在填充盒子的同时保留其长宽比

代码:

 .product-img img { object-fit: contain; width: auto; height: auto; max-width: 100%; max-height: 100%; margin: 0 auto; }

为了不让图片觉得突兀 我们可以给图片的盒子设置一个伪元素

 .product-img::after { content: ''; position: absolute; top: 0; left: 0; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); z-index: 1000; width: 10<p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p>0%; height: 100%; border-radius: .1rem; background: rgba(85, 85, 85, 0.05); }

2:关于页面数据还没加载出来的优化

由于从后台获取数据需要一定的时间 当数据没加载进来的时候会出现问题(也许就是一秒但这也会给用户带来不好的体验感。)

 <div class="container">

当数据没加载的时候我就设置opacity为0,当数据出来的时候就设置opacity:1

3:关于价格的优化

由于设计稿的需求是价格的整数的字体要比小数要大,所以就把整数和小数分别用spilt分隔来了。然后在给整数的字体比小数点的字体大一号就行了。

 <div class="product-price">¥<span class="em">{{String(product.price).split('.')[0]}}</span>.{{String(product.price).split('.')[1]||'0'}}/天</div>

2:获取数据

从后台获取数据是很重要的一部分 由于后段给了二个参数 一个是当前页 一个是一个页面有多少条数据。

 getList(cb){ this.getActivityInfoById(this.curPage,this.pageSize).then((data = {})=>{ this.total = data.total; if(( this.curPage * this.pageSize) >= this.total && document.readyState == "complete") { this.isMaxPage = true; } this.productList = this.productList.concat(data.rows || []); cb && cb(data) }) }
 getActivityInfoById: function(start, length) { return axios .get(this.api.getActivityInfoById, { params: { start: start, length: length } }) .then(function(res) { return res.data.data; }); },

3:分页

所谓的活动页肯定要做分页处理

 onPage(){ const scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; const bodyHeight = document.body.offsetHeight; const clientHeight = window.innerHeight; if(scrollTop + clientHeight <bodyHeight){ return; } if(this.isGetList) return; if(this.total { this.isGetList = false; }); },

4:下拉刷新的优化

当数据还在加载中显示loading,当数据加载完成是显示扯到底了

 <div class="footer">- 不要扯了 已经扯到底了 -</div><div class="footer">- loading -</div>

5:懒加载

由于这个活动页图片有点多 所以用了懒加载

 lazyLoad: function() { var seeHeight = document.documentElement.clientHeight; // 可见区域高度 var imgs = document.getElementsByTagName('img'); for (var i = this.lazyLoadIndex; i 

总结

作为一个即将毕业的大四学生,这是我来公司实习做的活动页,希望可以帮助大家,互相学习,一起进步。当然也有一些不足之处,请大家多多指教。码字不容易,希望大家点个赞。前端路漫漫,与君共勉之。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是记一次用vue做的活动页的方法步骤的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:记一次用vue做的活动页的方法步骤

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址