首先需要知道clientX,clientY,screenX,screenY,offsetX,offsetY 是鼠标事件对象下的几个属性.
Animation in ActionScript3.0 这本书总算快学完了,今天继续:上一回Flash/Flex学习笔记(50):3D线条与填充 里,我们知道任何一个3D多面体上的某一个面,都可以分解为多个三角形的组合。比立方体为例,每个面都由二个三角形组成,但在那一篇的示例中明显有一个问题:不管立方体的某一个面是不是应该被人眼看见(比如转到背面的部分,应该是看不见的),这一面都被绘制出来了。 在这一篇的学习中,我将带大家一起学习如何将背面(即看不见的面)删除掉,即所谓的“背面剔除”。 先做一些预备知识的
注意需要先把自动排列图标和将图标与网格对齐关闭,运行后可能会打乱图标排列。 空格控制开始与游戏中的跳跃。 ESC键结束程序。
事件对象可以拿到 pageY、clientY、offsetY,分别代表到点击的位置到文档顶部,到可视区域顶部,到触发事件的元素顶部的距离。
直接看代码 ,一切尽在注释中 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Drag</title> <style type="text/css"> *{ margin: 0px; padding:0px; } #con{ width:100%; height:500px; border:1px dotted #999; } #img{ margin-left: 10px;
chart.gif 使用例子 <template> <Card style='margin: 20% auto; width: 600px' title='' > {{ key }} : {{ value }}01Python基础训练100题-13分享一些Python学习题目 实例061:杨辉三角 实例062:查找字符串 实例063:画椭圆 实例064:画椭圆、矩形 实例065:画组合图形 实例061:杨辉三角 题目: 打印出杨辉三角形前十行。 程序分析: 无。 def generate(numRows): r = [[1]] for i in range(1,numRows): r.append(list(map(lambda x,y:x+y, [0]+r[-1],r[-1]+[0]))) return r[02React技巧获取鼠标坐标位置原文链接:https://bobbyhadz.com/blog/react-get-mouse-position[1]02Flash/Flex学习笔记(50):3D线条与填充3D线条:把上一篇中的3D坐标旋转示例稍做修改,用线把各个小球连接起来即可。 var balls:Array; var numBalls:uint=30; var fl:Number=250; var vpx:Number=stage.stageWidth/2; var vpy:Number=stage.stageHeight/2; function init():void { balls=new Array(numBalls); for (var i:uint=0; i<numBalls; i++08offset client page screen详解<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>45-JavaScript-位置获取</title> <style> *{ margin: 0; padding: 0; } div{ width: 100px; height: 100px;01Python练手例子(11)61、打印出杨辉三角形。 #python3.7 from sys import stdout if __name__ == '__main__': a = [] for i in range(10): a.append([]) for j in range(10): a[i].append(0) for i in range(10): a[i][0] = 1 a[i][i] = 1 fo03使用JavaScript,点击按钮一个打开新的窗体<script type="text/javascript"> function openObj(){ window.open("success.html","baiducccc");//新建一个窗体,名字为baiducccc } function openObj2(){ window.open("success.html","_self");//在自身的窗体打开,不会新建窗体 } function openObj3(){ var win = window.open("success.html", "abccc","width=400,height=400,top=100,left=200,menubar=yes,location=yes,scrollbars=yes")//表示不会一直新建窗体,一直都是在名字为abccc的窗体打开(第一次是新建了一个abccc的窗体,之后就不会再创建) //win.resizeBy(200,200)//在原来的页面基础上新加200,200 //win.resizeTo(200,200)//把原来的大小重新设定为200,200 //win.moveBy(200,200);//在原来基础上再偏移200,200 console.log(win.screenX+"."+win.screenY);//查看没有偏移之前的位置 win.moveTo(200, 200); console.log(win.screenX+"."+win.screenY);//查看偏移之后的位置 } console.log(innerHeight+"..."+innerWidth); </script> </head> <body> <input type="button" value="打开新页面" οnclick="openObj()"> <input type="button" value="在当前窗体打开" οnclick="openObj2()"> <input type="button" value="指定窗体位置大小打开" οnclick="openObj3()"> </body>02HTML5移动端开发的常用触摸事件HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。01js获取鼠标当前位置坐标chrome和safari一条龙通杀!完全支持所有属性.其中(offsetX和layerX都是以border为参考点)02javascript坐标:event.x、event.clientX、event.offsetX、event.screenX 用法clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。03js鼠标事件 clientX、clientY、offsetX、offsetY、layerX、layerY、pageX、 pageY、screenX、screenY「建议收藏」版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。02了解 Javascript Event 对象我们对元素进行点击操作时候,会产生一个 Event 的对象,那么它都有些什么呢?本文带你了解一下:03JQ事件和事件对象//mouseover()/mouseout()和mouseenter()/mouseleave()的区别02vue ---- 实现手机端(左滑 删除。右划 正常)touchstart: // 手指放到屏幕上的时候触发 touchmove: // 手指在屏幕上移动的时候触发 touchend: // 手指从屏幕上拿起的时候触发 touchcancel: // 系统取消touch事件的时候触发。至于系统什么时候会取消,不详 client / clientY:// 触摸点相对于浏览器窗口viewport的位置 pageX / pageY:// 触摸点相对于页面的位置 screenX /screenY:// 触摸点相对于屏幕的位置 identif02对菜鸟教程的Python一百例的个别改进好吧,其实是小妹子Python公选课结课,所以我来帮忙做个大作业(简单到哭的大作业好吗?)!她的大作业就是老师把菜鸟教程的Python一百例扒下来做成文档,然后让学生自己找三个验证下!我们当初是抽选一06『快速入门electron』之实现窗口拖拽对于一些进程通信的基本demo可以去看下我的这个文章:手把手带你快速入门Electron03第43天:事件对象event一、事件对象 事件:onmouseover、 onmouseout、 onclick event //事件的对象01copliot才是代码开发神器 - plus studiocopilot是微软的AI代码生成器,可以帮助我们快速完成代码编写(这句copilot简介是copilot写的)。在openai的chatGPT出现后,copilot的风头有所下降,直到刚才…… 几分钟前我在写我的博客ThreeJS实现屏幕坐标转3d坐标时,原本的第一段代码是这样的:01分享十个常用的 js函数00整理获取 viewport 和 element 尺寸和位置方法返回整个页面的滚动的位置,pageYOffset/pageXOffset 与 scrollY/scrollX 返回的值一致,前者是后者的别名,建议使用前者,不支持 IE802如何用 JavaScript 模拟点击事件,简单实现 x, y 坐标点击?在前端开发中,有时我们需要模拟点击页面上的某个位置,比如自动化测试或者模拟用户操作。今天,我将一步步带大家实现这个功能,让大家能够轻松理解并应用。01js中clientWidth, scrollWidth, innerWidth, outerWidth和offsetWidth属性的区别一、测试1:无滚动条时,dom对象的offsetWidth、clientWidth和scrollWidth02Vue自定义指令-滑动指令Vue.js是一个轻量级的JavaScript框架,广泛用于构建用户界面。它提供了一套丰富的指令,帮助开发者快速构建交互式的Web应用程序。本文将介绍个人使用的滑动指令,并解释它们的用法和功能。大家可以根据具体的需求,并结合其他Vue特性和功能来实现更复杂的交互效果。08前端day15-JS(WebApi)学习笔记(三大家族、事件对象、getComputedStyle)offsetWidth、offsetHeight、offsetParent、offsetLeft、offsetTop00javaScript — touch事件详解(touchstart、touchmove和touchend)HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。02js事件对象相关随记1.什么是事件 JavaScript事件是由访问Web页面的用户引起的一系列操作, 例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。 2.事件的三种写法 //在HTML中把事件处理函数作为属性执行JS函数 <input type="button" value="按钮" onclick="alert('你好');" /> //执行与脚本分离 <input type="button" value="按钮" onclick="fn();" /> //03jquery当中bind和unbind,pageX,pageY,.screenX, screenY是怎么用的?例 2.2(e.pageXscreenX.html) <html> <head> <script language="javascript" src="jquery.min.js"></script> <script language="javascript"> $(function(){ /*马克-to-win:和原来一样,pageX指窗口里,screenX指屏幕,所以多了一个上面的菜单。*/ $("body").bind("click", fn1 = function(e){ var posPage = "(" + e.pageX + "," + e.pageY + ")"; var posScreen = "(" + e.screenX + "," + e.screenY + ")"; $("span").html("Page: " + posPage + "Screen: " + posScreen); }); $("input[type=button]").click(function(){ $("body").unbind("click",fn1); //移除事件监听myFunc1 }); }); </script> </head> <body> sgkls sfdgsdg gf fsdf fgdsf sdf sdfdsf sdfsd <input type="button" value="移除事件1"> </body> </html>05ThreeJS实现屏幕坐标转3d坐标 - plus studio在虚拟世界中,3D坐标与屏幕坐标之间的转换是一个重要的问题。使用ThreeJS开发3D场景时,经常需要将屏幕坐标转换为3D坐标。在本文中,我们将介绍如何使用ThreeJS实现屏幕坐标转3D坐标的两种方法01css3D 全景图 - 含有定位的文字Label (adsbygoogle = window.adsbygoogle || []).push({});05GNE 版本升级,基于可视化信号自动化识别并提取新闻正文GNE 是一个通用的新闻正文抽取器,自从开源以来,已经被很多人用来作为新闻正文通用爬虫的重要组件。03js移动端中touch事件触摸事件是在移动设备(如智能手机或平板电脑)上查看页面时触发的事件。 它们允许您跟踪多点触摸事件。 我们有4个触摸事件: touchstart 触摸事件已经启动(触摸表面) touchend 一个触摸事件已经结束(表面不再被触摸) touchmove 触摸移动手指(或任何接触设备的东西)在表面移动 touchcancel触摸事件已被取消 每当一个触摸事件发生,会触发一个触摸事件: const link = document.getElementById('my-link') link.addEventLi02dispatchEvent 学习笔记targetObj.dispatchEvent(event) 使targetObj对象的event事件触发 需要注意的是在IE 5.5+版本上请用fireEvent方法,还是浏览兼容的考虑03移动端页面如何优雅的适配各种屏幕,包括PC端开发移动端页面,我们通常都会按照一个固定宽度的设计稿来做,但是实际上的手机屏幕尺寸五花八门,如果不进行适配的话会比较影响使用体验。02盘点JavaScript中那些进阶操作知识(下篇)相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。02从零开始学习DOM-BOM(一)持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情03EonerCMS——做一个仿桌面系统的CMS(十二)拖动实现的思路已经更新,为防止大家步入误区,本文建议不用阅读太细,实现思路请参考:http://www.cnblogs.com/hooray/archive/2012/03/23/2414410.html02window.open常用参数具体意义01面向对象对象的概念 创建对象的字面量语法 访问成员运算符 创建对象的构造函数语法 this关键字 添加和删除属性 delete关键字 全局对象 Number / String / Boolean Date / Math / RegEx / Array BOM window对象的属性和方法 history对象 forward() / back() / go() location对象 navigator对象 screen对象 DOM DOM树 访问元素 getElementById() / querySelector(04【Python100天学习笔记】Day25 JS面向对象及DOM面向对象 对象的概念 创建对象的字面量语法 访问成员运算符 创建对象的构造函数语法 this关键字 添加和删除属性 delete关键字 标准对象 Number / String / Boolean / Symbol / Array / Function Date / Error / Math / RegExp / Object / Map / Set JSON / Promise / Generator / Reflect / Proxy BOM window对象的属性和方法 his03jQuery方法position()与offset()区别参考别人写得比较明白的,红色部分为重点吧: 使用jQuery获取元素位置时,我们会使用position()或offset()方法,两个方法都返回一个包含两个属性的对象-左边距和上边距,它们两个的不同点06常用鼠标事件常用鼠标事件 1 、案例:禁止选中文字和禁止右键菜单 <body> 我是一段不愿意分享的文字 <script> // 1. contextmenu 我们可以禁用右键菜单02DOM 和 BOM 中的各种宽高属性window.innerHeight/window.innerWidth: 返回表示窗口的内部高度/宽度的数字。不包括开发者工具、顶部栏、侧边栏、滚动条、边框等不由 HTML 控制的部分01Cypress系列(23)- 可操作类型的命令 之 trigger()https://www.cnblogs.com/poloyy/category/1768839.html02Android ViewDragHelper及移动处理总结概述 2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用。我们知道在我们实际的开发中往往会涉及到很多的拖动效果,而ViewDragHelper解决了android中手势处理过于复杂的问题。 其实ViewDragHelper并不是第一个用于分析手势处理的类,gesturedetector也是,但是在和拖动相关的手势分析方面gesturedetector只能说是勉为其难,其拓展性并不好。 为了方便大家的理解,我们08
分享一些Python学习题目 实例061:杨辉三角 实例062:查找字符串 实例063:画椭圆 实例064:画椭圆、矩形 实例065:画组合图形 实例061:杨辉三角 题目: 打印出杨辉三角形前十行。 程序分析: 无。 def generate(numRows): r = [[1]] for i in range(1,numRows): r.append(list(map(lambda x,y:x+y, [0]+r[-1],r[-1]+[0]))) return r[
原文链接:https://bobbyhadz.com/blog/react-get-mouse-position[1]
3D线条:把上一篇中的3D坐标旋转示例稍做修改,用线把各个小球连接起来即可。 var balls:Array; var numBalls:uint=30; var fl:Number=250; var vpx:Number=stage.stageWidth/2; var vpy:Number=stage.stageHeight/2; function init():void { balls=new Array(numBalls); for (var i:uint=0; i<numBalls; i++
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>45-JavaScript-位置获取</title> <style> *{ margin: 0; padding: 0; } div{ width: 100px; height: 100px;
61、打印出杨辉三角形。 #python3.7 from sys import stdout if __name__ == '__main__': a = [] for i in range(10): a.append([]) for j in range(10): a[i].append(0) for i in range(10): a[i][0] = 1 a[i][i] = 1 fo
<script type="text/javascript"> function openObj(){ window.open("success.html","baiducccc");//新建一个窗体,名字为baiducccc } function openObj2(){ window.open("success.html","_self");//在自身的窗体打开,不会新建窗体 } function openObj3(){ var win = window.open("success.html", "abccc","width=400,height=400,top=100,left=200,menubar=yes,location=yes,scrollbars=yes")//表示不会一直新建窗体,一直都是在名字为abccc的窗体打开(第一次是新建了一个abccc的窗体,之后就不会再创建) //win.resizeBy(200,200)//在原来的页面基础上新加200,200 //win.resizeTo(200,200)//把原来的大小重新设定为200,200 //win.moveBy(200,200);//在原来基础上再偏移200,200 console.log(win.screenX+"."+win.screenY);//查看没有偏移之前的位置 win.moveTo(200, 200); console.log(win.screenX+"."+win.screenY);//查看偏移之后的位置 } console.log(innerHeight+"..."+innerWidth); </script> </head> <body> <input type="button" value="打开新页面" οnclick="openObj()"> <input type="button" value="在当前窗体打开" οnclick="openObj2()"> <input type="button" value="指定窗体位置大小打开" οnclick="openObj3()"> </body>
HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。
chrome和safari一条龙通杀!完全支持所有属性.其中(offsetX和layerX都是以border为参考点)
clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
我们对元素进行点击操作时候,会产生一个 Event 的对象,那么它都有些什么呢?本文带你了解一下:
//mouseover()/mouseout()和mouseenter()/mouseleave()的区别
touchstart: // 手指放到屏幕上的时候触发 touchmove: // 手指在屏幕上移动的时候触发 touchend: // 手指从屏幕上拿起的时候触发 touchcancel: // 系统取消touch事件的时候触发。至于系统什么时候会取消,不详 client / clientY:// 触摸点相对于浏览器窗口viewport的位置 pageX / pageY:// 触摸点相对于页面的位置 screenX /screenY:// 触摸点相对于屏幕的位置 identif
好吧,其实是小妹子Python公选课结课,所以我来帮忙做个大作业(简单到哭的大作业好吗?)!她的大作业就是老师把菜鸟教程的Python一百例扒下来做成文档,然后让学生自己找三个验证下!我们当初是抽选一
对于一些进程通信的基本demo可以去看下我的这个文章:手把手带你快速入门Electron
一、事件对象 事件:onmouseover、 onmouseout、 onclick event //事件的对象
copilot是微软的AI代码生成器,可以帮助我们快速完成代码编写(这句copilot简介是copilot写的)。在openai的chatGPT出现后,copilot的风头有所下降,直到刚才…… 几分钟前我在写我的博客ThreeJS实现屏幕坐标转3d坐标时,原本的第一段代码是这样的:
返回整个页面的滚动的位置,pageYOffset/pageXOffset 与 scrollY/scrollX 返回的值一致,前者是后者的别名,建议使用前者,不支持 IE8
在前端开发中,有时我们需要模拟点击页面上的某个位置,比如自动化测试或者模拟用户操作。今天,我将一步步带大家实现这个功能,让大家能够轻松理解并应用。
一、测试1:无滚动条时,dom对象的offsetWidth、clientWidth和scrollWidth
Vue.js是一个轻量级的JavaScript框架,广泛用于构建用户界面。它提供了一套丰富的指令,帮助开发者快速构建交互式的Web应用程序。本文将介绍个人使用的滑动指令,并解释它们的用法和功能。大家可以根据具体的需求,并结合其他Vue特性和功能来实现更复杂的交互效果。
offsetWidth、offsetHeight、offsetParent、offsetLeft、offsetTop
1.什么是事件 JavaScript事件是由访问Web页面的用户引起的一系列操作, 例如:用户点击。当用户执行某些操作的时候,再去执行一系列代码。 2.事件的三种写法 //在HTML中把事件处理函数作为属性执行JS函数 <input type="button" value="按钮" onclick="alert('你好');" /> //执行与脚本分离 <input type="button" value="按钮" onclick="fn();" /> //
例 2.2(e.pageXscreenX.html) <html> <head> <script language="javascript" src="jquery.min.js"></script> <script language="javascript"> $(function(){ /*马克-to-win:和原来一样,pageX指窗口里,screenX指屏幕,所以多了一个上面的菜单。*/ $("body").bind("click", fn1 = function(e){ var posPage = "(" + e.pageX + "," + e.pageY + ")"; var posScreen = "(" + e.screenX + "," + e.screenY + ")"; $("span").html("Page: " + posPage + "Screen: " + posScreen); }); $("input[type=button]").click(function(){ $("body").unbind("click",fn1); //移除事件监听myFunc1 }); }); </script> </head> <body> sgkls sfdgsdg gf fsdf fgdsf sdf sdfdsf sdfsd <input type="button" value="移除事件1"> </body> </html>
在虚拟世界中,3D坐标与屏幕坐标之间的转换是一个重要的问题。使用ThreeJS开发3D场景时,经常需要将屏幕坐标转换为3D坐标。在本文中,我们将介绍如何使用ThreeJS实现屏幕坐标转3D坐标的两种方法
(adsbygoogle = window.adsbygoogle || []).push({});
GNE 是一个通用的新闻正文抽取器,自从开源以来,已经被很多人用来作为新闻正文通用爬虫的重要组件。
触摸事件是在移动设备(如智能手机或平板电脑)上查看页面时触发的事件。 它们允许您跟踪多点触摸事件。 我们有4个触摸事件: touchstart 触摸事件已经启动(触摸表面) touchend 一个触摸事件已经结束(表面不再被触摸) touchmove 触摸移动手指(或任何接触设备的东西)在表面移动 touchcancel触摸事件已被取消 每当一个触摸事件发生,会触发一个触摸事件: const link = document.getElementById('my-link') link.addEventLi
targetObj.dispatchEvent(event) 使targetObj对象的event事件触发 需要注意的是在IE 5.5+版本上请用fireEvent方法,还是浏览兼容的考虑
开发移动端页面,我们通常都会按照一个固定宽度的设计稿来做,但是实际上的手机屏幕尺寸五花八门,如果不进行适配的话会比较影响使用体验。
相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
拖动实现的思路已经更新,为防止大家步入误区,本文建议不用阅读太细,实现思路请参考:http://www.cnblogs.com/hooray/archive/2012/03/23/2414410.html
对象的概念 创建对象的字面量语法 访问成员运算符 创建对象的构造函数语法 this关键字 添加和删除属性 delete关键字 全局对象 Number / String / Boolean Date / Math / RegEx / Array BOM window对象的属性和方法 history对象 forward() / back() / go() location对象 navigator对象 screen对象 DOM DOM树 访问元素 getElementById() / querySelector(
面向对象 对象的概念 创建对象的字面量语法 访问成员运算符 创建对象的构造函数语法 this关键字 添加和删除属性 delete关键字 标准对象 Number / String / Boolean / Symbol / Array / Function Date / Error / Math / RegExp / Object / Map / Set JSON / Promise / Generator / Reflect / Proxy BOM window对象的属性和方法 his
参考别人写得比较明白的,红色部分为重点吧: 使用jQuery获取元素位置时,我们会使用position()或offset()方法,两个方法都返回一个包含两个属性的对象-左边距和上边距,它们两个的不同点
常用鼠标事件 1 、案例:禁止选中文字和禁止右键菜单 <body> 我是一段不愿意分享的文字 <script> // 1. contextmenu 我们可以禁用右键菜单
window.innerHeight/window.innerWidth: 返回表示窗口的内部高度/宽度的数字。不包括开发者工具、顶部栏、侧边栏、滚动条、边框等不由 HTML 控制的部分
https://www.cnblogs.com/poloyy/category/1768839.html
概述 2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用。我们知道在我们实际的开发中往往会涉及到很多的拖动效果,而ViewDragHelper解决了android中手势处理过于复杂的问题。 其实ViewDragHelper并不是第一个用于分析手势处理的类,gesturedetector也是,但是在和拖动相关的手势分析方面gesturedetector只能说是勉为其难,其拓展性并不好。 为了方便大家的理解,我们
领取专属 10元无门槛券
手把手带您无忧上云