前端特效学习记录(1)

全面掌握网页特效开发:8大常见网站特效实战实现 发布-订阅模式(Pub/Sub)允许组件之间通过事件总线通信,而非直接调用对方方法,从而降低耦合度。尽量使用transform替代传统定位属性;避免在动画过程中读取布局属性;合理使用进行阶段性优化;利用 DevTools 分析图层结构,确认是否成功提升。 阅读详情

(前3个都是在B站学习的记录(代码源自“前端创意工坊”),后一个是自己原创)

1.海浪效果

<!--python:
{
        "bg-color":'rgb(240, 217, 158)', 
        "button-color":'rgb(250, 227, 178)', 
        "button-hover": "rgb(173, 214, 127)",
        "text":"wave of the sea",
        "text-color":"white",
}
-->

<!DOCTYPE html>
<html>
    <head>
        <style>
            html, body {
                display: flex;
                align-items: center;
                justify-content: center;
                background: linear-gradient(antiquewhite, navajowhite);
                height: 100%;
            }
  
            .sea {
                width: 300px;
                height: 300px;
                position: relative;
                background-color: whitesmoke;
                background-image: linear-gradient(
                    darkblue,
                    rgba(255, 255, 255, 0) 80%,
                    rgba(255, 255, 255, 0.5)
                    
                );
                border-radius: 5px;
                box-shadow:2px 30px rgba(0, 0, 0, 0.2);
                overflow: hidden;
            }

            .title {
                font-size: 20px;
                color: white;
                letter-spacing: 10px;
                text-transform: uppercase;
                text-align: center;
                line-height: 250px;
            }

            .sea .wave {
                height: 500px;
                width: 500px;
                background-color: aqua;
                filter: opacity(0.3);
                position: absolute;
                top: -250px;
                left: -100px;
                border-radius: 43%;
                animation: drift infinite;
            }

            .sea .wave:nth-of-type(1) {
                animation-duration: 5s;
            }

            .sea .wave:nth-of-type(2) {
                animation-duration: 10s;
                background-color: red;
                filter: opacity(0.1);
            }

            .sea .wave:nth-of-type(3) {
                animation-duration: 15s;
            }

            @keyframes drift
            {
                from {
                    transform: rotate(0deg);
                }
                to {
                    transform: rotate(360deg);
                }
            }
        </style>
    </head>

    <body>
        <div class="sea">
            <span class="wave"></span>
            <span class="wave"></span>
            <span class="wave"></span>
            <p class="title">The Sea</p>
        </div>
    </body>
</html>

2.移动光瓶

<!--python:{
    "text":"Colorful Glowing Liquid",
    "bg-color":"#0f0f0f"
}
-->
<!DOCTYPE html>
<html>
    <head>
        <style>
            *
            {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }

            body
            {
                display: flex;
                justify-content: center;
                align-items: center;
                min-height: 100vh;
                background:  #121212;
            }

            .bowl
            {
                position: relative;
                width: 300px;
                height: 300px;
                background: rgba(255, 255, 255, 0.1);
                border-radius: 50%;
                border: 80x solid transparent;
                transform-origin: bottom;
                animation: animate 5s linear infinite;
            }

            .bowl::before
            {
                content: "";
                position: absolute;
                width: 40%;
                height: 30px;
                border: 15px solid #444;
                border-radius: 50%;
                top: -15px;
                left: 50%;
                transform: translateX(-50%);
                box-shadow: 0 10px #222;
            }

            .bowl::after
            {
                content: "";
                position: absolute;
                top: 40%;
                left: 50%;
                transform: translate(-50%, -50%);
                width: 150px;
                height: 80px;
                background: rgba(255, 255, 255, 0.05);
                border-radius: 50%;
            }

            .liquid
            {
                position: absolute;
                top: 50%;
                left: 5px;
                right: 5px;
                bottom: 5px;
                background-color: #41c1fb;
                border-bottom-left-radius: 150px;
                border-bottom-right-radius: 150px;
                filter: drop-shadow(0 0 80px #41c1fb);
                
                transform-origin: top;
                animation: animateLiquid 5s linear infinite;
            }

            .liquid::before
            {
                content: "";
                position: absolute;
                width: 100%;
                height: 20px;
                background-color: #41c1e0;
                border-radius: 50%;
                top:-10px;
                filter: drop-shadow(0 0 80px #41c1fb);
            }

            .shadow
            {
                position: absolute;
                width: 300px;
                height: 30px;
                background-color: rgba(0, 0, 0, 0.5);
                top: calc(50% + 150px);
                left: 50%;
                transform: translate(-50%, -50%);
                border-radius: 50%;
            }

            @keyframes animate
            {
                0%
                {
                    filter: hue-rotate(0deg);
                    transform: rotate(0deg);
                }
                25%
                {
                    transform: rotate(15deg);
                }
                50%
                {
                    transform: rotate(0deg);
                }
                75%
                {
                    transform: rotate(-15deg);
                }
                100%
                {
                    filter: hue-rotate(360deg);
                    transform: rotate(0deg);
                }
            }

            @keyframes animateLiquid {
                0%
                {
                    transform: rotate(0deg);
                }
                25%
                {
                    transform: rotate(-20deg);
                }
                50%
                {
                    transform: rotate(0deg);
                }
                75%
                {
                    transform: rotate(20deg);
                }
                100%
                {
                    transform: rotate(0deg);
                }
            }
        </style>
    </head>

    <body>
        <section>
            <div class="shadow"></div>
            <div class="bowl">
                <div class="liquid"></div>
            </div>
        </section>
    </body>
</html>

3.时钟

<!--python:{
    "text":"clock -- for my passed time",
    "bg-color":"#7b7ba1",
    "text-color":"#7a7aba",
    "button-color":"#acacfc",
    "button-hover":"#bfbfff",
}-->
<!DOCTYPE html>

<html>

    <head>
        <style>
            body
            {
                background-color: #acacba;
            }
            .play
            {
                display: flex;
                justify-content: center;
                align-items: center;
                height: 80vh;
                width: 100%;
            }

            .clock
            {
                background-color: #dadada;
                width: 300px;
                height: 300px;
                border-radius: 50px;
                display: flex;
                justify-content: center;
                box-shadow: 20px 20px 10px -10px rgba(0, 0, 0, 0.35),
                inset 10px 10px 10px 5px rgba(255, 255, 255, 0.75),
                -10px -10px 10px 5px rgba(255, 255, 255, 0.25),
                inset 5px 5px 4px 1px rgba(0, 0, 0, 0.35);
            }

            .numbers
            {
                width: 250px;
                height: 250px;
                position: absolute;
                background-color: #152b4a;
                display: flex;
                align-self: center;
                align-items: center;
                justify-content: center;
                border-radius: 50%;
                box-shadow: 10px 10px 5px -5px #152b4a66,
                inset 10px 10px 5px -5px rgba(255, 255, 255, 0.15);
            }

            .numbers::before
            {
                content: "";
                align-self: center;
                position: absolute;
                width: 180px;
                height: 180px;
                background-image: linear-gradient(rgb(245, 75, 75), rgb(105, 105, 250));
                border-radius: 50%;
                animation: rota 5s infinite;
            }

            .numbers::after
            {
                content: "";
                position: absolute;
                width: 170px;
                height: 170px;
                background-color: #152b4a;
                border-radius: 50%
            }

            .numbers span
            {
                position: absolute;
                inset: 5px;
                color: white;
                text-align: center;
                font-size: 15px;
                transform: rotate(calc(90deg * var(--i)));
            }

            .numbers span b
            {
                display: inline-block;
                transform: rotate(calc(-90deg * var(--i)));
            }

            .numbers .center
            {
                display: flex;
                align-self: center;
                justify-content: center;
                width: 10px;
                height: 10px;
                background-color:rgb(245, 75, 75);
                z-index: 20;
                border-radius: 50%;
                border: solid 3px beige;

            }

            .number 
            {
                position: absolute;
                inset: 0;
                border-radius: 50%;
                display: flex;
                justify-content: center;
                z-index: 10;
            }

            .number i
            {
                position: absolute;
                width: 3px;
                height: 50%;
                background-color: #fff;
                transform: scaleY(0.55);
                transform-origin: bottom;
            }

            .number#h i
            {
                transform: scaleY(0.35);
                width: 4px;
            }

            .number#m i
            {
                transform: scaleY(0.55);
                width: 3px;
            }

            .number#s i
            {
                transform: scaleY(0.65);
                background-color: rgb(245, 75, 75);
                width: 2px;
            }

            .sanlian
            {
                display: flex;
                justify-content: center;
            }

            .sanlian div
            {
                display: flex;
                align-self: center;
                border-radius: 50%;
                width: 50px;
                height: 50px;
                background-color: #dadada;
                margin: 10px;
                box-shadow: 10px 10px 10px -5px rgba(0, 0, 0, 0.35),
                inset 10px 10px 10px 5px rgba(255, 255, 255, 0.35),
                -10px -10px 10px -5px rgba(255, 255, 255, 0.35);
                justify-content: center;
                
            }

            .sanlian div b{
                display: flex;
                align-self: center;
                color: #7a7aba
            }

            .sanlian b:hover
            {
                color: #000
            }

            @keyframes rota {
                from {transform: rotate(0deg);}
                to {transform: rotate(360deg);}
            }
            
        </style>

    </head>

    <body>
        <div class="play">
            <div class="clock">
                <div class="numbers">
                    <span style="--i:1"><b>3</b></span>
                    <span style="--i:2"><b>6</b></span>
                    <span style="--i:3"><b>9</b></span>
                    <span style="--i:0"><b>12</b></span>
                    <div class="number" id="h"><i></i></div>
                    <div class="number" id="m"><i></i></div>
                    <div class="number" id="s"><i></i></div>
                    <div class="center"></div>
                </div>
            </div>
        </div>
        

        <div class="sanlian">
            <div><b>点赞</b></div>
            <div><b>投币</b></div>
            <div><b>关注</b></div>
        </div>


        <script>
            let h = document.querySelector("#h");
            let m = document.querySelector("#m");
            let s = document.querySelector("#s");

            setInterval(function (){
                date = new Date();
                let hh = date.getHours() * 30;
                let mm = date.getMinutes() * 6;
                let ss = date.getSeconds() * 6;
                h.style.transform = `rotate(${hh + mm/12}deg)`;
                m.style.transform = `rotate(${mm}deg)`;
                s.style.transform = `rotate(${ss}deg)`;
            }, 1000);
        </script>


    </body>
</html>

4.云朵

<!DOCTYPE html>
<html>
    <head>
        <style>
            body 
            {
                background-color: darkslategrey;
            }

            .play
            {
                display: flex;
                height: 80vh;
                align-items: center;
            }

            .title
            {
                text-align: center;
                margin-top:20px;
                font-size: 40px;
                font-family:'Courier New', Courier, monospace;
                font-weight:800;
                color:rgb(82, 122, 87)
            }

            .center
            {
                position: relative;
                display: flex;
                align-items: center;
                margin: auto;
                width: 300px;
                height: 300px;
            }

            .cloud
            {
                background-color: beige;
                width: 100px;
                height:100px;
                border-radius: 50%;
                position: absolute;
                animation: lighting 3s infinite;
            }

            @keyframes lighting
            {
                0% {background-color: beige;}
                10% {background-color:rgb(83, 83, 74);}
                20% {background-color: beige;}
                30% {background-color:rgb(83, 83, 74);}
                40% {background-color: beige;}
                100% {background-color: beige;}
            }


            .cloud:nth-of-type(1)
            {
                top:50px;
                left: 20px;
                width: 120px;
                height: 120px;
            }

            .cloud:nth-of-type(2)
            {
                top:30px;
                left: 70px;
                width: 150px;
                height: 150px;
            }

            .cloud:nth-of-type(3)
            {
                top:90px;
                left: 150px;
                width: 110px;
                height: 110px;
            }

            .cloud:nth-of-type(4)
            {
                top:60px;
                left: 50px;
                width: 150px;
                height: 150px;
            }

            .rain
            {
                background-color: aqua;
                width: 2px;
                height: 10px;
                position: absolute;

            }


        </style>
    </head>

    <body>
        <div class="title">What a rainning day!</div>
        <div class="play">
            <div class="center">
                <div class="cloud"></div>
                <div class="cloud"></div>
                <div class="cloud"></div>
                <div class="cloud"></div>
                <div class="cloud"></div>
                <div class="eye"></div>
                <div class="eye" style="left:150px;"></div>
                <div class="mouth"></div>
                <div class="rains"></div>
            </div>
        </div>
        

        <script>
            let playObject = document.querySelector(".rains");
            let startY = 200;
            let minX = 50;
            let deltaY = 10;
            let maxW = 10;


            setInterval(
                function() {
                    let rain = document.createElement("div");
                    rain.className = "rain";
                    rain.__x = 40 + Math.random() * 150;
                    rain.__y = 200;
                    rain.__w = 3;
                    rain.__max_y = 300 + Math.random() * 100; 
                    rain.__state = "fall"
                    rain.style.width = `${Math.random() * 2 + 2}px`;
                    rain.style.height = `${Math.random() * 3 + 12}px`;
                    playObject.appendChild(rain);
                }, 100
            );

           

            setInterval(
                function (){
                    for (var obj of playObject.children)
                    {
                        if (obj.__state == "fall")
                        {
                            obj.__y += deltaY;
                            obj.style.top = `${obj.__y}px`;
                            obj.style.left = `${obj.__x}px`;
                            if (obj.__y >= obj.__max_y)
                            {
                                obj.__state = "died";
                                obj.style.height = "2px";
                            }
                        }
                        else
                        {
                            obj.__w += 5;
                            obj.style.width = `${obj.__w}px`;
                            obj.__x -= 1.5
                            obj.style.left = `${obj.__x}px`;
                            if (obj.__w > maxW)
                            {
                                playObject.removeChild(obj);
                            }
                        }
                        
                    }
                },100
            );
            
        </script>
    </body>
</html>

前几个开头都有奇怪的注释,各位大佬不要误会哈,这是因为我在另一个项目中想在pyqt端显示HTML内容的同时也改变pyqt端的主题。本想用Qwebchannel做,结果网上找的webchannel.js一运行pyqt窗口就奇怪的退出了,也没有报错。之后又想用websocket通信的方式让HTML和python通信,但我太懒,又没做,所以来了个简单粗暴的办法。这几行注释会由我自己写的解析器读取,在python端生成一个配置字典,这个字典控制着界面的配色。

对了,云朵也可加阴影,更有立体感:box-shadow: 10px 1px 10px 5px rgba(0, 0, 0, 0.25);

效果是这样:

那个项目做好后我会在GitHub开源,到时候欢迎各位大佬给出改进建议~

H5特效素材大集合:前端动效实战资源包 jQuery 允许通过扩展$.easing对象来注册自定义缓动函数,从而实现独特的动画节奏。例如,实现一个“弹性反弹”效果(elastic easing):var a = c;a = c;} else { 阅读详情

相关推荐

QQ空间代码查询工具:从HTML特效到前端启蒙

在Web开发早期,HTML、CSS与JavaScript构成了网页个性化的技术基石,而代码复用与资源整理则是提升效率的关键。面对海量零散的装饰代码,如何快速检索并安全复用成为许多初学者的痛点。QQ空间代码查询工具正是为解决这一需求而生,它将常见特效、样式片段和素材分类归档,以“查字典”方式降低技术门槛。从透明Flash到鼠标特效,这些代码片段不仅承载了一代网民的个性化记忆,也无形中完成了前端开发的启蒙教育。时至今日,其“先模仿、后修改、再创造”的学习路径与组件化思想仍具借鉴意义,启发我们如何利用历史资源构建

weixin_33519829的博客 114

【前端】在Vue2中使用Vanta.js炫酷动态背景(全屏背景)

由于博主在参考官网及官方GitHub进行应用时遇到一些问题,因此写了该篇博客,以避免大家因找Bug而浪费时间,方便快速的应用。

鹏啊鹏 1万+

直播平台SVGA礼物特效专业测试版

SVGA特效技术在直播和游戏领域中扮演着至关重要的角色。SVGA(Super VGA)是一种图形显示标准,它为开发者提供了一种方式来创建更加丰富、高质量的视觉效果,从而吸引和保持用户的注意力。与传统的VGA相比,SVGA支持更高的分辨率和更丰富的色彩深度,使得特效能够更加细腻和生动地展现。在本章节中,我们探讨了直播平台互动元素的增强,特别是礼物特效在提升直播互动性方面的作用。我们分析了特效在直播互动中的角色和对观众参与度的影响,并提出了从技术层面和用户体验层面的整合方法。

weixin_35762258的博客 1076

HTML5中一些酷炫又有趣的新特性代码整理汇总

HTML5 是 HyperText Markup Language 5 的缩写,HTML5技术结合了HTML4.01的相关标准并革新,符合现代网络发展要求,在2008年正式发布。HTML5 由不同的技术构成,其在互联网中得到了非常广泛的应用,提供更多增强网络应用的标准机。与传统的技术相比,HTML5 的语法特征更加明显,并且结合了SVG的内容。HTML5并非仅仅用来表示Web内容,它将 Web带入一个成熟的应用平台,在HTML5平台上,视频、音频、图象、动画,以及同电脑的交互都被标准化。

南余.的博客 6037

自动驾驶控制算法——MPC控制算法

自动驾驶MPC控制算法摘要 模型预测控制(MPC)是一种基于系统预测模型的先进控制算法,通过滚动优化方式求解最优控制输入。其核心流程包括:1)使用数学模型预测未来系统状态;2)定义优化目标函数衡量预测误差;3)求解满足约束的最优控制序列;4)仅执行第一步控制并重复该过程。 相比传统PID控制,MPC具有预测未来、多步优化、显式处理约束等优势,特别适合自动驾驶中对安全性要求高的场景,如轨迹跟踪、车道保持、联合纵横向控制、自动泊车和动态避障等。MPC通过状态空间模型预测系统行为,在每个控制周期计算未来N步的控制

swaggytiger的博客 7919

S7-1200五轴伺服系统PLC控制方案与调试技巧

工业自动化领域中,多轴伺服控制是实现精密加工的核心技术。基于PROFINET实时通信协议和PLCopen运动控制标准,现代PLC(如西门子S7-1200)能够实现多轴高精度同步控制。其技术原理是通过等时同步模式确保各轴运动的时序一致性,结合PID调节和电子齿轮比实现位置闭环。这种方案在数控机床、3D打印等场景具有重要应用价值。本文以五轴联动系统为例,详细解析了S7-1200与V90伺服驱动器的硬件组态方案,包括PROFINET环网配置和IRT同步设置。在软件层面,重点介绍了基于TIA Portal的工艺对象

weixin_34332905的博客 414

Web前端项目-页面动态背景【附完整源码】

三大背景模板,附完整源码~!

qiao_yue的博客 3597

调用IP核、移植/复制IP核以及解决IP核被锁住/红锁问题(基于vivado)

解决不同工程IP核之间复制调用以及IP核红锁问题,让开发更简单!

weixin_44502554的博客 1万+

HTML创意动画代码

这个代码使用了 Canvas 技术,创建了一个随机生成的气泡背景并且让气泡动态漂浮,形成了一个很有趣的效果。你可以在这个基础上尝试进行一些自己的创意,比如修改气泡的数量、大小、颜色,以及运动的方式等等。 这个代码使用了 CSS 的动画和阴影特效,让页面中的文字在红、橙、黄、绿、蓝五种颜色之间不断变化,形成了一个很有趣的效果。你可以在这个基础上尝试进行一些自己的创意,比如修改文字的大小、样式、颜色,以及变化的频率和方式等等。 该示例中,我们使用了 transform-style: preserve-3d 属性

qq_52108058的博客 1万+

57、各向异性材料力学问题的分析与求解

本文系统分析了各向异性材料在扭转和平面变形问题中的力学行为,介绍了基于应力和位移的求解方法,包括应力函数推导、位移场假设、艾里应力函数法等。通过具体示例,如椭圆截面杆的扭转和各向异性板的均匀拉伸,展示了求解过程,并讨论了各向异性材料在工程应用中的意义及未来研究方向。

7h6j5k4l3的博客 204

RK3568平台(电源篇)电源域IO配置

在kernel之前需要修改电源域,主控电源域的IO电平要与对接外设芯片的IO电平匹配,还要注意软件的电压配置要跟硬件的电压一致,否则,最坏的情况可能会导致IO的损坏。其实就是管理 IO 输出的电平;假如硬件上 IO 电源域配置为 3.3V,则 IO 输出最大电平为 3.3V;同理 IO 电源域硬件配置为 1.8V,则 IO 输出最大电平是 1.8V;这样有利于 IO 电平的灵活配置;

weixin_49303682的博客 3478

精心整理的10套最美Web前端新年特效--提前祝大家新年快乐

亲爱的小伙伴们,2022年春节就快到了!~ 在这里祝各位程序员朋友2022年身体健康,代码没有bug,不用996、远离ICU。 今天给大家精心整理了10套最美前端新年特效!提前祝大家新年快乐呀!!!! 2022炫酷新年快乐html网页特效: 一款效果超级炫酷的2022新年快乐html网页特效,霓虹的城市夜景和绚烂的烟花很是特别,页面还有交互效果,点击鼠标就会呈现烟花绽放的特效,唯美不过如此。 2022烟花背景新年快乐html网页特效: 2022已经正式来临,距离中国人的农历...

BYGFJ的博客 3751

NX二次开发新建组件

NXOpen新建组件

qq_39541524的博客 329

记录平时有用到的前端学习网站

es6转es5,Babel https://babeljs.io/repl(常用) css模块 1.检测css兼容性 https://caniuse.com/#home 2.在线CSS颜色/透明度渐变效果代码工具(常用) http://tools.jb51.net/code/css_generator 插件特效模块 1.检测css兼容性 https://www.html...

diebaiying3731的博客 368

Python 控制 Keysight N9010B/N9020/N9030 频谱仪

为什么要实现频谱仪的控制呢?起因是因为我司RF的同事们需要对通信模块进行GSM的带内杂散进行测试,由于该测试的频点涉及900多个,所以急需开发一款自动化测试工具。该工具需同时实现对无线通讯仪和频谱仪的控制,这篇文章主要介绍一下频谱仪的控制!做通信的应该对频谱仪都不陌生,不过我之前做的都是软件相关行业,所以我对频谱仪其实还是很陌生的;不过好在我的同时们都很热心,加上仪器的文档,一段时间下来,也算是熟悉了一些。

xgh1951的博客 1万+

71、机器人与机器人控制器技术解析

本文深入解析了机器人控制器的通信接口、传感器数据采集与处理以及抓手技术三大核心技术。详细介绍了数字I/O、串行接口、总线系统和以太网等通信方式,探讨了各类传感器在焊接、装配、质量检测等场景中的应用,并阐述了手眼校准与路径校正的关键方法。同时,文章还分析了不同类型抓手的特点及选型设计原则,展示了机器人在现代工业自动化中的高效性与灵活性。通过实际编程示例与流程图,全面呈现了机器人系统的集成与控制逻辑。

gin88的博客 275

前端学习(一)有用的网站

决定在csdn上记录我学习前端的过程。 在b站上看到有博主介绍一些网站,记录一下。 1.色彩搭配:flatuicolors.com 2.中国色:zhongguose.com 3.阿里的矢量图标库:iconfont.cn 4.fontawesome(前端美化):fontawesome.com.cn 5.插件:jq22.com 6.音效:aigei.com 7.特效社区(英文):codepen.io 前端常用插件、工具类库汇总 https://juejin.im/post/5ba7d5dd5188255c

xyの学习空间 346

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

前端学习记录 Day4(jQuery)

Day 4 2019年6月23日。 这是我学习前端的第四天。 这一天,我学到了以下的知识。

赈川 4335

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

记录学习前端知识的旅程【2】

又是新的一天到来,每天学习一点前端小知识。 今天学习了几个关于pc端特效的属性。 1、offset系列属性 offsetLeft 可以动态获取元素距离父元素左边框的偏移量。//父元素需带有定位,如果父元素没有定位则相对于body偏移 offsetTop可以动态获取元素距离父元素上边框的偏移量。//父元素需带有定位,如果父元素没有定位则相对于body偏移 offsetWidth 获取自身的宽度包括padding、border、内容,返回值不带单位。 offsetHeight 获取自身的...

Lce_mark的博客 189

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

献给大学生,未来程序猿的前端学习网站

* 视频学习网站,请阅读我的《读大学的你,还在迷茫吗?快看看这些视频学习网站》 *1、博客园(http://www.cnblogs.com/) 博客园创立于2004年1月,是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。 2、网页特效(ht

南烟阁 1068

关于前端学习的一些感悟

一:关于问题解决: 在前端开发里解决问题最重要的是思考问题的方式,有的时候换个角度去思考问题,会收到意想不到的结果。下面说几种解决问题的方式。 搜索引擎:如果认为这个问题在搜索引擎能找到答案,一定选择搜索引擎,百度不到,有时候google或许能找到答案。这种问题的答案有个印象便可以,不需要刻意去记录 问题抛出来,大家一起讨论:如果别人帮你解决了问题,一定要记住这个问题的解决方式,因为别人能解...

a514224717的专栏 771

一次解决页面特效问题的排查记录

一次解决页面特效问题的排查记录

qq_38472465的博客 60

渡一学习笔记:canvas必会、css滤镜、特效、svg

弧形选项卡 瀑布流布局 手写钉钉动画 鼠标移动的高亮边框 头像超出边框 透明盒子的渐变阴影 图片3D倾斜 图片3D突显 图片9宫格 图片锯齿菱形边缘 图片轮播 图片上下视差滚动 图片旋转视差 文字标题丝滑动画 连续阴影 文字交错排列 文字交融展开 文字连续光影 文字镂空 文字下划线动画 文字自动适配背景 下拉菜单过渡 圆形放大的hover 动画延时动画 canvas svg描边动画

全网同名:PBitW,更多内容,可以搜索《普通前端进阶记》 1266

学前端的你,还在迷茫吗?快看看这些前端学习网站吧

1、博客园(http://www.cnblogs.com/) 博客园创立于2004年1月,是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。 2、网页特效(http://www.csrcode.cn/) 网页特效网是一个集各种网页素材以及网页源码为一体的面向开发人员的一个网页素材网站,如果你想要学习前端页面开发,这里,将是一个很好的起点。

BYGFJ的博客 1352

直播美颜SDK二次开发实录:滤镜特效功能从0到1实现

本文结合真实项目经验,详细复盘了直播美颜 SDK 二次开发过程中,滤镜特效功能从 0 到 1 的完整实现思路。文章从架构设计、滤镜算法选型、参数体系、性能优化到商业价值展开,既有技术深度,又兼顾产品与运营视角。

wanyuekeji的博客 571

学习记录CSS练习语法属性

ClerloveUZI的博客 1867
下一篇: STM32探索记录(一) OLED和W25Q64播视频
python_use
博客等级 码龄5年 430粉丝 38原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值