使用position的绝对定位与相对定位实现轮播图,首先将图片全部拼接成为一行,使用overflow: hidden;将其他图片隐藏,将这一行图片加入定时任务不断进行左移,从而只显示中间的图片,对于边缘特殊处理,将第一张轮播图追加到一行图片之后,当切换到最后一张轮播图时,下一张即播放第一张图,当此图轮播完成后,将所有图片归位,提供两个DEMO,第一个是单纯的轮播不存在任何控制按钮,第二个则比较完善。
在调试模式下 , 该父容器的尺寸为 390 x 44 像素 , 该父容器的高度是 44 像素 ;
1.3 中间区域盒子中使用无序列表进行排放图片,并且每个图片可以作为一个链接进行点击
在上一篇博客中 , 实现了 搜索栏 , 在本篇博客开始实现 搜索栏 下方的 Banner 栏 ;
将布局中的 三个 链接图片 , 放置在 单独的 标签中 , 每个 标签中放置一个 链接标签 , 在 链接标签中包裹一个 图片 ;02网页图片自动转Base64编码的方法文字中夹着图片,图片也需要文字说明,文字和图片相辅相成,就有了绚丽多彩的网页内容。但是图文混排的方式却给我们存储数据带来不便,实际上大多数网页是把文字和图片分别存放在不同文件中的,在html源码中只保存图片的链接地址。07【移动端网页布局】流式布局案例 ⑥ ( 多排按钮导航栏 | 设置浮动及宽度 | 设置图片样式 | 设置文本 )该导航栏的宽度自动充满整个屏幕 , 宽度为 100% , 高度也不需要设置 , 设置自适应即可 ;04Selenium+JQuery定位方法及应用04Python+Selenium笔记(六):元素定位(一) 前言 Web应用以及包含超文本标记语言(HTML)、层叠样式表(CSS)、JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务器发送请求,WEB服务器响应请求,返回给浏览器HTML及相关的JS、CSS、图片等资源,浏览器使用这些资源生成WEB页面,其中包含WEB各种视觉元素,例如文本框、按钮、标签、图标、复选框、下拉框、图片等,这些视觉元素或控件都被Selenium称为页面元素(webelements)。 想要让Selenium执行我们想要的操作,首先必须让Selenium08【移动端网页布局】流式布局案例 ⑦ ( 水平排列的图片链接 2 | 浮动设置 | 盒子模型类型设置 | 结构伪类选择器 )使用 标签作为父盒子 , 其中容纳三个 链接 标签 , 每个链接标签中包含一个 标签 ;04【CSS】轮播图案例开发 ( 基本设置 | 子绝父相 | 浏览器水平居中 | 圆角设置 | 绝对定位居中设置 )设置图片自适应 : 设置的图片可能 大于或小于 图片容器 , 设置其宽度填充 100% 父容器 , 可以保证图片填充满父容器 ;01HTML及CSS常用知识点复习(1)表单容器:<form action="点击提交后触发的服务器地址"></form>05vue2(webpack)调用amap高德地图及其UI组件vue2(webpack)调用amap高德地图及其UI组件和标记物#vue2(webpack)调用amap高德地图及其UI组件和标记物# 今天一个app项目中要使用vue2加入高德地图,本来以为有第三方的插件,结果没找到适合自己用的,因为地图这块,一般都是自定义程度比较高的。注:这块针对的是app版开发,更多更详细请阅读官方api 1、申请key### 点击下边的网址,创建应用,然后申请key,后期要用到,如果已经有key,忽略这一步 http://lbs.amap.com/dev/key/app 2、修改配置### 首先要在build/webpack.base.conf.03Appium自动化(6) - 控件定位工具之uiautomatorviewer 的详细介绍https://www.cnblogs.com/poloyy/category/1693896.html03HTML初学❤w3school快捷通道❤ ————————————————————————— Web标准构成的三部分:04【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )首先 , 设置固定定位 , 固定定位盒子始终显示在浏览器中指定的位置 , 与父容器或其它容器无关 ;02【CSS】CSS 精灵技术 Sprite ( 精灵技术需求 | CSS 精灵技术简介 | 代码示例 )用户访问网站时 , 网页中每张图片都要经过单独请求 , 服务器一次只能传递一张图片给用户浏览器 ,03SeleniumWebDriver处理复选框CheckBox和单选按钮RadioButton使用网页http://demo.guru99.com/test/radio.html作为练习,如下: 使用radio1.click() 切换到Option1单选按钮; 使用radio2.click() 切换到Option2单选按钮,取消选中Option1 ; 代码如下图所示:01XKCD漫画获取爬虫在看书的时候,书上的项目提到了这个网站,于是尝试了一下不看书上的源代码自己实现这个爬取功能,巩固一下。03【CSS3】CSS3 伪元素字体图标 ( 生成 icommon 字体文件 | 字体图标基本使用 | 使用伪元素实现 icommon 字体图标显示 )字体图标 指的是 将图标做成字体样式 , 在 放图标的地方 使用 文字 即可实现 图标显示 ;03JavaScript 学习-35.jQuery 基础语法与事件前言 jQuery 是一个轻量级的”写的少,做的多”的 JavaScript 库。极大地简化了 JavaScript 编程 jQuery 库包含以下功能: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaScript 特效和动画 HTML DOM 遍历和修改 AJAX Utilities 环境准备 在网页中使用 jQuery 可以使用以下方法: 从 jquery.com 下载 jQuery 库 从 CDN 中载入 jQuery, 如从 Google 中加载 jQuery j01【移动端网页布局】流式布局案例 ② ( 实现顶部固定定位提示栏 | 布局元素百分比设置 | 列表样式设置 | 默认样式设置 )京东手机端 https://m.jd.com/ 顶部提示 使用京东 APP 打开网页的提示 , 是通过 固定定位 放置在顶部的 ,01点击劫持漏洞的学习及利用之自己制作页面过程该文章首发于:奇安信攻防社区 https://forum.butian.net/share/43601CSS瞬间黑暗模式最近微信也逃脱不了黑暗时代的到来,网页也很多都做了黑暗模式的兼容和主题。如果我们在做的一个网站想瞬间实现黑暗模式可以怎么实现呢?03XPATH定位(基础篇)selenium定位元素的方法有很多种,像是通过id、name等等,但是这些方法局限性太大01HTML入门概述 HTML 教程 | 菜鸟教程 (runoob.com) 骨架标签 📷 📷 HTML常用标签 HTML常用标签可分为一下几类: 排版标签、图片标签、超链接标签、表格标签、列表标签、表单标签 标题标签 标题标签一共有6个,h1~h6, h1是─级标题,最大;h6是六级标题,最小 align align是标题的重要属性,能够决定标题中文字的显示位置 标题标签一共有6个 align属性可以设置文本对齐方式 align有三个可选值:left、center、right<04浏览器底层工作那些事儿浏览器已经成为我每天都需要打交道的工具,然而对于这个我们的老朋友,即使一些 web 开发人员也对它的底层工作原理不是非常清楚,今天我们就来简单谈一谈浏览器的底层工作原理。02通过图片定位给一张图片添加多个链接我们在建站的时候使用图片素材能为整个网站增色不少,但是太多的边框按钮图片会增加请求次数,从而降低网站加载速度,这时我们可以考虑将多个小图片元素集合到一张图片中,然后通过图片定位的方式来调用,这样所03图片url地址的生成获取方法在写博客插入图片时,许多时候需要提供图片的url地址。作为菜鸡的我,自然是一脸懵逼。那么什么是所谓的url地址呢?又该如何获取图片的url地址呢?01HTML5新特性H4中的input type:text、password、radio、checkbox、file、hidden、submit、reset、image03Ajax请求过程中显示“进度”的简单实现Ajax在Web应用中使用得越来越频繁。在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失,当前页面运行重新编辑。以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左)。当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中);Ajax请求完成被返回响09《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath。xpath 的定位方法, 非常强大。 使用这种方法几乎可以定位到页面上的任意元素。04《最新出炉》系列初窥篇-Python+Playwright自动化测试-24-处理单选和多选按钮-上篇在工作和生活中,经常会遇到我们需要进行选择的情况,比如勾选我们选择性别,男女两个性别总是不能同时选中的,再比如我们在选择兴趣爱好时,我们可以选择多个自己感兴趣的话题,比如:篮球、足球、电竞等话题。我们在执行自动化测试的过程中,必须要学会处理这样的情况。在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到。因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。091【如果你要学JS <16>】—— 表单元素的属性操作,密码显示隐藏的实现.根据早中晚不同时间,进行一个判断,然后再进行一个事件的改变,近而可以从不同时间段获得不同的图片状态00[一对一讲什么] 之 什么叫切图?今天有人在我公众号里留言,问我“什么叫切图?是不是按着图片切。。。”?我没有直接回复他,而是决定把这个问题拿到这里用一篇文章来回答。 严格来讲,切图,是网页制作的一部分;网页制作,是前端开发的一部分。 切图,从操作形式上,是用图片编辑软件,对UI设计图的一种图片编辑操作,就是“图片另存为”。另存为什么呢?就是另存为网页中可以使用的图片。 那这图片,该切成什么样呢? 我不打算把下面的文章写成教程,因为切图的教程已经太多了。咱们这样,随便在网上找一张UI设计图,然后我结合我的工作经验,来讲一讲切图的过程。 随便08一键自动化博客发布工具,用过的人都说好(知乎篇)我们已经学习了很多自动化的知识了,接下来让我们看看在blog-auto-publishing-tools中是如何实现自动发送博文到知乎的。02一键自动化博客发布工具,用过的人都说好(infoq篇)infoq的博客发布界面也是非常简洁的。首页就只有基本的标题,内容和封面图片,所以infoq的实现也相对比较简单。01小程序 - 效果处理之技巧合集(更新中...)巧用Console.log(event) Event::事件对象,方法在执行的时候,当前环境携带的一些信息 可以打印出来、获取很多信息,根据这些信息再度寻找你需要的信息的路径。如小程序里的event.detail.width;;;; 页面加载后切换一次类名,实现初始页动画展示、初始页切换类名、配合一次性定时器切换类名 1 onLoad: function (options) { 2 3 setTimeout(()=>{ 4 5 this.setData({ a: 'a-class09HTML一个完整的网页是由HTML(超文本标记语言),css(层叠样式表)JavaScript(动态脚本语言)三部分组成.02IDEA使用总结IDEA常用设置 在我们第一眼看见IDEA是这个样子的: 显示工具条 我们要显示工具条!,两个按钮哦 黑色主体 我们要黑色的主题,白色的太low了! 调整字体大小 现在的字体太小了,我要鼠标滑轮+cr07layui弹出层html,layer弹出层「建议收藏」我昨天用这个插件的时候也有这个问题,弹出内容大了就居不了中。这是组件不完美的地方,他设置了top和left值,而且是固定的。这种弹出层都是绝对定位的 所以没办法用margin:auto 0神马的居中。解决方案主要两种: 1.修改在浏览器里面调试模式。03图片素材类Web原型制作分享-PexelsPexels是一个高清图片下载服务站点,为用户提供海量共享图片素材的网站,每周都会定量更新。03数据工厂平台-7:菜单和首页上回我们成功的导入了第三方的菜单。虽然漂亮,功能多。但是也难免出现各种各样的问题:03Python爬虫,高清美图我全都要(彼岸桌面壁纸)本人比较喜欢收集壁纸,发现彼岸桌面壁纸唯美分类下的壁纸,我都很喜欢;于是写了个爬虫,后来发现整个网站的网页结构基本一致,于是加了点代码,把整个网页的高清壁纸都爬下来了01JavaScript|制作网页随机验证码网站为了防止用户利用机器人自动注册、登陆和灌水,都会采用验证码技术。验证码技术其实就是把一串随机的数字生成图片,在图片中添加一些干扰元素,用户采用肉眼识别输入验证码,给后台提交数据完成验证。接下来就来讲解一下如何利用JavaScript制作网页随机验证码。03猫学习IOS(五岁以下儿童)UI之360其他下载管理器广场UI猫分享。必须精品 下载材料:http://blog.csdn.net/u013357243/article/details/4448665104初试小刀自我简历小程序最近在做小程序,和域名更换,和新域名备案事情,甚是较忙,少写了文章,今天尝试写一篇小白总结小程序的常见问题,刚接触小程序不到2周,在业余时间尝试小刀小程序,在做这个简历之前,自己亲身搜索了个人简历的小程序,都体验过,大部分是参差不齐,我这个算是比较用心的制作了,搜索出来的简历小程序要不就是其他第三方支持自动生成的,或者是自己制作的,但是都是放置一个设计的图,比较简单,但是也不缺一些好的案例。02layui小问题解决办法:把<button></button>标签改为<input type="button">或者在<button>中添加属性 type="button"03JS轮播图(网易云轮播图)假设我要播放下一张图片,就把浅绿色图片的类名给到绿色图片,这样绿色图片就能到浅绿色的位置,同理把绿色图片的类名给黄色,把黄色的类名给下一个0105.HTML脚本/字符实体/URL/速查列表/05.HTML脚本/字符实体/ URL/速查列表/ HTML 脚本 ---- JavaScript 使 HTML 页面具有更强的动态和交互性。 ---- HTML <script> 标签 <scrip04
文字中夹着图片,图片也需要文字说明,文字和图片相辅相成,就有了绚丽多彩的网页内容。但是图文混排的方式却给我们存储数据带来不便,实际上大多数网页是把文字和图片分别存放在不同文件中的,在html源码中只保存图片的链接地址。
该导航栏的宽度自动充满整个屏幕 , 宽度为 100% , 高度也不需要设置 , 设置自适应即可 ;
(一) 前言 Web应用以及包含超文本标记语言(HTML)、层叠样式表(CSS)、JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务器发送请求,WEB服务器响应请求,返回给浏览器HTML及相关的JS、CSS、图片等资源,浏览器使用这些资源生成WEB页面,其中包含WEB各种视觉元素,例如文本框、按钮、标签、图标、复选框、下拉框、图片等,这些视觉元素或控件都被Selenium称为页面元素(webelements)。 想要让Selenium执行我们想要的操作,首先必须让Selenium
使用 标签作为父盒子 , 其中容纳三个 链接 标签 , 每个链接标签中包含一个 标签 ;04
设置图片自适应 : 设置的图片可能 大于或小于 图片容器 , 设置其宽度填充 100% 父容器 , 可以保证图片填充满父容器 ;
(1)表单容器:<form action="点击提交后触发的服务器地址"></form>
vue2(webpack)调用amap高德地图及其UI组件和标记物# 今天一个app项目中要使用vue2加入高德地图,本来以为有第三方的插件,结果没找到适合自己用的,因为地图这块,一般都是自定义程度比较高的。注:这块针对的是app版开发,更多更详细请阅读官方api 1、申请key### 点击下边的网址,创建应用,然后申请key,后期要用到,如果已经有key,忽略这一步 http://lbs.amap.com/dev/key/app 2、修改配置### 首先要在build/webpack.base.conf.
https://www.cnblogs.com/poloyy/category/1693896.html
❤w3school快捷通道❤ ————————————————————————— Web标准构成的三部分:
首先 , 设置固定定位 , 固定定位盒子始终显示在浏览器中指定的位置 , 与父容器或其它容器无关 ;
用户访问网站时 , 网页中每张图片都要经过单独请求 , 服务器一次只能传递一张图片给用户浏览器 ,
使用网页http://demo.guru99.com/test/radio.html作为练习,如下: 使用radio1.click() 切换到Option1单选按钮; 使用radio2.click() 切换到Option2单选按钮,取消选中Option1 ; 代码如下图所示:
在看书的时候,书上的项目提到了这个网站,于是尝试了一下不看书上的源代码自己实现这个爬取功能,巩固一下。
字体图标 指的是 将图标做成字体样式 , 在 放图标的地方 使用 文字 即可实现 图标显示 ;
前言 jQuery 是一个轻量级的”写的少,做的多”的 JavaScript 库。极大地简化了 JavaScript 编程 jQuery 库包含以下功能: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaScript 特效和动画 HTML DOM 遍历和修改 AJAX Utilities 环境准备 在网页中使用 jQuery 可以使用以下方法: 从 jquery.com 下载 jQuery 库 从 CDN 中载入 jQuery, 如从 Google 中加载 jQuery j
京东手机端 https://m.jd.com/ 顶部提示 使用京东 APP 打开网页的提示 , 是通过 固定定位 放置在顶部的 ,
该文章首发于:奇安信攻防社区 https://forum.butian.net/share/436
最近微信也逃脱不了黑暗时代的到来,网页也很多都做了黑暗模式的兼容和主题。如果我们在做的一个网站想瞬间实现黑暗模式可以怎么实现呢?
selenium定位元素的方法有很多种,像是通过id、name等等,但是这些方法局限性太大
概述 HTML 教程 | 菜鸟教程 (runoob.com) 骨架标签 📷 📷 HTML常用标签 HTML常用标签可分为一下几类: 排版标签、图片标签、超链接标签、表格标签、列表标签、表单标签 标题标签 标题标签一共有6个,h1~h6, h1是─级标题,最大;h6是六级标题,最小 align align是标题的重要属性,能够决定标题中文字的显示位置 标题标签一共有6个 align属性可以设置文本对齐方式 align有三个可选值:left、center、right<
浏览器已经成为我每天都需要打交道的工具,然而对于这个我们的老朋友,即使一些 web 开发人员也对它的底层工作原理不是非常清楚,今天我们就来简单谈一谈浏览器的底层工作原理。
我们在建站的时候使用图片素材能为整个网站增色不少,但是太多的边框按钮图片会增加请求次数,从而降低网站加载速度,这时我们可以考虑将多个小图片元素集合到一张图片中,然后通过图片定位的方式来调用,这样所
在写博客插入图片时,许多时候需要提供图片的url地址。作为菜鸡的我,自然是一脸懵逼。那么什么是所谓的url地址呢?又该如何获取图片的url地址呢?
H4中的input type:text、password、radio、checkbox、file、hidden、submit、reset、image
Ajax在Web应用中使用得越来越频繁。在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后,图片消失,当前页面运行重新编辑。以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左)。当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中);Ajax请求完成被返回响
按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath。xpath 的定位方法, 非常强大。 使用这种方法几乎可以定位到页面上的任意元素。
在工作和生活中,经常会遇到我们需要进行选择的情况,比如勾选我们选择性别,男女两个性别总是不能同时选中的,再比如我们在选择兴趣爱好时,我们可以选择多个自己感兴趣的话题,比如:篮球、足球、电竞等话题。我们在执行自动化测试的过程中,必须要学会处理这样的情况。在实际自动化测试过程中,我们同样也避免不了会遇到单选和多选的测试,特别是调查问卷或者是答题系统中会经常碰到。因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。
根据早中晚不同时间,进行一个判断,然后再进行一个事件的改变,近而可以从不同时间段获得不同的图片状态
今天有人在我公众号里留言,问我“什么叫切图?是不是按着图片切。。。”?我没有直接回复他,而是决定把这个问题拿到这里用一篇文章来回答。 严格来讲,切图,是网页制作的一部分;网页制作,是前端开发的一部分。 切图,从操作形式上,是用图片编辑软件,对UI设计图的一种图片编辑操作,就是“图片另存为”。另存为什么呢?就是另存为网页中可以使用的图片。 那这图片,该切成什么样呢? 我不打算把下面的文章写成教程,因为切图的教程已经太多了。咱们这样,随便在网上找一张UI设计图,然后我结合我的工作经验,来讲一讲切图的过程。 随便
我们已经学习了很多自动化的知识了,接下来让我们看看在blog-auto-publishing-tools中是如何实现自动发送博文到知乎的。
infoq的博客发布界面也是非常简洁的。首页就只有基本的标题,内容和封面图片,所以infoq的实现也相对比较简单。
巧用Console.log(event) Event::事件对象,方法在执行的时候,当前环境携带的一些信息 可以打印出来、获取很多信息,根据这些信息再度寻找你需要的信息的路径。如小程序里的event.detail.width;;;; 页面加载后切换一次类名,实现初始页动画展示、初始页切换类名、配合一次性定时器切换类名 1 onLoad: function (options) { 2 3 setTimeout(()=>{ 4 5 this.setData({ a: 'a-class
一个完整的网页是由HTML(超文本标记语言),css(层叠样式表)JavaScript(动态脚本语言)三部分组成.
IDEA常用设置 在我们第一眼看见IDEA是这个样子的: 显示工具条 我们要显示工具条!,两个按钮哦 黑色主体 我们要黑色的主题,白色的太low了! 调整字体大小 现在的字体太小了,我要鼠标滑轮+cr
我昨天用这个插件的时候也有这个问题,弹出内容大了就居不了中。这是组件不完美的地方,他设置了top和left值,而且是固定的。这种弹出层都是绝对定位的 所以没办法用margin:auto 0神马的居中。解决方案主要两种: 1.修改在浏览器里面调试模式。
Pexels是一个高清图片下载服务站点,为用户提供海量共享图片素材的网站,每周都会定量更新。
上回我们成功的导入了第三方的菜单。虽然漂亮,功能多。但是也难免出现各种各样的问题:
本人比较喜欢收集壁纸,发现彼岸桌面壁纸唯美分类下的壁纸,我都很喜欢;于是写了个爬虫,后来发现整个网站的网页结构基本一致,于是加了点代码,把整个网页的高清壁纸都爬下来了
网站为了防止用户利用机器人自动注册、登陆和灌水,都会采用验证码技术。验证码技术其实就是把一串随机的数字生成图片,在图片中添加一些干扰元素,用户采用肉眼识别输入验证码,给后台提交数据完成验证。接下来就来讲解一下如何利用JavaScript制作网页随机验证码。
猫分享。必须精品 下载材料:http://blog.csdn.net/u013357243/article/details/44486651
最近在做小程序,和域名更换,和新域名备案事情,甚是较忙,少写了文章,今天尝试写一篇小白总结小程序的常见问题,刚接触小程序不到2周,在业余时间尝试小刀小程序,在做这个简历之前,自己亲身搜索了个人简历的小程序,都体验过,大部分是参差不齐,我这个算是比较用心的制作了,搜索出来的简历小程序要不就是其他第三方支持自动生成的,或者是自己制作的,但是都是放置一个设计的图,比较简单,但是也不缺一些好的案例。
解决办法:把<button></button>标签改为<input type="button">或者在<button>中添加属性 type="button"
假设我要播放下一张图片,就把浅绿色图片的类名给到绿色图片,这样绿色图片就能到浅绿色的位置,同理把绿色图片的类名给黄色,把黄色的类名给下一个
05.HTML脚本/字符实体/ URL/速查列表/ HTML 脚本 ---- JavaScript 使 HTML 页面具有更强的动态和交互性。 ---- HTML <script> 标签 <scrip
领取专属 10元无门槛券
手把手带您无忧上云