jquery写的一个小进度条

前两天在知乎上看到有人问这种进度条的做法,就自己写了写。

百度了才知道设置float后要给子元素设置position为absolute或者relative才能使z-index有效。在css和jquery上都是有收获的。
下面是代码,一开始设置display为fixed是我想提醒一下自己到实际应用中进度条都是fix在浏览器窗口上方的~~~
另外,多次使用!important改变css优先级是不是不推荐的做法呢?改进方案有哪些呢?看来还是有很多东西需要改进。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1-transitional.dtd">
<html>
    <head>
        <meta charset="UTF-8">
        <style type="text/css">
        #panel *{
            margin: 0;
            padding: 0;
            display: fixed;
        }
        .ball{
            height: 20px;
            width: 20px;
            background-color: gray;
            border-radius: 10px;
            float: left;
        }
        .line{
            margin-top: 6px !important;
            margin-left: -2px !important;
            margin-right: -2px !important;
            height: 8px;
            width: 104px;
            background-color: gray;
            float: left;
        }
        .smallBall{
            margin: 4px !important;
            display: none;
            height: 12px;
            width: 12px;
            border-radius: 6px;
            background-color: green;
        }
        .circle{
            margin: 2.5px !important;
            height: 6px;
            width: 6px;
            border:4px solid green;
            background-color: white;
            display: block;
        }
        .smallLine{
            margin-top: 2px !important;
            margin-left: -6px !important;
            margin-right: -6px !important;
            width: 0;
            height: 4px;
            background-color: green;
            position: absolute;
        }
        </style>
    </head>
    <body>
        <div id="panel">
            <div class="ball"><div class="smallBall circle"></div></div>
            <div class="line"><div class="smallLine"></div></div>
            <div class="ball"><div class="smallBall"></div></div>
            <div class="line"><div class="smallLine"></div></div>
            <div class="ball"><div class="smallBall"></div></div>
            <div class="line"><div class="smallLine"></div></div>
            <div class="ball"><div class="smallBall"></div></div>
            <div class="line"><div class="smallLine"></div></div>
            <div class="ball"><div class="smallBall"></div></div>
        </div>

        <script type="text/javascript" src="jquery-2.1.4.min.js"></script>
        <script type="text/javascript">
        $(".ball").css("display","block");
        $(".ball").click(function(){
            var $smallBall = $(this).children(".smallBall");
            if($smallBall.hasClass("circle")){
                $smallBall.removeClass("circle");
                $smallBall.css("display","block");
                $(this).next().children(".smallLine").animate({width:"112px"},1000);
                $(this).next().next().children(".smallBall").addClass("circle");
            }
        });
        </script>
    </body>
</html>
### 回答1: 可以使用Java和jQuery一个带有进度条的文件上传程序,具体步骤如下:1. 使用Java编一个文件上传服务,它将接收文件上传请求,并将文件保存到服务器上。2.使用jQuery一个简单的表单,它允许用户上传文件。3.使用jQuery的AJAX函数,将用户上传的文件发送到Java文件上传服务。4.使用jQuery进度条插件,显示文件上传的进度。 ### 回答2: 要实现一个带有进度条的上传程序,我们可以使用Java和jQuery进行开发。 首先,我们需要在后端使用Java编一个文件上传的接口。可以使用Java的Servlet或Spring MVC框架来实现。这个接口应该能够接收到前端发送的文件,并将其保存到服务器的指定位置。 在前端,我们可以使用jQuery的ajax方法来发送文件到后端接口。在发送请求之前,我们可以使用HTML的input元素创建一个文件选择器,让用户选择要上传的文件。 一旦用户选择了文件,我们可以使用FileReader对象来读取文件的内容,并将其作为数据传递给后端接口。在发送请求时,我们可以通过使用FormData对象,将文件数据添加到表单数据中,并设置请求方法为POST。 在发送请求的同时,我们可以使用XMLHttpRequest的onprogress事件来监听上传的进度。这个事件会在上传过程中不断触发,并返回一个event对象,其中包含有关上传进度的信息,如已上传的字节数和总字节数。我们可以利用这些信息来计算上传的百分比,并更新进度条的宽度。 在接收到后端返回的响应后,我们可以根据情况进行相应的处理,如显示上传成功的提示信息或显示上传失败的错误信息。 最后,我们还可以使用jQuery来实现进度条的动画效果。可以通过设置进度条的初始宽度和动态调整宽度的方式来实现。可以使用jQuery的animate方法来实现平滑的宽度过渡效果。 综上所述,通过使用Java和jQuery,我们可以实现一个带有进度条的上传程序,方便用户上传文件并实时显示上传进度。 ### 回答3: 要实现一个带有进度条的上传程序,可以使用Java和jQuery来完成。下面是一个简单的实现思路: 1. 在前端页面使用HTMLjQuery创建一个上传表单,并添加一个进度条元素用于展示上传进度。 2. 在后端使用Java编一个接受上传文件的Servlet。该Servlet处理上传请求,并在上传过程中不断更新进度。 3. 在前端页面中,使用jQuery的Ajax方法来发送上传请求,将文件数据以formData的形式发送到后端Servlet。 4. 后端Servlet接收到上传请求后,创建一个输入流来读取上传的文件数据,并根据文件大小计算总进度。 5. 在读取文件数据的过程中,通过不断更新进度,将当前进度发送回前端页面。 6. 前端页面接收到后端发送的进度数据后,更新进度条的显示。 7. 当文件数据读取完成后,后端Servlet将文件保存到指定位置,并向前端页面发送上传完成的消息。 8. 前端页面接收到上传完成的消息后,可以显示上传成功的提示。 这样,我们就完成了一个带有进度条的上传程序。通过Java和jQuery的结合,我们能够实现前后端的数据交互和进度更新,让用户可以清楚地看到文件上传的进度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值