热门搜索词

CSS3动画使用教程-学习网-动画-教程-SEO

2025-04-18

将CSS3动画视为CSS过渡的更复杂的姐妹,动画在几个关键方面与变换不同:动画不会优雅地降级,如果浏览器不支持,则户运气不佳,另一种方法是使用JavaScript。动画可以重复,并无限重复,过渡总是有限的。动画使用关键帧,可以创建更复杂和细微差别的效果。可以在播放周期的中间暂停动画。所有主流浏览器的最新版本都支持CSS3动画。Firefox 15及更早版本需要一个-moz-前缀; 以后的版本没有。Internet Explorer版本10和11也支持没有前缀的动画,所有版本的Microsoft Edge也是如此。我们可以通过几种方式检查CSS动画支持,首先种是通过测试CSSKeyframeRule作为window对象的方法的存在:const hasAnimations = 'CSSKeyframeRule' in window;如果浏览器支持@supports规则和CSS.supports()API,我们可以使用它:const hasAnimations = CSS.supports('animation-duration: 2s');与过渡一样,我们只能为插值等设置动画,例如颜色值,长度和百分比。创建你的首先个动画我们第一要使用@keyframes规则定义动画,该@keyframes规则有两个目的:设置动画的名称对我们的关键帧规则进行分组让我们创建一个名为的动画pulse:@keyframes pulse {}我们的关键帧将在此块中定义。在动画中,关键帧是动作发生变化的点。特殊是使用CSS3动画,关键帧规则于设置动画周期中特定点的属性值。插入关键帧规则中值之间的值。动画至少需要两个关键帧:一个from关键帧,它是我们动画的起始状态,一个to帧,它是它的结束状态。在每个单独的关键帧块中,我们可以定义要设置动画的属性:@keyframes pulse {    from {        transform: scale(0.5);        opacity: .8;    }    to {        transform: scale(1);        opacity: 1;    }}此代码将我们的对象从其大小的一半扩展到其完整大小,并将不透明度从80%更改为100%。但是,该keyframes规则仅定义了动画。它本身并不会使元素挪动,我们需要应它。让我们定义一个pulse类,我们可以它将这个动画添加到任何元素:.pulse {    animation: pulse 500ms;}在这里,我们使用了animation速记属性来设置动画名称和连续时间。为了播放动画,我们需要@keyframes规则的名称(在这种情况下pulse)和连续时间,其他属性是可选的。属性的顺序animation类似于transition,可以解析的首先个值变为的值animation-duration。第二个值成为的值animation-delay,不是CSS范畴的关键字或动画属性关键字值的单词被假定为@keyframe规则集名称。与此同时transition,animation也接受动画列表。动画列表是以逗号分隔的值列表。例如,我们可以将脉冲动画分成两个规则 – pulse和fade:@keyframes pulse {    from {        transform: scale(0.5);    }          to {        transform: scale(1);    }}@keyframes fade {    from {        opacity: .5;    }    to {        opacity: 1;    }}然后我们可以将它们组合为单个动画的一部分:.pulse-and-fade {    animation: pulse 500ms, fade 500ms;}动画属性虽然使用animation属性较短,但有时较长的属性更清楚。下面列出了手绘动画属性:animation-delay和animation-duration性能的功能类似transition-delay和transition-duration。两者都接受时间单位作为值,以秒(s)或毫秒(ms)为单位。负时间值有效animation-delay,但不是animation-duration。让我们.pulse使用longhand属性重写我们的规则集。这样做给了我们以下内容:.pulse {    animation-name: pulse;    animation-duration: 500ms;}该animation-name物业相当简陋。它的值可以是规则none的名称@keyframes。动画名称几乎没有限制。CSS的关键字,例如initial,inherit, default,和none被制止的。大多数标点字符都不起作,而字母,下划线,数字和神情符号(以及其他Unicode)字符通常会起作。为了清楚和可维护性,最好为动画提供描述性名称,并避免使用CSS属性或神情符号作为名称。循环或不循环:animation-iteration-count属性如果你跟随自己的代码,你会发现这个动画只发生一次。我们渴望我们的动画重复。为此,我们需要animation-iteration-count。animation-iteration-count属性接受大多数数值,整数和十进制数是有效值。但是,对于十进制数字,动画将在最后一个动画周期的中途停止,并以to状态结束,负值animation-iteration-count被视为相同1。要使动画无限期运行,请使用infinite关键字。动画将播放无限次。当然,infinite实际上意味着在卸载文档之前,浏览器窗口关闭,动画样式被删除或设备关闭。让我们的动画无限:.pulse {    animation-name: pulse;    animation-duration: 500ms;    animation-iteration-count: infinite;}或者,使用animation速记属性:.pulse {    animation: pulse 500ms infinite;}播放动画:animation-direction属性但是,我们的动画仍旧存在问题。它不像重复我们的放大动画那么多脉冲。我们想要的是这个元素可以向上和向下扩展。输入animation-direction。animation-direction属性接受四个值之一:normal:初始值,按指定播放动画reverse:翻转from和to说明并反向播放动画alternate:反向播放偶数编号的动画循环alternate-reverse:反向播放奇数动画周期继续我们当前的例子,reverse将我们的对象缩小0.5倍。使用alternate会将我们的对象缩放为奇数循环,向下缩放为偶数。相反,使用alternate-reverse会将我们的对象缩小为奇数循环,向上缩放为偶数循环。由于这是我们想要的效果,我们将我们的animation-direction属性设置为 alternate-reverse:.pulse {    animation-name: pulse;    animation-duration: 500ms;    animation-iteration-count: infinite;    animation-direction: alternate-reverse;}或者,使用速记属性:.pulse {    animation: pulse 500ms infinite alternate-reverse;}使用百分比关键帧我们之前的例子是一个简陋的脉冲动画。我们可以使用百分比关键帧创建更复杂的动画序列。而不是使用from和to,百分比关键帧表示动画过程中的特定变化点。下面是一个使用名为的动画的示例wiggle:@keyframes wiggle {    25% {        transform: scale(.5) skewX(-5deg) rotate(-5deg);    }    50% {        transform: skewY(5deg) rotate(5deg);    }    75% {        transform: skewX(-5deg) rotate(-5deg) scale(1.5);    }    100% {        transform: scale(1.5);    } }我们在这里使用了25%的增量,但这些关键帧可能是5%,10%或33.2%。在播放动画时,浏览器将在每个状态之间插值。与前面的示例一样,我们可以将其分配给抉择器:/* Our animation will play once */ .wiggle {    animation-name: wiggle;    animation-duration: 500ms;}或使用animation速记属性:.wiggle {    animation: wiggle 500ms;}这里只有一个问题。当我们的动画结束时,它会回到原始的动画前状态。要防止这种情况,请使用animation-fill-mode属性。animation-fill-mode动画在开始之前或停止播放之后对属性没有影响。但正如您在wiggle示例中看到的那样,一旦动画结束,它将恢复到动画前的状态。有了animation-fill-mode,我们可以在动画开始和结束之前填写这些状态。该animation-fill-mode属性接受四个值之一:none:动画在没有执行时没有效果forwards:当动画结束时,结束状态的属性值仍将适backwards:动画延迟期间将应首先个关键帧的属性值both:对两者的影响forwards和backwards适由于我们渴望我们的动画元素维持其最终的放大状态,我们将继续使用animation-fill-mode: forwards。(animation-fill-mode: both也会有效。)animation-fill-mode: backwards当animation-delay属性设置为500ms或更高时,效果最明显 。当animation-fill-mode设置backwards为时,将应首先个关键帧的属性值,但在延迟过去之前不会执行动画。暂停动画如上所述,动画可以暂停。转换可以在中途反转,也可以通过切换类名来完全停止。另一方面,动画可以在播放周期的中途暂停使用animation-play-state。它有两个定义的值 – running和paused- 它的初始值是running。让我们看一个使用animation-play-state播放或暂停动画的简陋示例。第一,我们的CSS:.wobble {    animation: wobble 3s ease-in infinite forwards alternate;    animation-play-state: paused;} .running {    animation-play-state: running;}这里,我们有两个声明块:wobble它定义了一个摆动动画,并running设置了一个播放状态。作为我们animation声明的一部分,我们设定了一个animation-play-state值paused。要运行我们的动画,我们将把running类添加到元素中。让我们假设我们的标记包含一个运行动画按钮,其中id包含trigger:const trigger = document.querySelector('#trigger');const moveIt = document.querySelector('.wobble');trigger.addEventListener('click', function() {    moveIt.classList.toggle('running');});添加.running到我们的元素会覆盖animation-play-state设置的值.wobble,并使动画播放。动画开始,结束或重复时检测像过渡一样,动画在结束时会触发事件:animationend。与过渡不同,动画在开始重复时也会触发animationstart和animationiteration发生事件。与转换一样,您可以使用这些事件在页面上触发另一个操作。也许您可以使用animationstart上下文显示“ 停止动画”按钮,或animationend显示“ 重播”按钮。我们可以使用JavaScript监听这些事件。下面,我们正在听取这个animationend事件:const animate = document.getElementById('animate');animate.addEventListener('animationend', function(eventObject) {    // Do something});这里,事件处理函数也接收一个事件对象作为其唯一参数。为了确定哪个动画结束,我们可以查询animationName事件对象的属性。关于性能的注意事项某些属性比其他属性创建性能更好的过渡和动画。如果动画更新了触发重排或重新绘制的属性,则在手机和平​​板电脑等低功耗设备上可能会表现不佳。触发重排的属性是影响布局的属性。其中包括以下可动画属性:border-width(和border-*-width属性)border(和border-*属性)bottomfont-sizefont-weightheightleftline-heightmargin(和margin-*属性)min-heightmin-widthmax-heightmax-widthpadding(和padding-*属性)righttopvertical-alignwidth在对这些属性进行动画处理时,浏览器必须重新运算受影响(通常是相邻)元素的大小和位置。尽可能使用变换。转换或翻译动画变换(例如,transform: translate(100px,200px))可以代替top,left,right,和bottom特性。在某些情况下,height和width动画可以替代scale改造。有时,触发回流(或布局更新)是不可避免的。在这些情况下,尽量减少受影响的元素数量并使用技巧(例如负延迟)来缩短感知的动画持续时间。触发重绘的属性通常是导致颜色更改的属性。这些包括:backgroundbackground-imagebackground-positionbackground-repeatbackground-sizeborder-radiusborder-stylebox-shadowcoloroutlineoutline-coloroutline-styleoutline-width对这些属性的更改比运算布局的更便宜,但它们仍旧有成本。对运算进行更改box-shadow并且border-radius运算起来特殊昂贵,尤其是对于低功耗设备。设置动画这些属性时要小心。相关文章推举CSS教程:CSSO调试和优化  在成为CSS大师的道路上,您需要知道如何消除故障并优化CSS。您如何诊断和修复渲染问题?您如何确保您的CSS不 […]...内联,外部和内部CSS样式之间的区别  有三种方法可以为网站添加CSS样式:可以使用内部CSS并在HTML文档部分包含CSS规 […]...TypeScript简介:Web的静态类型  TypeScript是使用JavaScript创建更好体验的众多尝试之一。 TypeScript究竟是什么? […]...使用Nginx配置负载均衡的方法  负载均衡是扩展应程序并提高其性能和冗余的绝佳方法,Nginx是一种流行的Web服务器软件,可以配置为简陋且功 […]...APPIUM – 于测试的自动化工具  Appium最初由Dan Cueller开发,于利Apple iOS的UI自动化框架对本机挪动应程序运行 […]...CSS3动画使用教程

SFTP怎么?linux使用SFTP的方法-学习网-方法-linux-SFTP-SEO

2025-04-17

FTP是在运算机之间传输文件和数据的标准方法,但在今天这个安全意识非常强的环境中,FTP变得越来越过时。FTP是在数据安全不是一个大问题的时代设计的,FTP通过网络在不同的机器之间传输未加密的数据。任何能够在系统上执行包捕捉的人都可以轻松地读取户名和密码等有价值的信息,FTP中的这种安全漏洞导致了SSH文件传输协议(SFTP)的呈现。SFTP是一种通过SSH通道传输数据的方法,是SSH的一个子系统。这对VPS户特殊有,它是唯一的文件传输协议,在数据传输过程的任何时刻都可以防止攻击,使其成为首选协议。FTP有两个不同的通道来交换数据,命令通道和数据通道。相反,SFTP只有一个加密通道,其中数据以加密的格式化数据包交换。Linux如何使用SFTP?使用SFTP连接到远程服务器通过Linux发行版上的SFTP连接到远程服务器的语法如下:sftp user @ ip-address或domain.com如果想通过SFTP连接到IP 31.220.57.32的Linux VPS服务器,将使用以下命令:sftl user@31.220.57.32执行此命令后,将成功连接到远程服务器。使用SFTP将文件从远程服务器传输到本地运算机使用get命令将文件从远程服务器传输到本地运算机,get命令的基本语法如下:get /remote-directory/file.txt要将/etc/xinetd.conf文件从远程服务器(31.220.57.32)复制到本地计算机,可以使用以下命令:get /etc/xinetd.conf下载之后,可以在本地机器的/user/home目录中找到xinetd.conf文件。要下载多个文件,请使用mget命令,如果要下下载/etc目录中扩展名为.conf的所有文件,请使用以下命令。mget /etc/*.conf下载之后,可以在本地机器的/user/home目录中找到所有*.conf文件。使用SFTP将文件从本地运算机传输到远程服务器要将文件从本地运算机(已连接的SFTP)复制到远程服务器,请使用get命令,get命令的语法如下:get file.txt /RemoteDirectory下面是如何将example.txt文件从本地机器传输到远程机器的示例:mput/home/edward/*.txt /root在这里,我们将在目标机器的(远程服务器的)根目录中找到该文件。还可以尝试使用mput命令传输多个文件,它的工作原理几乎与mget相同,如下:mput / home / edward / * .txt / root该命令将/home/edward目录中扩展名为.txt的所有文件从本地机器传输到远程机器的/根目录。请记住,要下载和上传文件,需要输入put或get命令并按TAB键。sftp>控制台中运行的命令与普通Linux命令非常相似。总结ls、cd、pwd和mkdir的工作方式与它们在Linux shell上的工作方式相似,可以使用lls和lpwd列出本地机器的文件和本地机器的工作目录,而ls和pwd于查看文件和远程服务器的工作目录。相关文章推举HTTP500内部服务器错误修复方法  http500内部服务器错误似乎总是呈现在最不合时宜的时间,你骤然想知道如何让你的WordPress网站重新上 […]...Linux安装Apache教程  由于Apache是​​免费的,因此它是最受欢迎的Web服务器之一,它还具有一些功能使其可于许多不同类型的网站 […]...虚拟服务器(VPS)的优点  如今,每个人都为自己的小型企业甚至是个人运营着一个网站,网站托管是制作网站时的一个重要因素。网络托管是一项服务 […]...phpStudy本地搭建wordpress教程  博客上线之初因胡乱修改网站版面,导致网站整体崩溃恢复无效后只能删库重建,吃一堑长一智我还是老老实实本地搭建网站 […]...如何使用phpMyAdmin从备份中恢复MySQL数据库? phpMyAdmin是一个数据库程序,于通过web接口远程操作数据库。在基本级别,它答应完全治理数据库表(创 […]...SFTP怎么?linux使用SFTP的方法

VPN是什么,为什么要使用VPN?-要使-学习网-VPN-SEO

2025-04-19

如果您是数十年的在线户,您必须知道如何规避危险。网络钓鱼,垃圾邮件,恶意软件和其他在线威逼只是冰山一角,并不是说互联网是一个糟糕的地方 – 事实上,它是一个寻找信息和与人联系的好地方。然而,它的伟大之处也在于它的危险性。很多人正在利其他户的天真,导致在线威胁变得更加普遍。您已经为自己配备了最好的安全工具,以防止病毒和恶意软件感染您的CPU。您还知道如何识别垃圾邮件以及如何避免垃圾邮件,下一步是通过订阅VPN进一步获取在线掩护。在这篇文章中,您将了解VPN虚拟专网络是什么以及VPN在您的专业和个人在线生活中的优势。VPN的优势在于提升您的网络安全性在我们转向VPN的好处之前,我们需要了解它是什么以及它是如何工作的。VPN是什么?VPN代表虚拟专网络。VPN服务器从您连接到的Internet服务提供商(ISP)或WiFi加密您的数据。它会混淆您的个人身份信息,尤其是您的IP地址和位置。您的ISP将看到的是VPN服务器提供的信息,无论可能是什么。那么是什么让VPN变得与众不同而不是浏览网页呢?以下是差异及其好处:1.增强安全性您访问的网站使用其分析和跟踪软件存储有关您的信息。虽然网站使用他们从访问者收集的数据来使他们的网站表现更好,但其他人可能对他们计划如何使用这些信息有其他想法。他们可能会把它出售给第三方提供商,这会让你容易受到影响。使用VPN,网站将无法收集有关您的在线活动的准确信息。他们仍旧会将您视为访问者,但您将被视为匿名户,因为您的真实信息是由您正在使用的VPN加密的。因此,您可以享受网上冲浪,而无需网站收集您的数据,并使用所述信息,原因无法控制。2.取消阻挠网站假设你是一名分配给中国的外籍人士。在那里呆了几天后,你想要赶回家里的家人和朋友。假设您的大部分朋友都在国外,您想使用Facebook。但是,在输入URL后,您发现由于地理阻挠而无法访问该网站。您仍旧可以通过不同的方式与他们取得联系,但您无法在Facebook上与他们交谈。除中国外,还有其他国家审查Facebook并阻挠人们使用它。为什么VPN有助于在线浏览?这就是VPN派上场的地方。从VPN服务器,它会在您访问的网站的眼中更改您的IP地址和地理位置。这些网站不会看到中国的IP地址,而是会看到来自不同国家和地区的IP地址。因此,即使您居住在阻挠Facebook的国家/地区,也可以使用Facebook连接您的网络!VPN的另一个例是流媒体网站。例如,美国Netflix中的内容无法在国外查看。由于这些节目和电影的许可交易,每个国家/地区的可内容数量各不相同。但是,如果您渴望所有Netflix内容触手可及,那么您将不得不去美国观看。虽然这将是昂贵的,但更便宜的替代方案是使用VPN来获得您所在国家/地区的美国Netflix。3.更好的连接性对于企业和组织而言,在线拥有稳固的通信线路是其运营的重要组成部分。他们可以举行视频电话会议,而不是人们汇集到一个单独的房间,花一天时间坐在椅子上。它不仅更环保(不需要使用公共交通工具或车辆旅行 – 只需登录,你就在那里)但它激励每个人提高工作效率。业务及其在线连接的另一个问题是文件共享。如果他们拥有与同事和员工共享的大量文件,那么这就行了。通过VPN,您可以开发有助于在安全位置共享和存储文件的过程,以便您可以在一个位置访问所有内容。为此目的设置VPN需要您聘请将设置和维护VPN的IT专业人员。但是,如果文件共享对您的业务成功至关重要,那么您应该承受成本并以正确的方式构建您的业务。VPN的好处是否为您指明了方向?从专业和个人角度来看,VPN非常有。它可以帮助您舍弃地理限制,并提供对所有网站及其内容的完全访问权限。VPN还为人们开展业务创造了一个更安全的环境,因此他们可以专注于增添收入而不必担心技术细节。更重要的是,VPN在线提供了额外的安全层,因此您可以防止客访问您的信息。由于上述原因,VPN的好处应该说服您获得个人和专业途。相关文章推举网页打开速度慢怎么办?优化CSS性能的7个技巧  级联样式表可以将枯燥的HTML文档转换为动态网页,但随意使用CSS可能会使网站在开始渲染之前瘫痪。本指南将介绍 […]...虚拟主机是什么?  如果你想在互联网创业,你需要一个网站,一个网站会包含许多元素,但虚拟主机服务器是所有网站工作的前提。 所有网站 […]...服务器集群是什么?服务器集群的重要性及类型  顾名思义,服务器集群是指两个或多个运算机同时工作。集群中的每台计算机都称为一个节点,具有自己的特性,如硬盘驱动 […]...SQLite和MySQL有什么区别?  数据库是任何网站或开发设计的核心部分, SQLite和MySQL都是主流的开源数据库。在本文中,我们将分析这两 […]...什么是CSS,为什么它很重要?  Cascading Style Sheets简称“CSS”,它是一种编码语言,为网站提供外观和布局。与HTML […]...VPN是什么, 为什么要使用VPN?

测试例的选择策略-复印机的使用-复印机-学习网-策略-测试-SEO

2025-04-19

很多测试人员,在遇到比较复杂的软件系统时,往往不知道如何抉择测试例,特殊是遇到系统庞大,户角色较多,流程节点、结构比较复杂的系统时,更是不知如何着手。其实,不论多么复杂的系统,抉择测试例的原则都是一样的,简陋来说,主要是以下几点:    先测试核心功能,后测试其他功能:核心功能是软件功能的重要体现,是使用软件的核心目的,也是系统呈现重大BUG的高发地。因此,应该集中资源,优先测试核心功能,保障系统安全、准时上线;    先测试交易支付功能,后测试其他功能:资金的问题永远是最重大的问题,如果在生产上呈现资金问题,无论对产品运营方还是对户体验都将诞生重要的影响,并且在处理起来也较为麻烦,因此,优先保障交易功能中BUG的消除是重中之重;    先测试常功能,后测试其他功能:常功能就是使用频率最高的那些,比如一个系统的登录功能,这些功能会经常被使用到,是最容易呈现问题也最不应该呈现问题的地方;   先测试需求中被特殊说明的地方,后测试无说明的地方:需求中被特殊说明的地方,一般是重要功能点,或者是产品容易出错的地方,或者是产品的亮点,这些地方务求不出问题;    先测试可能有隐患的地方,后测试安全的地方:这个很明显,优先查找并解决掉隐患,才干保障上线后的顺利运行;    先测试有变更的,后测试没有变更的:有时所需要测试的是整个系统中有需求变更的某个模块,但是我们不能保障变更处的代码改动是否会影响其他地方,所以我们往往需要重点测试变更的部分,然后再测试跟变更部分相关的部分乃至整个系统。测试例的抉择策略-复印机的使用

使用Xamarin Forms进行移动应程序开发-学习网-程序开发-Forms-Xamarin-SEO

2025-04-21

挪动应程序已有10年历史。在过去的十年中,我们看到网站经过重新设计,可以扩展并响应各种挪动设备,如平板电脑和智能手机,以提供挪动原生应UI。然而,随着挪动应程序越来越受智能手机和平板电脑在iOS,Android和Windows这三个主要平台上的销售增长的影响,这使得现有的设计机构,网页设计师和开发人员处于一个十字路口。如何在利团队现有的设计和开发技能的同时支持这些挪动平台的开发,而无需花时间学习新的编程语言,如Android for Java,Objective-C for iOS和C#for Windows。什么是XAMARIN形式?Xamarin Forms是一个挪动应程序平台,与Windows和Mac上提供的Microsoft Visual Studio IDE捆绑在一起。借助Xamarin Forms,设计人员和开发人员可以从单个共享C#代码库构建适于iOS,Android和Windows的本机应程序。在过去的两年里,我花了很多时间学习Xamarin Forms为客户开发应程序,我决定创建这篇文章,让网页设计师和Web开发人员深入了解使用Xamarin Forms开发应程序以及在开发过程中学到的一些体会教训。通过本文,我将假设您具有编程语言的基础级别,或者设计人员可以很好地理解HTML和CSS。XAMARIN Forms如何运作Xamarin Forms的工作原理是将您创建的UI元素从共享PCL(可移植类库)UI代码映射到Windows,Android和iOS上相应的本机等效代码。所以这意味着您的应程序完全是原生的!每个Xamarin Forms页面分为两部分。于处理UI和CODE BEHIND文件的Visual部分的XAML文件,于处理该页面的行为,例如按钮和显示数据。 户界面…… XAML或C#?Xamarin Forms为您提供了两个创建应程序户界面的选项。XAML第一是XAML(可扩展应程序标记语言)。对于前端设计人员而言,这是一种志愿的挪动UI开发方法。如果您有使用XML,HTML,CSS等创建UI的体会或见识,您会发现熟悉使用此标记,尤其是借助Visual Studios有的intellisense。对于任何现有的.NET开发人员来说,使用WPF或Silverlight开发桌面应程序的好消息,您将能够在几乎没有学习曲线的情况下运行,并且您习惯使用的XAML标记差不多。下面是使用XAML创建的简陋UI的示例。正如您所看到的,所有元素都包含在HTML中,如标记,并且在每个标记中都有可以设置值的属性。