IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 项目总结 -> 正文阅读

[人工智能]项目总结

项目总结

1.你学会了什么?

? 学会了用正则表达式来验证登陆/注册输入的字符串是否符合规则,且运用函数封装回调函数的方式来编写代码,不是像以前写小项目单纯的就是写死,给定值。

比如,其中我感觉最重要的通过封装ajak封口接口api方法,虽然过程我感觉很麻烦,但用的时候爽的飞起,这次项目,像下拉触底,返回顶部还是选项卡切换等不算难,最主要的难的是解决同步异步的原因,大多次因为异步的原因而找不到元素,而操作不了相关操作。直接就是null 。

我感觉项目中有点难度的是分类页面中楼层滚动与点击某一小标题跳转到当前滚动条位置,这两个事件监听代码相冲突,虽然最后解决的两者相冲突的问题,但耗了不少时间。但收获是很大的 。相信以后在做几分钟就完成了。

2.你的进步有哪些?

? 相比较以前写差不多项目的时候,现阶段无论是编写的代码时间,还是处理问题的逻辑。更重要的是如何封装那些多次用到的代码,一边在编写其他页面中继续用到,只改变实参值即可。以前有些属性或是方法没怎么记牢,通过这次写项目,重新花了点时间加固记忆了下。最后又重新翻看以前老师教的js的上课课件,发现以前没怎么注意到的小知识点

3.你哪里不会?

? 轮播图封装组件太麻烦,看了老师写在原型对象上的方法,我是直接封装相关代码,虽然也实现的老师展示的效果,但无论是代码的整洁性还是可读性都不太好,自己命名变量名太随便直接就是lunbo等拼音,虽然说一看就了然,但给人感觉很low,这一方面我也逐渐改变,规范命名,该用小驼峰就用。还有选项卡切换也是直接封装,基本效果实现了,但可读性还是观赏性都跟老师写的完全天差地别

4总结项目中有那些业务,你是如何实现的?

? 轮播图我是最后多放一张第一张图,我在点击或者自动播放倒数第1张图取消过度动画,并转到第一张图 同时利用利用setTimeout 继续打印添加延迟动画,在加一个图片的宽度距离 左按钮图片向右走,反之亦然

 



//输入入图片的宽度 与数量
 function lunborfz(width,amount) {
        left += width;
        diao1(0, amount-2)//6-2=4  5个小点从0开始
        if (left > 0) {
            left = -(amount-1)*width;   //(6-1)*1000  
            ul.style.transition = "none"
            var t = setTimeout(function () {
                ul.style.transition = "all 1s"
                left += width
                ul.style.left = left + "px"
            }, 20)     //setTimeout是最后执行的
        }
        ul.style.left = left + "px";
    }
    //下方小点
       function diao1(arg1, arg2) {
            xIndex--;
            xIndex = xIndex < `${arg1}` ? `${arg2}` : xIndex;
            xdian[oldIndex].classList.remove("initial")
            xdian[xIndex].classList.add("initial")
            oldIndex = xIndex;
        }

? 还有懒加载 利用imgs[index].offsetTop <=document.documentElement.scrollTop +window.innerHeight 这个判断条件 同时在字符串模板李添加一个自定义属性用于存放要放的目标图片 下面为懒加载和触底刷星相关代码

    window.addEventListener("scroll", function () {
     //当屏幕的可视高度加上滚动条高度>=滚动条内部的内容区高度是符合条件
    if(window.innerHeight+document.documentElement.scrollTop>=document.documentElement.scrollHeight) {
                        console.log(21421);
                        page++;
                        REQUEST.get('/api/goodList',
                            {
                                params: {
                                    page: page
                                }
                            },
                            function (data) {
                                console.log(data);
                                //html内容部分
                            })
                    }

? getAttribute用这个获取自定义属性值 符合判断条件则更换图片链接

? 最麻烦的分类页面 我是先把获取的数据处理好,我是新建立一个空数组存放2级标题的,然后字符串模板 for循环打印上去,首先设置 var html=‘ ’ 。然后获取元素 item.innerHTML=html 。每次点击另一个分类之前的innerHTML直接清空 ,在重新打印.

。然后是滚动联动这个简单还是用window.innerHeight 。document.documentElement.scrollTop item.offsetTop 这三个属性判断 那些2级标题打印的同时获得 item.offsetTop距离body的高是多少 ,然后点击document.documentElement.scrollTop就等于那个item.offsetTop的高

? 登陆注册我是把符合正则表达式的账号和密码储存在本地 localStorage.setItem() 登陆的同时在 localStorage.getItem() 后续的商品id 还是totack 都是同样的道理

      if(data.code==1){  
                var token = data.token;
                var isdenglu=1;
                //以下在本地存储中存储数据键值对 方面后续登陆用 localStorage.getItem()获取值
                localStorage.setItem('token',token)   
                localStorage.setItem('username',data.username)
                localStorage.setItem("isdenglu",isdenglu)
                location.href = './index.html'
                
               }

还有其他小的效果如返回顶部下拉菜单等因为就几行代码就不叙述了 最后我感觉分类比较麻烦 还有在导航栏需要创建2个div 一个是登陆状态 另一个是未登录状态 根据服务器传过来的数据然后储存本地 if (data.code1还是0) 判断是登陆还是未登录

5:总结你写的项目中有那些技术亮点并详细说明

(1)利用了本地存储来存取服务器返回的code结果来显示登陆与本登录显示页面效果的不同,在导航栏里编写2个div其中一个是登陆状态下的,另一个是未登录下的根据code为1(登陆)还是0(未登录)判断显示

(2)放大镜是通过大小div之间的比值*最大最小的左移动与top移动距离 其中还要减去自身宽的一半

                    var left = e.offsetX - mask_.clientWidth / 2;
                    var top = e.offsetY - mask_.clientHeight / 2;
                    // console.log(e.offsetX);
                    left = left <= 0 ? 0 : left;
                    top = top <= 0 ? 0 : top;
                    // mask向右移动最大是 small的宽度 - mask的宽度
                    var bigleftDis = rigthBox.clientWidth - mask_.clientWidth;
                    left = left >= bigleftDis ? bigleftDis : left;
                    var bigtopDis = rigthBox.clientHeight - mask_.clientHeight;
                    top = top > bigtopDis ? bigtopDis : top;
              

(3)分类页面是通过新创建一个接受2级标题的newarr数组 然后就是数组去重

  for (var k = 0; k < arr.length; k++) {
                if (!quarr.includes(arr[k])) {
                    quarr.push(arr[k])
                }
            }

? 得到一个2级标题,然后就是字符串模板打印 需要套用两层for循环 第一层 2级标题 第二层for 就是item商品信息 根据data[j].type_two == quarr[i]来分类创建item

if (data[j].type_two == quarr[i]) {
                        html += `                    
                         <div class="box">
                           <img src=${data[j].img_url} alt="" class='item' data-id=${data[j].Id}>
                           <p class='p1'>${data[j].title}</p>
                           <div class="box1 clearfix">
                            <span class='left sp' >¥${data[j].price}</span>
                             <div class='right'>
                             ${data[j].mack}
                             </div>
                            </div>
                        </div>  
                           `
                    }
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 23:04:00  更:2021-07-14 23:05:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 5:40:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码