学习分享|原生三件套的网页效果

grtsinry43
6/10/2024
10 views
预计阅读时长 7 分钟

这是学习前端基础,用原生三件套尤其是js实现效果一些学习过程的记录,首先是静态的小米商城,之后实现了一些效果,比如表格、轮播图、瀑布流等,都是为了提升自己原生js的dom操作能力

<!--more-->

话题开始之前是一些没有用的内容:

首先是因为之前那个副硬盘位的西数盘经常掉盘(损失惨重),问了一下居然是兼容性问题(?这个好久没遇到或者听说过了),赶在硬盘涨价的时机含泪购入三星硬盘,因为测试原因单硬盘使用了一段时间,被迫用Windows一段时间还是感觉挺好用的嘛(docker/nginx/mysql等除外,用了wsl2),再加上我搞了个二手4k屏,N卡+Linux开源驱动太卡,闭源驱动没法雷电口输出,裂开,所以至今只能被迫Windows,后面给大家分享一点好用的工具。

更新:win太难用了,又回去了()

然后还有从假期开始之前我就开始搞算法,所以假期很多时间也用来学和写算法题了,留给我写JS的时间并不多,不过还好我写算法用的Java(能和JS有几分相像?),总体也学到挺多。

至于我为什么要学前端三件套呢,这个是因为我现在没有全栈开发能力,Java的swing写点什么简直是天方夜谭,极其痛苦,所以这个假期还有这学期大部分时间我都会用来学习前端开发,当然是广义上的前端,先从网页开始,也接触并且计划了以后学习Qt,electron,Android(Jetpack Compose),Flutter

一、从基础开始

首先当然是从样式入手,这方面我能拿得出手的也就是描摹了一个小米商城主页,纯静态界面,然后这里面主要就是为了回顾马上就要忘记的语法,然后还有养成开发的习惯:比如以组件为单位进行开发,css分文件,规定统一的样式方便应用,几种选择器的使用,复合组件的写法,利用伪元素来实现分隔符等等

大概就是一个这样的效果(还有实际的网页文件演示)

二、照葫芦画瓢

首先因为我学习能力有限,进度比较缓慢,还没有学习到框架,之前只是用过接触过但没有系统学习,所以这里的内容都是用原生JS实现的,更多想要去熟悉这门语言,我觉得可能这样对于以后学习框架能更容易一些

1.文字滚动效果

这里是学习到了,第一是为了防止代码污染而使用了立即执行函数,第二是用js实现动画本质上就是连续缓慢变化的画面

2.展开菜单效果

这里主要还是动画的实现

3.动态排序表格

JS
1var onCheckOneListsClick =(e)=> {
2        if (e.target.tagName !== 'INPUT') {
3            return;
4        }
5        var checkNumber = 0;
6        for (let i = 0; i < checkOneLists.length; i++) {
7            checkOneLists[i].checked && checkNumber++;
8        }
9        checkAll.checked = checkNumber === checkOneLists.length;
10    }

这个是添加事件,指定触发对象,还有一个字符的比较

JS
1 var handleThsClickFn = function (th, index) {
2        if (index === 0) return;
3        th.addEventListener('click', function () {
4            var arr = Array.prototype.slice.call(rows).sort(function (a, b) {
5                if (index === 2 || index === 4){
6                    return a.getElementsByTagName('td')[index].innerHTML.localeCompare(b.getElementsByTagName('td')[index].innerHTML,'zh');
7                }
8                return a.getElementsByTagName('td')[index].innerHTML - b.getElementsByTagName('td')[index].innerHTML;
9            })
10            for (let i = 0; i < arr.length; i++) {
11                tbody.appendChild(arr[i]);
12            }
13        });
14    }

4.三级联动效果

这个就是常规js动态生成元素

5.积分抽奖效果

更多是学习一种思路

JS
1var runGame = function () {
2        var random = Math.floor(Math.random() * 6000 + 3000)
3        timer = setInterval(function () {
4            random -= 200
5            if (random < 200) {
6                clearInterval(timer)
7                timer = null
8                openDialog()
9                return
10            }
11            currentIndex = ++index % prizeList.length
12            prizeList.forEach(function (node) {
13                node.classList.remove('active')
14            })
15            prizeList[currentIndex].classList.add('active')
16        }, 50)
17    }

6.轮播图

这个就是实现无缝轮播,关键就是几行代码

JS
1function next() {
2    var newIndex = curIndex + 1;
3    var onend;
4    if (newIndex === doms.carouselList.children.length - 1) {
5        onend = function () {
6            console.log(1)
7            doms.carouselList.style.marginLeft = '0px';
8            curIndex = 0;
9        }
10    }
11    moveTo(newIndex, onend);
12}
13
14function prev() {
15    console.log(curIndex);
16    var newIndex = curIndex - 1;
17    if (newIndex < 0) {
18        var maxIndex = doms.carouselList.children.length - 1;
19        doms.carouselList.style.marginLeft = -maxIndex * containerWidth + 'px';
20        newIndex = maxIndex - 1;
21    }
22    moveTo(newIndex);
23}

7.图片瀑布流

这个比较好玩,看源码讲

8.五子棋游戏

这个比较好玩,看源码讲

相关推荐

六月初至七月中旬|前端学习简要总结,生活的小回顾

在这段时间里我通过完成多个项目,深入学习了前端和全栈开发的技术。主要使用了 Vue3、C++ W...

grtsinry43
7/12/2024
28
0
0

用一个月的时间写一个自己的博客系统——Grtblog的技术介绍

终于,历时一个多月的开发 ~~bug~~ 和测试,这个目前问题很多很不成熟很难用的系统终于上线了.....

grtsinry43
12/14/2024
117
4
0

学习分享|跨域解决、安卓开发探索、油猴脚本探索

最近学习的一些内容,包括跨域问题及其解决方案,安卓开发的简单探索,OpenAI的api做了个小插...

grtsinry43
6/10/2024
35
0
0

折腾记录|使用 Nuxt.js 重写个人主页,使用 SSR 优化 SEO ,实现一些期待已久的效果

在 22 年刚创建个人主页的时候,由于我的技术水平不够,只能用一些 wordpress type...

grtsinry43
9/19/2024
24
0
0

使用 BeautifulSoup 配合请求库实现简单的爬虫程序

事情起源于课内的课程实验作业...因为要求要用爬虫,~~不必说课内讲的一言难尽,更不必说就算讲了我也...

grtsinry43
1/7/2025
67
0
0
COMMENT 7273217720039116800

发表评论

登录之后评论体验更好哦 ~
支持 Markdown 语法 0 / 3000

在风雨飘摇之中

本站已运行了

一路走来,感谢陪伴与支持

愿我们不负热爱,继续前行

全站通知
更新通知