前端——自定义组件

这篇具有很好参考价值的文章主要介绍了前端——自定义组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、创作纪念日——6月7日(机缘巧合)

二、收获

三、前端组件

3.1、重要的CSS

3.2、实用组件

1、站点访问次数

2、鼠标样式

3、烟花点击特效

4、GIF动态小人(出现在左下角)

5、天气插件

6、音乐播放器

3.3、CSS组件

1、卡片悬停

2、黏性标签(回到顶部)

3、加载动画

4、图标库中文网


一、创作纪念日——6月7日(机缘巧合)

  • 在学习的道路上,总有那么一个时刻,你会想要将自己所学到的知识点整理成一篇博客。就像在6月7日,我也有了这样的想法,想要将自己学习到的PPT知识点记录下来。
  • 即使当时的想法还很简单,但这个念头却是展示了我对于自我提高的渴望与努力。随着时间的推移,我不断地积累和沉淀,慢慢地我的表达能力和文字组织能力有了显著的提高。
  • 记录所学知识,不仅是检验自己学习成果的方式,更是激励自己前行的动力。它让我更加清晰地认知到自己所掌握的知识,也令我更好地理解和应用这些知识点。
  • 因此,秉持这样的信念,我一直在努力着,通过记录、整理,不断积累和提升自己,在自我探索的道路上迈出更加坚定的步伐。

二、收获

  • 分享知识是一件非常有意义的事情,因为它不仅能够帮助自己更好地理解和掌握所学的内容,也能够让更多的人受益。正如我在博客中分享前后端、数据库、Linux等知识,收获了100多个粉丝和数百个赞,让我感到十分开心和满足。
  • 通过分享知识,我不仅可以巩固自己的学习成果,还可以将这些知识分享给其他人,让他们少走弯路,更快速地掌握这些技能。由此,可以满足我对于自我成长和贡献社会的愿望。
  • 在获得这些粉丝和赞的同时,我也深刻认识到了知识分享的力量。只要我们愿意分享,就会有更多人借鉴和学习,在获得进步的同时,也能够促进技术共享和社区发展。这些积极的影响不仅令我内心感到欣慰,也让我更加坚定了自己持续分享的决心。
  • 因此,我将继续坚持分享,并希望我的经验和知识能够为更多人带来帮助和启发,共同推动技术和社区的进步。

三、前端组件

之前搞了几个自适应的网页,自己也收获了许多,分享一下其中用到的知识

做自适应,一定要熟悉CSS,这真是太重要了(我因为生疏,所以需要大量时间去查询3w,找到自己想要实现的效果,真的很浪费时间,┭┮﹏┭┮) 

3.1、重要的CSS

用方框圈起来的,就是经常用的!!!

前端——自定义组件

 前端——自定义组件

3.2、实用组件

1、站点访问次数

前端——自定义组件

<!-- 站点访问次数开始 -->
<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
<span id="busuanzi_container_site_pv">
本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span>
<span id="busuanzi_container_site_uv">
  本站访客数<span id="busuanzi_value_site_uv"></span>人次
</span>
<span id="busuanzi_container_page_pv">
  本文总阅读量<span id="busuanzi_value_page_pv"></span>次
</span>
<!-- 站点访问次数结束 -->

 2、鼠标样式

可自己去网上下载喜欢的cur,然后再替换路径

 

<!--鼠标样式开始-->
<style>
body {
    cursor: url(https://cos.cdn.azpay.cn/uploads/2021/11/28/arrow.cur),
        default;
}
a,
img {
    cursor: url(https://cos.cdn.azpay.cn/uploads/2021/11/28/btn.cur),
        default;
}
</style>
<!--鼠标样式结束-->

3、烟花点击特效

前端——自定义组件

<script>
    function clickEffect(){let _0x6f302d=[];let _0x2c6e67=![];let _0x12122b;let _0x3282b3=0x0;let _0x2183ae,_0x45a85a;let _0x5654f6;let _0x230b32;let _0x80ae27;const _0xc5f619=['#F73859','#14FFEC','#00E0FF','#FF99FE','#FAF15D'];const _0x53d4d5=document['createElement']('canvas');document['body']['appendChild'](_0x53d4d5);_0x53d4d5['setAttribute']('style','width:\x20100%;\x20height:\x20100%;\x20top:\x200;\x20left:\x200;\x20z-index:\x2099999;\x20position:\x20fixed;\x20pointer-events:\x20none;');const _0x3455a4=document['createElement']('span');_0x3455a4['classList']['add']('pointer');document['body']['appendChild'](_0x3455a4);if(_0x53d4d5['getContext']&&window['addEventListener']){_0x80ae27=_0x53d4d5['getContext']('2d');_0x53e60b();window['addEventListener']('resize',_0x53e60b,![]);_0x37cc71();window['addEventListener']('mousedown',function(_0x491c17){_0x4a2ae6(_0x414fbc(0xa,0x14),_0x491c17['clientX'],_0x491c17['clientY']);document['body']['classList']['add']('is-pressed');_0x12122b=setTimeout(function(){document['body']['classList']['add']('is-longpress');_0x2c6e67=!![];},0x1f4);},![]);window['addEventListener']('mouseup',function(_0x5dbe63){clearInterval(_0x12122b);if(_0x2c6e67==!![]){document['body']['classList']['remove']('is-longpress');_0x4a2ae6(_0x414fbc(0x32+Math['ceil'](_0x3282b3),0x64+Math['ceil'](_0x3282b3)),_0x5dbe63['clientX'],_0x5dbe63['clientY']);_0x2c6e67=![];}document['body']['classList']['remove']('is-pressed');},![]);window['addEventListener']('mousemove',function(_0x14f4ab){let _0x2dab23=_0x14f4ab['clientX'];let _0x3a846c=_0x14f4ab['clientY'];_0x3455a4['style']['top']=_0x3a846c+'px';_0x3455a4['style']['left']=_0x2dab23+'px';},![]);}else{console['log']('canvas\x20or\x20addEventListener\x20is\x20unsupported!');}function _0x53e60b(){_0x53d4d5['width']=window['innerWidth']*0x2;_0x53d4d5['height']=window['innerHeight']*0x2;_0x53d4d5['style']['width']=window['innerWidth']+'px';_0x53d4d5['style']['height']=window['innerHeight']+'px';_0x80ae27['scale'](0x2,0x2);_0x2183ae=_0x53d4d5['width']=window['innerWidth'];_0x45a85a=_0x53d4d5['height']=window['innerHeight'];_0x5654f6={'x':_0x2183ae/0x2,'y':_0x45a85a/0x2};_0x230b32={'x':_0x2183ae/0x2,'y':_0x45a85a/0x2};}class _0x2b3bf2{constructor(_0x5a2e6a=_0x5654f6['x'],_0x5b3cb7=_0x5654f6['y']){this['x']=_0x5a2e6a;this['y']=_0x5b3cb7;this['angle']=Math['PI']*0x2*Math['random']();if(_0x2c6e67==!![]){this['multiplier']=_0x414fbc(0xe+_0x3282b3,0xf+_0x3282b3);}else{this['multiplier']=_0x414fbc(0x6,0xc);}this['vx']=(this['multiplier']+Math['random']()*0.5)*Math['cos'](this['angle']);this['vy']=(this['multiplier']+Math['random']()*0.5)*Math['sin'](this['angle']);this['r']=_0x414fbc(0x8,0xc)+0x3*Math['random']();this['color']=_0xc5f619[Math['floor'](Math['random']()*_0xc5f619['length'])];}['update'](){this['x']+=this['vx']-_0x230b32['x'];this['y']+=this['vy']-_0x230b32['y'];_0x230b32['x']=-0x2/window['innerWidth']*Math['sin'](this['angle']);_0x230b32['y']=-0x2/window['innerHeight']*Math['cos'](this['angle']);this['r']-=0.3;this['vx']*=0.9;this['vy']*=0.9;}}function _0x4a2ae6(_0x4b4ac1=0x1,_0xae056d=_0x5654f6['x'],_0x671825=_0x5654f6['y']){for(let _0x5b6e73=0x0;_0x5b6e73<_0x4b4ac1;_0x5b6e73++){_0x6f302d['push'](new _0x2b3bf2(_0xae056d,_0x671825));}}function _0x414fbc(_0x18efd0,_0x1844d5){return Math['floor'](Math['random']()*_0x1844d5)+_0x18efd0;}function _0x37cc71(){_0x80ae27['fillStyle']='rgba(255,\x20255,\x20255,\x200)';_0x80ae27['clearRect'](0x0,0x0,_0x53d4d5['width'],_0x53d4d5['height']);for(let _0x2e024b=0x0;_0x2e024b<_0x6f302d['length'];_0x2e024b++){let _0x4a330a=_0x6f302d[_0x2e024b];if(_0x4a330a['r']<0x0)continue;_0x80ae27['fillStyle']=_0x4a330a['color'];_0x80ae27['beginPath']();_0x80ae27['arc'](_0x4a330a['x'],_0x4a330a['y'],_0x4a330a['r'],0x0,Math['PI']*0x2,![]);_0x80ae27['fill']();_0x4a330a['update']();}if(_0x2c6e67==!![]){_0x3282b3+=0.2;}else if(!_0x2c6e67&&_0x3282b3>=0x0){_0x3282b3-=0.4;}_0x1b2e46();requestAnimationFrame(_0x37cc71);}function _0x1b2e46(){for(let _0x13adc0=0x0;_0x13adc0<_0x6f302d['length'];_0x13adc0++){let _0x57eaca=_0x6f302d[_0x13adc0];if(_0x57eaca['x']+_0x57eaca['r']<0x0||_0x57eaca['x']-_0x57eaca['r']>_0x2183ae||_0x57eaca['y']+_0x57eaca['r']<0x0||_0x57eaca['y']-_0x57eaca['r']>_0x45a85a||_0x57eaca['r']<0x0){_0x6f302d['splice'](_0x13adc0,0x1);}}}}clickEffect();
</script>

或者

<!-- 鼠标点击烟花爆炸效果 -->
<script type="text/javascript" src="https://api.azpay.cn/729/2.js"></script>

4、GIF动态小人(出现在左下角)

前端——自定义组件

 

<!--初音未来开始-->
<style>
    .cywl {
        position: fixed;
        width: 70px;
        height: 75px;
        z-index: 9;
        left: 0;
        bottom: 0;
        margin-bottom: calc(env(safe-area-inset-bottom) + 10px);
        cursor: pointer;
    }
</style>
<div id="audio" class="cywl">
<img src="https://external-30160.picsz.qpic.cn/39ff4096c204652d7c7b56418fb37631" width="65px" height="65px" id="d" onclick="c();">
</div>
<!--初音未来结束-->

5、天气插件

<div id="tp-weather-widget"></div><!-- 天气插件 -->
<script>
	(function(a,h,g,f,e,d,c,b){b=function(){d=h.createElement(g);c=h.getElementsByTagName(g)[0];d.src=e;d.charset="utf-8";d.async=1;c.parentNode.insertBefore(d,c)};a["SeniverseWeatherWidgetObject"]=f;a[f]||(a[f]=function(){(a[f].q=a[f].q||[]).push(arguments)});a[f].l=+new Date();if(a.attachEvent){a.attachEvent("onload",b)}else{a.addEventListener("load",b,false)}}(window,document,"script","SeniverseWeatherWidget","//cdn.sencdn.com/widget2/static/js/bundle.js?t="+parseInt((new Date().getTime() / 100000000).toString(),10)));
	window.SeniverseWeatherWidget('show', {
	flavor: "bubble",
	location: "WX4FBXXFKE4F",
	geolocation: true,
	language: "zh-Hans",
	unit: "c",
	theme: "auto",
	token: "ac1d036a-99f3-4f88-ae98-f795bb93a9f0",
	hover: "disabled",
	container: "tp-weather-widget"
	})
</script><!-- 天气插件结束 -->

6、音乐播放器

前端——自定义组件

 

<script src="//music.clwl.online/Player/player.min.js" id="SinKingMusic" key="390"></script><!-- 音乐播放 -->

3.3、CSS组件

1、卡片悬停

/* 卡片悬停 */
.card-ddd {
box-shadow: 4px 4px 2px rgba(0, 0, 0, 0.045);
/* box-shadow: 0 0 30px rgba(0,0,0,0.3); */
transition: all 0.5s ease-in-out;
}

.card-ddd:hover {
transform: translateY(-1px);
/* box-shadow: 6px 6px 5px rgba(0, 0, 0, 0.071); */
box-shadow: 0 0 20px rgba(0,0,0,0.2);
}

2、黏性标签(回到顶部)

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>Sticky Tag</title>

</head>

<body>
    <!-- 页面主体内容 -->
    <div style="height: 2000px;"></div>

    <!-- 右边黏性标签 -->
    <!-- sticky tag -->
    <div id="sticky-tag" class="sticky-tag bg-only" onclick="scrollToTop()">
        <div class="right-stikc-text">
            顶部
        </div>
    </div>

    <!-- 右边黏性标签 -->
    <style>
        /* 定义样式 */
        .sticky-tag {
            position: fixed;
            /* 左下角---这样必须是像素值!!不能是% 百分比! */
            right: -100px;
            bottom: 10%;

            transform: translateY(-50%);
            /* 盒子大小 */
            width: 50px;
            height: 50px;
            z-index: 999;

            /* 水平垂直居中 */
            display: flex;
            justify-content: center;
            align-items: center;
            /* 添加圆角属性 */
            border-radius: 50%;
            /* 添加阴影 */
            box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);

            color: #fff;
            background-color: #333;
            text-align: center;
            line-height: 30px;
            cursor: pointer;
            opacity: 0;
            transition: all .3s ease-in-out;
        }

        .sticky-tag.show {
            right: 20px;
            opacity: 1;
        }

        .right-stikc-text {
            /*  属性设置了文字的书写模式为竖排,vertical-rl 的意思是从上到下,从右到左排列文字 */
            writing-mode: vertical-rl;
            /* 属性设置了文字排列方向为混合方向,当在竖排模式下,该属性可以让文字既不会上下倒置,也不会左右倒置。 */
            text-orientation: mixed;
            font-size: 14px;
            /*  属性设置了行高为字体高度的 1.2 倍,用来控制文字的行距。 */
            line-height: 4;
            color: #fff;
            margin: auto;
        }

        /* 媒体查询 响应式 0-700px生效 */
        @media (max-width: 700px) {
            .sticky-tag {
                width: 30px;
                height: 30px;
            }

            .right-stikc-text {
                font-size: 8px;
                /* 当屏幕宽度小于400px时,黏性标签的字体大小变为 16px */
            }
        }
    </style>


    <!-- JavaScript代码 -->
    <script>
        var stickyTag = document.getElementById('sticky-tag');

        function scrollToTop() {
            // 滚动到页面顶部
            window.scrollTo({
                top: 0,
                behavior: 'smooth'
            });
        }

        window.addEventListener('scroll', function () {
            if (window.pageYOffset > 400) {
                stickyTag.classList.add('show');
            } else {
                stickyTag.classList.remove('show');
            }
        });
    </script>
</body>


</html>

3、加载动画

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Loading Animation</title>

</head>


<!-- 加载动画 CSS -->
<style>
.content {
   margin: 0;
   padding: 0;
   background-color: black;
   height: 100vh;
   display: flex;
   justify-content: center;
   align-items: center;
   color: rgb(255, 255, 255);
   font-size: 100px;
}
.gif {
    position: absolute;
    /*声明绝对定位*/
    left: 0;
    /*在页面最左侧对齐*/
    top: 0;
    /*在页面最上方对齐*/
    height: 100vh;
    /*高度是相对屏幕高度的100%*/
    width: 100vw;
    /*宽度是相对屏幕宽度的100%*/
    z-index: 9999;
    /*设置元素优先级为1级*/
    display: none;
    /*设置元素隐藏*/
    align-items: center;
    /*让子元素横向居中(声明flex后有效)*/
    justify-content: center;
    /*让子元素垂直居中(声明flex后有效)*/
    background-color: rgba(255, 255, 255, 1);
    /*设置背景颜色为黑色,并给0.5透明度*/
}
/*设置gif下的img元素样式*/
.gif>img {
    height: 200px;
    width: 200px;
}

/* 禁止滚动 */
.noscroll {
    overflow: hidden;
}
</style>

<body onload="gif_init()">
<!-- 加载动画 替换为你的gif图片 -->
<div id="loading" class="gif">
   <img src="/assets/image/cat-loading150x150.gif" />
</div>


<div class="content">
   <!-- 这里是主页内容 -->
   hello world
</div>


<script>

function gif_init() {
    //显示加载动画
    document.body.classList.add("noscroll");
    document.getElementById("loading").style.display = "flex";
    // loader.css("display", "flex");
    //调用ajax发送请求
    // esdpec.framework.core.getJsonResult('common/getalarmtree', function (res) {
    //     //请求成功后再次隐藏加载动画
    //     $(".gif").css("display", "none");
    // })
    setTimeout(function () {
        document.getElementById("loading").style.display = "none";
        document.body.classList.remove("noscroll");
    }, 1000);
}
</script>
</body>

</html>

4、图标库中文网

https://fontawesome.com.cn/v5
    <!-- Font Awesome Icons -->
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css"
        integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">

 文章来源地址https://www.toymoban.com/news/detail-481429.html

到了这里,关于前端——自定义组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 我的1827创作纪念日

    习惯性早上打开电脑,看看CSDN上的资讯,了解行业动态、当前新的技术和大佬的分享。自己动手写应该是2019 年 01 月 08 日,当时应该是在用安装和使用Oracle,遇到一些问题,写下第一篇博客 Oracle存储过程常见问题及解决方法,转眼已过去五年,同时也是参加工作的第五年,

    2024年01月16日
    浏览(44)
  • 我的创作纪念日——512

    没想到不知不觉在CSDN创作就 512 天了,想到一开始就仅仅想在CSDN记笔记,到现在成为一个小博主,认识到了很多志同道合的伙伴,中间创作我也曾经懒惰过,放弃过,但我一次又一次重新进行创作,虽然我是上了大学才开始了解程序员,成为程序员(可能现在还不合格),但

    2024年02月11日
    浏览(51)
  • 我的创作纪念日(划水...)

    提示:可以和大家分享最初成为创作者的初心 例如: 实战项目中的经验分享 日常学习过程中的记录 通过文章进行技术交流 … 提示:在创作的过程中都有哪些收获 例如: 获得了多少粉丝的关注 获得了多少正向的反馈,如赞、评论、阅读量等 认识和哪些志同道合的领域同行

    2023年04月25日
    浏览(52)
  • dreamer的创作纪念日

    先来看看这张图:  创作者dreamer来到CSDN的第1024天 提示:可以和大家分享最初成为创作者的初心 最初开始写CSDN博客,初衷是为了记录:自己工作或学习中遇到的一些问题(就像我的第一篇博客,就是刷LeetCode的题解)、一些常见工具的使用等等,方便之后遇到相同问题可以

    2024年02月02日
    浏览(44)
  • 我的创作纪念日-哈市雪花

    2018年4月13写了第一篇博客,在此之前也在用CSDN,但更多的是查阅资料,学习技术。在这之前也写过技术文章,记得最开始是在知乎上发表的,终于那一天在微博上看到大佬转换笑脸动画表情的实现思路,一时兴起用WPF实现了下,然后把文章发表在了CSDN上。 文章总是有意义的

    2023年04月16日
    浏览(43)
  • 我的创作纪念日(256天)

    我与csdn的结缘,之前在创作纪念日(128天)便已提到,今在此便不再多言 很惭愧,自六月底至八月中旬,因为忙于找工作,奔赴面试求职之际,写博客没有像之前那么勤, 但也创作了12篇博客,有幸获得1500位粉丝的关注 。其中仅有两篇博客进入热榜,最近一篇文章《Git:在

    2024年02月12日
    浏览(51)
  • 创作纪念日-我的第1024天

    不知不觉已经成为创作者的第1024天啦… … 刚开始接触博客的初衷就是为了记笔记📒、记总结📝,或许对于当时就等同于是为了找工作。 坚持学习并持续输出博客一年后,这时我发现再写博客,不在是为了找一份工作,已经变成一种习惯!一种成长型心态! 接着一年、两年

    2024年02月10日
    浏览(39)
  • 我的创作纪念日(128天)

    今天,我像往常一样打开CSDN 网站,随即弹出的两则官方私信: 我这才意识到,从去年的11月27日到现在,时光荏苒,已是128天之久。 下面我向各位看分享一下我在CSDN创作的经历和收获,以及我的一些个人感受。(ps:故事有点长严`( ﹏ )′) 我最早接触CSDN社区,起始于201

    2023年04月22日
    浏览(42)
  • 【人生历程】我的创作纪念日

    目录 与编程不得不说的爱恨情仇 在csdn的收获: 与csdn的日常 在平凡的日子偶然的成就感: 对未来的憧憬: 今天是2023.4.8号,早上的刚刚参加完蓝桥杯,下午看到csdn官方的活动,心血来潮写下以下内容,如有不适或者错误请见谅。 在2021我成功摆脱了高中生这个身份,我称为

    2023年04月09日
    浏览(42)
  • 我的创作纪念日(730天)

    不知不觉来到CSDN已经730天了,这两年来我收获丰富,从原本的只是从CSDN获取知识,到现在的传播知识,我感觉受益良多,一年多的沉淀,让我在这三个月中绽放,粉丝也从原本的两位数到现在的四千+,学习中记笔记是我养成的习惯,自己总结的东西总觉得很适合自己记忆。

    2024年01月17日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包