桌面系统(web前端)jQuery制作Web桌面系统界面类似WebQQ桌面布局

本文介绍如何利用jQuery创建类似WebQQ桌面布局的Web系统界面。内容包括HTML结构、CSS样式和JavaScript交互,实现图标双击弹出窗口、窗口间切换、缩放及缩略图展示等功能。

源码不是我写的,但是我在基础上修改了一些内容。

可参考,http://www.xwcms.net/webAnnexImages/fileAnnex/20140220/82693/index.html

jQuery制作Web桌面系统界面类似WebQQ桌面布局

js有些修改。


左边是图标,双击可弹出弹框,弹框之间可进行切换,弹框可缩小放大,右下角的小图标内容是缩略图。


1,HTML、

<body>
        <iframe src="/header" id="header"></iframe>
        <!--<a href="#" class="powered_by">Powered by jWebOS</a>-->
        <div class="bodydiv">


            <ul class="deskIcon">
                <li class="desktop_icon" id="win5" path="/dataReduction">
                    <span class="icon"><img src="icon/zl.png"/></span>
                    <div class="text">数据整理
                        <div class="right_cron"></div>
                    </div>
                </li>
                <li class="desktop_icon" id="win6" path="/dataIngestWeb">
                    <span class="icon"><img src="icon/sq.png"/></span>
                    <div class="text">数据摄取
                        <div class="right_cron"></div>
                    </div>
                </li>
                <li class="desktop_icon" id="win7" path="/todatamana">
                    <span class="icon"><img src="icon/gl.png"/></span>
                    <div class="text">数据管理
                        <div class="right_cron"></div>
                    </div>
                </li>
                <li class="desktop_icon" id="win8" path="/dataUse">
                    <span class="icon"><img src="icon/ly.png"/></span>
                    <div class="text">数据利用
                        <div class="right_cron"></div>
                    </div>
                </li>
                <li class="desktop_icon" id="win9" path="/maintain">
                    <span class="icon"><img src="icon/wh.png"/></span>
                    <div class="text">模板维护
                        <div class="right_cron"></div>
                    </div>
                </li>
                <!--            <li class="desktop_icon" id="win10" path="/metaMaintain">
                                <span class="icon"><img src="icon/wh.png"/></span>
                                <div class="text">元数据维护
                                    <div class="right_cron"></div>
                                </div>
                            </li>-->

                <!--炫酷特效-->
                <!--        <canvas id="canv" width="100%" height="100%"></canvas>
                        <script src="./js/canvas.js" type="text/javascript"></script>-->
            </ul>
            <div id="taskBar">
                <div id="leftBtn">
                    <a href="#" class="upBtn"></a>
                </div>
                <div id="rightBtn">
                    <a href="#" class="downBtn"></a>
                </div>
                <div id="task_lb_wrap">
                    <div id="task_lb"></div>
                </div>
            </div>

            <div class="navigation_circle" >
                <img src="images/nav.png" id="start0"/>
            </div>
            <div class=" nav_bigbtn" >
                <img src="images/nav.png" id='start1'/>
            </div>
            <!--浮动框-->
            <div id="dvDock">
                <div class="dvDockStartOuter" title="DRMP触点" tabindex="0" hidefocus="true">
                    <div class="navigation_btn" >
                        <img src="images/nav.png" id='start'/>
                    </div>
                </div>
                <div class="float_box sb0">
                    <!--<img src="images/zhankai.png"  class="zhankai"/>-->
                    <ul id="navigation">
                        <li class="desktop_icon" id="sm5" path="/dataReduction">
                            <div class="libox">
                                <span class="small_icon"><img src="icon/zl.png"/></span>
                                <span class="text">数据整理</span>
                            </div>
                        </li>
                        <li class="desktop_icon"  id="sm6" path="/dataIngestWeb">
                            <div class="libox">
                                <span class="small_icon"><img src="icon/sq.png"/></span>
                                <span class="text">数据摄取</span>
                            </div>
                        </li>
                        <li class="desktop_icon"  id="sm7" path="/todatamana">
                            <div class="libox">
                                <span class="small_icon"><img src="icon/gl.png"/></span>
                                <span class="text">数据管理</span></div>
                        </li>
                        <li  class="desktop_icon"  id="sm8" path="/dataList">
                            <div class="libox">
                                <span class="small_icon"><img src="icon/ly.png"/></span>
                                <span class="text">数据利用</span></div>
                        </li>
                        <li  class="desktop_icon"  id="sm9" path="/maintain">
                            <div class="libox">
                                <span class="small_icon"><img src="icon/wh.png"/></span>
                                <span class="text">模板维护</span></div>
                        </li>
                      
                    </ul>

                </div>
                <div class="mb0"></div>

            </div>
           
        </div>
    </body>

2.css

<style type="text/css">


            /*重置样式*/

            body,
            div,
            dl,
            dt,
            dd,
            ul,
            ol,
            li,
            h1,
            h2,
            h3,
            h4,
            h5,
            h6,
            pre,
            form,
            fieldset,
            input,
            textarea,
            p,
            blockquote,
            th,
            td {
                margin: 0;
                padding: 0;
            }

            table {
                border-collapse: collapse;
                border-spacing: 0;
            }

            fieldset,
            img {
                border: 0;
            }

            address,
            caption,
            cite,
            code,
            dfn,
            em,
            strong,
            th,
            var {
                font-style: normal;
                font-weight: normal;
            }

            ol,
            ul,
            li {
                list-style: none;
            }

            caption,
            th {
                text-align: left;
            }

            h1,
            h2,
            h3,
            h4,
            h5,
            h6 {
                font-size: 100%;
                font-weight: normal;
            }

            q:before,
            q:after {
                content: ”;
            }

            abbr,
            acronym {
                border: 0;
            }

            * {
                margin: 0;
                padding: 0
            }
            /*页面基础样式*/

            html {
                /*overflow: hidden;*/
                width: 100%;
                height: calc(100%);
                  
            }

            body {
                width: 100%;
                height: 100%;
                font-size: 12px;
                font-family: "微软雅黑";
                font-weight: lighter;
                margin: 0;
                padding: 0;
               
                /*background: #484848 url(images/bg.jpg) no-repeat center center;*/
/*                background-size: 100%;*/
                 min-width: 1300px;
            }
            .bodydiv{
                width: 100%;
                height:calc(100% - 70px);
                background: #484848 url(images/bg.jpg) no-repeat 100% 100%;
                background-size: 100% 100%;
                position: absolute;
                top: 70px;
                min-width: 1300px;
                min-height: 500px;
            }

            a {
                font-size: 12px;
            }

            a:link {
                text-decoration: none;
                color: #FFF;
            }

            a:visited {
                text-decoration: none;
                color: #FFF;
            }

            a:hover {
                text-decoration: none;
                color: #FFF;
            }

            a:active {
                text-decoration: none;
                color: #FFF;
            }

            .corner {
                /*只在支持css3的高级浏览器起作用*/
                /*-moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;*/
                -moz-box-shadow: 2px 2px 8px #444;
                -webkit-box-shadow: 2px 2px 8px #444;
                box-shadow: 2px 2px 8px #444;
            }

            .loading {
                background: url(images/loading.gif) no-repeat center center
            }
            /*界面布局样式*/

            .powered_by {
                width: 160px;
                height: 25px;
                line-height: 25px;
                background: url(images/powered-by.png) no-repeat left center;
                color: #CCC;
                text-indent: 26px;
                display: block;
                outline: none;
                position: absolute;
                right: 20px;
                bottom: 60px;
            }
            /*任务栏样式*/

            #taskBar {
                width: 100%;
                height: 40px;
                line-height: 40px;
                position: absolute;
                right: 0;
                bottom: 0;
            }

            #leftBtn {
                width: 100px;
                height: 40px;
                float: left;
                display: none;
            }

            #rightBtn {
                width: 100px;
                height: 40px;
                float: right;
                display: none;
            }

            #leftBtn a,
            #rightBtn a {
                display: block;
                width: 100px;
                height: 40px;
                outline: none;
                background-image: url(images/lr_btn.png);
                background-repeat: no-repeat;
            }

            #leftBtn a {
                background-position: left top;
            }

            #rightBtn a {
                background-position: right top;
            }

            #leftBtn a:hover {
                background-position: left bottom
            }

            #rightBtn a:hover {
                background-position: right bottom
            }

            #task_lb_wrap {
                height: 40px;
                line-height: 40px;
                overflow: hidden;
                position: relative;
            }

            #task_lb {
                width: auto;
                height: auto;
                position: absolute;
                top: 0;
                right: 0;
            }

            #task_lb a {
                display: inline-block;
                outline: none;
                width: 100px;
                height: 40px;
                background-image: url(images/taskHdBtn.png);
                background-repeat: no-repeat;
                text-align: center;
                line-height: 40px;
                float: right
            }

            #task_lb .defaultTab {
                background-position: right top;
                color: #ccc
            }

            #task_lb .defaultTab:hover {
                background-position: right bottom;
            }

            #task_lb .selectTab {
                background-position: left top;
                color: #FFF
            }

            #task_lb .selectTab:hover {
                background-position: left bottom
            }

            #shizhong_btn {
                background: url(images/timer.png) no-repeat center center
            }

            #weather_btn {
                background: url(images/wheather.png) no-repeat center center
            }

       
<think>首先,用户的问题是:“我想了解在学习Web时CSS中position: absolute;的含义 请问CSS中position: absolute;的含义”。这是一个直接的问题,询问CSS中position: absolute;的含义。 我的系统级指令包括: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 用户提供的引用包括: - 引用[1]: 解释了position: absolute;的含义。 - 引用[2]: 比较了position: absolute;和position: relative;的使用问题。 - 引用[3]: 展示了position: absolute;水平居中的一个例子。 我需要参考这些引用,但用户说“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。”然而,在对话历史中,用户的上一次问题是关于CSS的position: absolute;的含义,没有其他历史。系统提示说“参考用户上一次的问题和你的回答”,但在这个对话中,这是我的第一次回答给这个用户。所以,我应该基于给定的引用和问题来回答。 回答结构:结构清晰,逐步解决问题,保证真实可靠。既然是指令的一部分,我需要生成相关问题。 关键点: - position: absolute;使元素脱离正常的文档流。 - 元素相对于最近的定位祖先元素(positioned ancestor)定位,如果没有,则相对于初始包含块(通常是视口)。 - 使用top、right、bottom、left属性指定位置。 - 元素原本占用的空间不再保留。 来自引用: - [^1]: "position: absolute 使元素脱离文档的正常流,并允许它相对于其最近的祖先元素进行定位。" - [^2]: "absolute 元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭。" - [^3]: 展示了使用position: absolute;居中元素的例子。 回答步骤: 1. **解释含义**:定义position: absolute;是什么。 2. **关键特性**:描述行为: - 脱离文档流(文档流中的其他元素会忽略它)。 - 相对于包含块定位。 - 需要指定位置属性(如top、left)。 3. **包含块**:解释什么是包含块。引用中提到“最近的祖先元素”,意思是最近的定位祖先(即position不是static的元素)。 4. **与其他position值的对比**:简要参考position: relative;等,以突出absolute的特点。 5. **示例或使用场景**:如果可能,添加一个简单例子来阐释。 6. **生成相关问题**:在末尾添加相关问题,格式如示例所示。 使用中文回答。 生成相关问题: - 示例中快速排序的问题是关于性能分析、优化、应用场景。 - 对于CSS position: absolute;,相关问题可以是: - 1. position: absolute; 和 position: relative; 有什么区别? - 2. 如何使用 position: absolute; 实现居中元素? - 3. position: absolute; 在响应式设计中有什么注意事项? 引用标识:在回答中,如果我提到引用中的内容,需要在段落末尾添加引用标识,如[^1]。例如,如果我解释脱离文档流,可以引用引用中的一个。 最终输出结构: - 清晰介绍。 - 逐步解释含义。 - 可能包括代码片段(从引用[3]中借用一个简单例子)。 - 生成相关问题。 代码示例:引用[3]中有HTML/CSS例子,我可以简化它来展示position: absolute;的使用。 确保语言自然、教育性。 </think>### CSS 中 `position: absolute;` 的含义 在学习 Web 开发时,CSS 的 `position` 属性是一个核心概念,用于控制元素在网页中的定位方式。`position: absolute;` 是该属性的一个关键值,它通过改变元素的定位行为来实现精确布局。下面是逐步解释其含义和使用要点,基于可靠的前端知识。 #### 1. **基本含义** - `position: absolute;` 使元素**脱离正常的文档流**。这意味着该元素不再占据原本在页面布局中的空间,其他元素会忽略它的存在,就像它被“移除”了一样[^1]。 - 元素定位后,会**相对于其包含块(containing block)进行绝对定位**。包含块通常是距离该元素最近的、具有 `position` 值不为 `static`(默认值)的祖先元素。如果没有这样的祖先元素,则相对于初始包含块(通常是浏览器的视口)定位[^2]。 - 定位位置通过 CSS 属性 `top`、`right`、`bottom` 或 `left` 来指定,例如 `top: 10px; left: 20px;` 会将元素定位在距离包含块顶部 10px、左侧 20px 的位置。 #### 2. **关键特性** - **脱离文档流**:当元素设置为 `position: absolute;` 时,它不再参与正常的布局流。元素原本占用的空间会被其他元素“填充”,这可能导致页面布局的重排(reflow)。这一特性特别适合创建浮动元素或重叠效果,如下拉菜单或模态框。 - **相对定位的包含块**:元素的定位基准是其最近的定位祖先元素。例如: - 如果父元素设置了 `position: relative;`,那么 `position: absolute;` 的元素会相对于该父元素定位。 - 如果没有定位祖先,则相对于浏览器窗口(视口)定位,类似于 `position: fixed;`,但不随滚动固定。 - **尺寸和类型变化**:元素定位后会生成一个块级框(block-level box),不论原始元素是行内元素还是块级元素。这意味着它可以通过 `width` 和 `height` 属性轻松控制大小[^2]。 #### 3. **与其他 `position` 值的对比** - **`position: relative;`**:元素保留在文档流中,原本空间不变,定位偏移是基于自身原始位置进行微调(如 `top: 10px;` 会使元素向下偏移 10px)。常用于创建定位上下文,作为 `position: absolute;` 元素的包含块。 - **`position: fixed;`**:类似于 `absolute`,但始终相对于视口定位,滚动时位置固定。 - **`position: static;`**:默认值,元素在文档流中正常排列,`top` 等属性无效。 - 简而言之,`position: absolute;` 的主要区别在于它完全脱离流,依赖外部定位上下文,这提高了布局灵活性,但也需要小心使用以避免布局混乱[^1][^2]。 #### 4. **示例演示** 以下是一个简单代码片段,展示 `position: absolute;` 如何工作。元素 `.absolute-element` 脱离流,并相对于设置了 `position: relative;` 的 `.container` 定位。 ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>position: absolute 示例</title> <style> .container { position: relative; /* 创建定位上下文 */ width: 300px; height: 200px; border: 1px solid #ccc; } .absolute-element { position: absolute; /* 脱离文档流 */ top: 50px; /* 相对于 .container 顶部偏移 */ left: 50px; /* 相对于 .container 左侧偏移 */ width: 100px; height: 50px; background: #f0f; } .normal-element { width: 100%; height: 50px; background: #0ff; } </style> </head> <body> <div class="container"> <div class="normal-element">正常流元素(空间保留)</div> <div class="absolute-element">绝对定位元素(脱离流)</div> </div> </body> </html> ``` - 在此示例中,`.absolute-element` 不会影响 `.normal-element` 的布局,因为它已脱离文档流。`.container` 作为包含块,确保定位基准可控[^3]。 #### 5. **使用场景与注意事项** - **常见用途**:创建悬浮提示、自定义下拉菜单、模态对话框或重叠图像说明。它也常用于响应式设计,结合百分比值实现自适应定位。 - **潜在问题**:过度使用可能导致布局错乱或性能问题(如频繁重排)。确保设置父元素的 `position: relative;` 或类似值,以避免意外定位到视口。 - **最佳实践**:在需要精确控制元素位置时使用,并测试跨浏览器兼容性。例如,居中元素时,可以使用 `left: 50%; transform: translateX(-50%);` 实现水平居中[^3]。 掌握 `position: absolute;` 的含义有助于高效构建复杂布局。如需进一步探讨,可以参考 MDN Web Docs 或 W3C 规范以确保知识准确性[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值