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

网站开发时间进度表 开发费用django怎么做网站

网站开发时间进度表 开发费用,django怎么做网站,展厅设计平面布置图,南昌哪里做网站好分类 创建cate分支 渲染分类页面的基本结构 效果页面,包含左右两个滑动区. 利用提供的api获取当前设备的信息。用来计算窗口高度。可食用高度就是屏幕高度减去上下导航栏的高度。 最终效果: 每一个激活项都特殊背景色#xff0c;又在尾部加了个红条一样的东西。 export d…分类  创建cate分支 渲染分类页面的基本结构 效果页面,包含左右两个滑动区. 利用提供的api获取当前设备的信息。用来计算窗口高度。可食用高度就是屏幕高度减去上下导航栏的高度。  最终效果: 每一个激活项都特殊背景色又在尾部加了个红条一样的东西。 export default {data() {return {//当前设备可用高度wh:0};},onLoad(){const info uni.getSystemInfoSync()this.whinfo.windowHeight}} style langscss .scroll-view-container{display:flex } .left-scroll-view{width:120px } .left-scroll-view-item{background-color: #F7F7F7;line-height: 60px;text-align: center;font-size: 12px;.active{background-color: #FFFFFF;position: relative;::before{content: ;display:block;width:3px;height: 30px;background-color: #C00000;position: absolute;top: 50%;left: 0;transform: translateY(-50%);}} } /style获取分类数据 动态渲染左侧的一级分类列表 动态渲染右侧的二级分类列表 响应数据格式如下每个一级分类下面有二级分类二级分类下又有三级分类。 动态渲染右侧的三级分类列表 .cate-lv3-list { display: flex; flex-wrap: wrap; .cate-lv3-item { width: 33.33%; margin-bottom: 10px; display: flex; flex-direction: column; align-items: center; image { width: 60px; height: 60px; } text { font-size: 12px; } } } 最终实现效果如下 切换一级分类后重置滚动条的位置 // 选中项改变的事件处理函数 activeChanged(i) { this.active i this.cateLevel2 this.cateList[i].children // 让 scrollTop 的值在 0 与 1 之间切换 this.scrollTop this.scrollTop 0 ? 1 : 0 // 可以简化为如下的代码 // this.scrollTop this.scrollTop ? 0 : 1 }点击三级分类跳转到商品列表页面 跳转的同时将分类id一起传过去。 分支合并与提交  搜索 在主页面的顶部和分类页面的顶部都有一个搜索框点击之后就可以跳转到对应搜索组件。这里会有搜索历史和搜索建议。 创建搜索分支 自定义搜索组件 自定义 my-search 组件 美化组件样式如下  .my-search-container { background-color: #c00000; height: 50px; padding: 0 10px; display: flex; align-items: center; } .my-search-box { height: 36px; background-color: #ffffff; border-radius: 15px; width: 100%; display: flex; align-items: center; justify-content: center; .placeholder { font-size: 15px; margin-left: 5px; } }效果如下 同时可用高度应该减去搜索框的高度所以要对之前代码进行改造。 通过自定义属性增强组件的通用性 然后现在就可以由调用它的父组件动态指定搜索框的背景颜色了。  为自定义组件封装 click 事件并进行搜索页面的跳转 3.在分类页面中使用 my-search 自定义组件时即可通过 click 为其绑定点击事件处理函 数 !-- 使用自定义的搜索组件 -- my-search clickgotoSearch/my-search同时在分类页面中定义 gotoSearch 事件处理函数如下 这里有一个要注意的地方这里的页面跳转逻辑不可以在公共组件内进行处理。 methods: { // 跳转到分包中的搜索页面 gotoSearch() { uni.navigateTo({ url: /subpkg/search/search }) } }这里在父组件为子组件定义的事件必须在子组件内部手动调用. 这里要先在subpkg分包里面新建一个search页面,新建完后就可以实现点击自动跳转了。 实现首页搜索组件的吸顶效果 随着页面的滑动搜索组件不会随着滑动消失而是一直在首部这就是吸顶效果。 搜索建议 渲染搜索页面基本结构 1. 定义如下的 UI 结构 view classsearch-box !-- 使用 uni-ui 提供的搜索组件 -- uni-search-bar inputinput :radius100 cancelButtonnone/uni-search-bar /view 2. 修改 components - uni-search-bar - uni-search-bar.vue 组件将默认的白色搜索背 景改为 #C00000 的红色背景 .uni-searchbar { /* #ifndef APP-NVUE */ display: flex; /* #endif */ flex-direction: row; position: relative; padding: 16rpx; /* 将默认的 #FFFFFF 改为 #C00000 */ background-color: #c00000; }3. 实现搜索框的吸顶效果 .search-box { position: sticky; top: 0; z-index: 999; }4. 定义如下的 input 事件处理函数 methods: { input(e) { // e是最新的搜索内容 console.log(e) } }实现搜索框自动获取焦点 在uni-search-bar标签里加:focustrue这样子也可以自动获取焦点。  实现搜索框的防抖处理 每次输入新内容都会触发input函数这样是不行的所以只有当用户500毫秒内没有输入任何内容才发起搜索请求。 1. 在 data 中定义防抖的延时器 timerId 如下 2. 修改 input 事件处理函数如下 input(e) { // 清除 timer 对应的延时器 clearTimeout(this.timer) // 重新启动一个延时器并把 timerId 赋值给 this.timer this.timer setTimeout(() { // 如果 500 毫秒内没有触发新的输入事件则为搜索关键词赋值 this.kw e.value console.log(this.kw) }, 500) }根据关键词查询搜索建议列表 这里的e.value也要改成e才可以。  渲染搜索建议列表 1. 定义如下的 UI 结构 !-- 搜索建议列表 -- view classsugg-list view classsugg-item v-for(item, i) in searchResults :keyi clickgotoDetail(item.goods_id) view classgoods-name{{item.goods_name}}/view uni-icons typearrowright size16/uni-icons /view /view 2. 美化搜索建议列表 .sugg-list { padding: 0 5px; .sugg-item { font-size: 12px; padding: 13px 0; border-bottom: 1px solid #efefef; display: flex; align-items: center; justify-content: space-between; .goods-name { // 文字不允许换行单行文本 white-space: nowrap; // 溢出部分隐藏 overflow: hidden; // 文本溢出后使用 ... 代替 text-overflow: ellipsis; margin-right: 3px; } } } 3. 点击搜索建议的 Item 项跳转到商品详情页面 搜索历史 渲染搜索历史记录的基本结构 1. 在 data 中定义搜索历史的 假数据 2. 渲染搜索历史区域的 UI 结构  !-- 搜索历史 --view classhistory-box!-- 标题区域 --view classhistory-titletext搜索历史/textuni-icons typetrash size17/uni-icons/view!-- 列表区域 --view classhistory-listuni-tag :textitem v-for(item, i) in historyList :keyi/uni-tag/view/view 3. 美化搜索历史区域的样式 .history-box {padding: 0 5px;.history-title {display: flex;justify-content: space-between;align-items: center;height: 40px;font-size: 13px;border-bottom: 1px solid #efefef;}.history-list {display: flex;flex-wrap: wrap;.uni-tag {margin-top: 5px;margin-right: 5px;}}} 实现搜索建议和搜索历史的按需展示 !-- 搜索建议列表 --view classsugg-list v-ifsearchResults.length ! 0!-- 省略其它代码... --/view!-- 搜索历史 --view classhistory-box v-else!-- 省略其它代码... --/view 将搜索关键词存入 historyList 1. 直接将搜索关键词 push 到 historyList 数组中即可 methods: {// 根据搜索关键词搜索商品建议列表async getSearchList() {// 省略其它不必要的代码...// 1. 查询到搜索建议之后调用 saveSearchHistory() 方法保存搜索关键词this.saveSearchHistory()},// 2. 保存搜索关键词的方法saveSearchHistory() {// 2.1 直接把搜索关键词 push 到 historyList 数组中this.historyList.push(this.kw)}} 解决关键字前后顺序的问题 computed: {historys() {// 注意由于数组是引用类型所以不要直接基于原数组调用 reverse 方法以免修改原数组中元素的顺序// 而是应该新建一个内存无关的数组再进行 reverse 反转return [...this.historyList].reverse()}} 解决关键词重复的问题 // 2. 保存搜索关键词的方法saveSearchHistory() {// 2.1 直接把搜索关键词 push 到 historyList 数组中// this.historyList.push(this.kw)// 1. 将 Array 数组转化为 Set 对象const set new Set(this.historyList)// 2. 调用 Set 对象的 delete 方法移除对应的元素set.delete(this.kw)// 3. 调用 Set 对象的 add 方法向 Set 中添加元素set.add(this.kw)// 4. 将 Set 对象转化为 Array 数组this.historyList Array.from(set)} 将搜索历史记录持久化存储到本地 1. 修改 saveSearchHistory 方法如下 // 保存搜索关键词为历史记录saveSearchHistory() {const set new Set(this.historyList)set.delete(this.kw)set.add(this.kw)this.historyList Array.from(set)// 调用 uni.setStorageSync(key, value) 将搜索历史记录持久化存储到本地uni.setStorageSync(kw, JSON.stringify(this.historyList))} 清空搜索历史记录 点击搜索历史跳转到商品列表页面 2. 在 methods 中定义 gotoGoodsList 处理函数 // 点击跳转到商品列表页面 gotoGoodsList(kw) { uni.navigateTo({ url: /subpkg/goods_list/goods_list?query kw }) } 分支的合并与提交
http://www.ho-use.cn/article/10812675.html

相关文章:

  • 大连网站建设好的公司那个网站做搬家推广比较好
  • 上海网站制作库榆公司网站免费建立
  • 区校合作网站建设方案怎么查询网站开发公司
  • 网站页面宽度深圳设计公司深圳市广告设计公司
  • 全广告网站安徽网站设计哪家效果好
  • 免费看片网站didv 模板WordPress
  • 百度官网网站首页建英语网站首页
  • 电子商务推荐类网站建设的目的拼多多推广关键词首选帝搜软件
  • 英德市住房城乡建设网站电子商务网站建设第二版论文
  • 网站设计与制作简单吗权威发布是什么意思
  • 做网站需要掌握什么山西网站建设价格
  • 做网站排名seowordpress文章位置
  • 个人网站尺寸wordpress 固定连接中文转换插件
  • 网站移动端开发公司建设公关型的企业网站有哪些
  • 设计师服务平台台新河seo怎么做整站排名
  • 昆明建设局网站号码网站建设价格规范
  • 网站建设水平dede 网站改宽屏代码
  • 婚庆行业网站建设wordpress 注册很慢
  • 可以看电视剧的网站网站开发及建设费用
  • 做网站容易还是apppico笔克品牌介绍
  • 网站开发使用api对seo房产网站搭建
  • 手机公司网站建设比较好的东莞樟木头网站建设
  • 电子商务网站平台有哪些创意字体
  • 广州黄埔网站建设公司百度网盘搜索引擎入口哪里
  • 中山网页建站模板广东的网站建设
  • 怎么做网站 高中信息技术做搜狗网站优
  • 自建网站如何上传视频手机兼职赚钱平台一单一结
  • wordpress博客整站源码网站首页做30个关键词
  • 辽宁省交通建设投资集团网站企查查企业在线查询
  • 网站高防服务器租用装饰设计合同