加载转圈的代码

本文介绍了一种使用JavaScript和jQuery实现动态加载内容的方法,并通过无限滚动的方式展示新内容,同时还涉及了页面元素的样式调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="color:#000099;">******标蓝部分为转圈代码,别的地方是我自己的其它东西      </span>

  * {
            margin: 0px;
            padding: 0px;
            border: 0px;
        }


        input {
            -webkit-appearance: none;
        }


        .main li {
            list-style-type: none;
            /*height: 160px;*/
        }


        .main a {
            /*height: 160px;*/
            display:block;
        }


        div {
            -moz-border-radius: 0.25em;
            -webkit-border-radius: 0.25em;
        }


        .newEvent {
            /*height: 200px;*/
            margin: 0.5em 0.62em;
        }


            .newEvent img {
                /*height: 160px;*/
                width: 100%;
                z-index: -1;
                -moz-border-radius: 0.25em;
                -webkit-border-radius: 0.25em;
            }


        .eventtitle {
            background-image: url("/Content/images/cut/eventbg.png");
            background-size:100%;
            background-repeat: repeat-x;
            height: 3.1em;
            padding: 0.62em 0 0 0.5em;
            position: relative;
            bottom: 3.93em;
            left: 0px;
            line-height: 4.06em;
        }


            .eventtitle input {
                background: none;
                border: 0px;
                font-size: 1em;
                color: white;
                /*width: 300px;*/
            }


        .noNew {
            font-size:0.9em;
            height: 1.25em;
            margin: 0 auto;
            text-align: center;
        }
    </style>
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script>
        $(document).ready(function () {
            $(".newEvent img").height($(".newEvent img").width() / 1.7);
            $(".newEvent").height($(".newEvent img").height());
            $(".main").css("font-size", $(".newEvent img").height() / 11);
            $(".eventtitle input").width($(".newEvent img").width() - 30);
        })


    </script>
</head>
<body>
    <div class="main"> 
        <ul>
            @foreach (var item in ViewData["articlelist"] as List<LairmeyUserProject.Models.EventArticle>)
            {
                <li>
                    <div class="newEvent">
                        <a href="@item.ArticleUrl" style="height:160px">
                        <img src="/Content/EventImg/@item.BannerUrl" />
                            <div class="eventtitle">
                                <input disabled="disabled" value="@item.Tittle"/>
                            </div>
                        </a>
                    </div>
                </li>
            }
        </ul>
    </div>
    <span style="color:#000099;"><div class="div_load" style="margin: 10px auto; text-align: center; width: 300px;"> 
        <img id="img" src="~/Content/images/cut/loading.png" />
    </div></span>
    <script type="text/javascript">
        var x = 0;
        var canScroll = true;
        $(window).scroll(function () {
            if (canScroll) {
                var scrollTop = $(this).scrollTop();
                var scrollHeight = $(document).height();
                var windowHeight = $(this).height();
                if (scrollTop + windowHeight == scrollHeight) {
                    loading();
                    canScroll = false;
                    $.post("/Event/Index", { count: x }, function (data) {
                        stoploading();
                        x += 4;
                        $.each(data, function (i, item) {
                            $("ul").append("<li><div class='newEvent'><a href=" + item.ArticleUrl + "><img src=" + item.BannerUrl + " /><div class='eventtitle'><input disabled='disabled' value=" + item.Tittle + "/></a></div></li>");
                            canScroll = true;
                        })
                        if (data.length < 4) {
                            $("ul").append("<li style='margin-top:12px'><div class='noNew'>没有了更多了哦~</div></li>");
                            canScroll = false;
                        }
                    });
                }
            }
        })
        $(".div_load").hide();
        var Du = 0;
        var CssCode;
       <span style="color:#000099;"> function fransform() {
            Du++;
            var Objnode = document.getElementById('img');
            Objnode.setAttribute('style', '' + CssCode + 'transform:rotate(' + Du + 'deg); ' + CssCode + 'transform-origin: 50% 50%;');
            if (Du == 360) { Du = 0; }
        }
        function loading() {
            $(".div_load").slideDown();
            if (navigator.userAgent.indexOf("MSIE") > 0) { CssCode = "-ms"; }
            else if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) { CssCode = "-moz-"; }
            else if (isSafari = navigator.userAgent.indexOf("Safari") > 0) { CssCode = "-webkit-"; }
            else CssCode = "-o-";
            setInterval(fransform, 1);
        }</span>
        function stoploading() {
            clearInterval();
            $(".div_load").hide();
        }
    </script>

<think>好的,用户想了解如何用CSS创建边框加载转圈动画,需要教程、示例和代码。首先,我需要回顾一下相关的CSS属性和动画知识。记得旋转动画可以用@keyframes配合transform的rotate属性来实现,边框效果可能需要用到border属性或者伪元素。 接下来,我应该检查之前提供的引用内容,看看有没有相关的示例。引用1提到利用旋转和动画属性实现圆弧和扇形加载,引用3和4也提到了圆与边框旋转的实例。特别是引用4中的示例可能有参考价值,比如多重旋转环和颜色变化。 用户需要的是边框加载转圈,可能是一个边框部分旋转的效果,而不是整个元素旋转。这时候可能需要使用伪元素来创建边框,并对其应用旋转动画。比如,用一个div作为容器,然后在其伪元素::before或::after上设置边框,并让这个伪元素旋转。 另外,考虑到加载动画通常需要无限循环,animation的iteration-count应该设为infinite。动画的timing-function使用linear可以让旋转匀速,看起来更流畅。 可能还需要隐藏溢出的部分,比如当边框的一部分旋转时,超出容器圆形的部分应该被裁剪掉,这可以通过overflow: hidden和border-radius: 50%来实现圆形裁剪。 然后,结合引用中的示例,比如引用4的示例三,可能使用了多个旋转环,但用户只需要一个简单的边框转圈。因此,可以简化代码,只使用一个伪元素,设置边框的某一部分(比如顶部边框),并让这个伪元素旋转。 测试一下代码结构:容器设置为相对定位,伪元素绝对定位,覆盖整个容器,设置边框,顶部边框有颜色,其他透明,然后应用旋转动画。这样就能实现边框部分旋转的效果。 还需要注意浏览器兼容性,确保使用的属性如transform和animation有适当的前缀,但现代浏览器大多支持无前缀版本。代码示例中应该包含关键帧定义和必要的样式设置。 最后,整理步骤,给出示例代码,并解释各部分的作用,确保用户能够理解并自行修改参数,比如颜色、大小、速度等。可能还需要提到如何调整边框粗细、颜色和动画速度,以及如何应用在实际项目中。</think>### CSS实现边框加载转圈动画的步骤与示例 要实现边框加载转圈动画,核心是**利用CSS的`border`属性、`transform`旋转动画以及关键帧(`@keyframes`)**。以下是具体实现方法: --- #### **1. 基础实现:单色边框旋转** **HTML结构**: ```html <div class="loading-circle"></div> ``` **CSS代码**: ```css .loading-circle { width: 50px; height: 50px; border: 4px solid #f3f3f3; /* 背景边框 */ border-radius: 50%; position: relative; } .loading-circle::after { content: ""; position: absolute; top: -4px; left: -4px; right: -4px; bottom: -4px; border: 4px solid transparent; border-top-color: #3498db; /* 高亮颜色 */ border-radius: 50%; animation: spin 1s linear infinite; /* 动画属性 */ } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } ``` **效果**: - 外层灰色边框静止,顶部蓝色边框持续旋转,形成加载动画[^1][^4]。 --- #### **2. 进阶优化:渐变色与多重旋转** 若需更复杂效果(如渐变色或双重旋转),可结合伪元素和动画延迟: ```css .loading-circle::before { content: ""; position: absolute; top: -4px; left: -4px; right: -4px; bottom: -4px; border: 4px solid transparent; border-top-color: #e74c3c; /* 第二层颜色 */ border-radius: 50%; animation: spin 1.5s linear infinite; animation-delay: 0.5s; /* 延迟效果 */ } ``` --- #### **3. 关键属性解释** - `border-radius: 50%`:将元素变为圆形。 - `border-top-color`:仅显示顶部边框颜色,其余透明。 - `transform: rotate()`:通过关键帧实现旋转动画。 - `animation: spin`:绑定动画并设置循环与速度[^3]。 --- #### **4. 实际应用技巧** - **调整速度**:修改`animation`中的时间(如`1s`→`2s`)。 - **颜色自定义**:替换`border-top-color`的色值。 - **尺寸调整**:修改`width`、`height`和`border`宽度[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值