马黑黑 发表于 2023-5-9 20:29

css-doodle :落花缤纷

本帖最后由 马黑黑 于 2023-5-9 20:40 编辑 <br /><br /><style>
        .papa {}
        .papa > p { margin: 8px 0;}
        .mama {
                height: fit-content;
                display: grid;
                grid-template-columns: 50px auto;
                place-items: center start;
                padding: 0;
                margin: 20px 0;
                background: #f9f9f9;
                box-shadow: 0 0 2px #000;
                position: relative;
        }
        .hCode, .hLineNum {
                margin: 0;
                padding: 10px 4px;
                width: 100%;
                box-sizing: border-box;
        }
        .hCode { overflow-x: auto; tab-size: 3; }
        .hLineNum {
                border-right: 1px solid #ccc;
                text-align: right;
                user-select: none;
        }
        .stage { display: grid; place-items: center; }
</style>

<div class="papa">
        <p>实现方法:建立一定数量单元格的 css-doodle 网格,令各单元格以伪元素呈现花朵字符;所有单元格以改变 top 属性实现自上而下掉落效果,下落过程旋转一圈到两圈之间,不断循环。代码如下——</p>

        <div class="mama">
                <pre class="hLineNum"></pre>
                <pre class="hCode">
&lt;css-doodle grid="16" click-to-update&gt;
        :doodle {
                @size: 760px 500px;
                background: #333;
        }
        position: absolute;
        left: @r(100)%;
        top: -20%;
        :after {
                position: absolute;
                content: '@p(✿,❁,❀,&#128174;,&#127802;)';
                color: snow;
                font-size: @r(10, 40)px;
        }
        animation: fall @r(6,20)s @r(-6, 6)s infinite;
        @keyframes fall {
                0% { top: -20%; transform: rotate(0deg); }
                100% {top: 120%; transform: rotate(@p(360, 720)deg); }
        }
&lt;/css-doodle&gt;</pre>

        </div>
        <p><button class="btnRun" type="button" value="运行代码">运行代码</button></p>
        <div class="stage"></div>
        <p>其中的技巧,值得一提的是运行关键帧动画属性 animation 的赋值,各单元格的运行周期时长从 6 秒到 20 秒之间随机获得,运行延时从 -6秒 到 6 秒之间随机选取,如此,css-doodle 已开始运行就会有落花在途中,且落花错落有致,整个画面及其后续变化都很自然。</p>
</div>
<script>

let script = document.createElement('script');
script.src = 'https://unpkg.com/css-doodle@0.34.9/css-doodle.min.js';
document.head.appendChild(script);

let btns = document.querySelectorAll('.btnRun'),
        stages = document.querySelectorAll('.stage'),
        hCodes = document.querySelectorAll('.hCode'),
        hLineNums = document.querySelectorAll('.hLineNum');

btns.forEach((item,key) => {
        let lines = hCodes.innerText.trim().split('\n').length;
        let str = '';
        for(i = 0; i < lines; i ++) {
                str += i + 1 + '\n';
        }
        hLineNums.innerText = str;
        item.onclick = () => {
                let val = item.value;
                stages.innerHTML = val === '运行代码' ? hCodes.innerText : '';
                item.value = item.innerText = val === '运行代码' ? '关闭运行' : '运行代码';
        }
});

</script>

马黑黑 发表于 2023-5-14 10:45

南无月 发表于 2023-5-14 10:36
目前看的都只能从上往下落,无底洞没法停啊

animation属性你去查查

小辣椒 发表于 2023-5-9 20:31

这个运行代码点击后,出来一片五彩缤纷的效果

马黑黑 发表于 2023-5-9 20:32

小辣椒 发表于 2023-5-9 20:31
这个运行代码点击后,出来一片五彩缤纷的效果

好看不

小辣椒 发表于 2023-5-9 20:32

而且我手机也是秒看见,刚才那谁的我刷新无数次才看见的

小辣椒 发表于 2023-5-9 20:33

马黑黑 发表于 2023-5-9 20:32
好看不

非常好看,就不知道为什么有的手机会看不见

马黑黑 发表于 2023-5-9 20:34

小辣椒 发表于 2023-5-9 20:33
非常好看,就不知道为什么有的手机会看不见

也许是手机网速不稳定?

小辣椒 发表于 2023-5-9 20:34

而且现在的效果这么多我一下子就打开了

马黑黑 发表于 2023-5-9 20:35

小辣椒 发表于 2023-5-9 20:34
而且现在的效果这么多我一下子就打开了

这是后续打开:帖子打开时,css-doodle效果没有运行,点击按钮之后才运行

马黑黑 发表于 2023-5-9 20:36

小辣椒 发表于 2023-5-9 20:33
非常好看,就不知道为什么有的手机会看不见

不是手机看不见,是手机的浏览器不行

小辣椒 发表于 2023-5-9 20:36

马黑黑 发表于 2023-5-9 20:34
也许是手机网速不稳定?

同样的网速,看你现在的我秒开,刚才那谁的我看不见,后来刷新刷新再刷新看见了,赶紧修改了回复

马黑黑 发表于 2023-5-9 20:37

小辣椒 发表于 2023-5-9 20:36
同样的网速,看你现在的我秒开,刚才那谁的我看不见,后来刷新刷新再刷新看见了,赶紧修改了回复

额,可能是代码运行的东东太多

小辣椒 发表于 2023-5-9 20:37

马黑黑 发表于 2023-5-9 20:36
不是手机看不见,是手机的浏览器不行

同样的浏览器,同样的手机

小辣椒 发表于 2023-5-9 20:38

马黑黑 发表于 2023-5-9 20:35
这是后续打开:帖子打开时,css-doodle效果没有运行,点击按钮之后才运行

帖子一片代码我看不见播放器,怎么点击?

马黑黑 发表于 2023-5-9 20:39

小辣椒 发表于 2023-5-9 20:38
帖子一片代码我看不见播放器,怎么点击?

我这个不是有运行代码按钮吗

马黑黑 发表于 2023-5-9 20:39

小辣椒 发表于 2023-5-9 20:37
同样的浏览器,同样的手机

这不可能,如果网速正常的话

小辣椒 发表于 2023-5-9 20:40

马黑黑 发表于 2023-5-9 20:37
额,可能是代码运行的东东太多

应该不是,就一个图,一个音乐

马黑黑 发表于 2023-5-9 20:41

小辣椒 发表于 2023-5-9 20:40
应该不是,就一个图,一个音乐
图片所在服务器不好也会导致帖子打开困难

小辣椒 发表于 2023-5-9 20:41

马黑黑 发表于 2023-5-9 20:39
我这个不是有运行代码按钮吗

就在说你这个我秒开,刚才是朵拉那个帖,我一直看不见,刷新无数次最后看见啦,看见效果了前面的回帖赶紧去修改了

小辣椒 发表于 2023-5-9 20:43

马黑黑 发表于 2023-5-9 20:39
这不可能,如果网速正常的话

就我现在啊,我是手机,而且想速度快,还用了WiFi

小辣椒 发表于 2023-5-9 20:44

马黑黑 发表于 2023-5-9 20:41
图片所在服务器不好也会导致帖子打开困难

哦,这个也是有可能的
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: css-doodle :落花缤纷