很多同学投票想看看设计师的草稿本,今天就来满足大家了!我们来看看六位淘宝设计师的草稿本们,有些是纸质派,有些是电子党,Here we go!
草稿本是设计师工作生活必不可少的工具,比起正儿八经的作品集,设计师的草稿本其实也是十分有趣的,它是设计师脑海里千奇百怪想法的随手记录。
Shiyu:本人是被胁迫公开草稿本的卑微设计师
手绘装备:iPad Pro+Procreate
以下是被迫营业现场对话
△ 给「老同学」的公众号形象草稿
老同学:「好久不见~我记得你画画挺好的~帮画个形象呗~我现在在做一个公众号,需要*&%¥#……你明白吧?你就简单画一画就好~谢谢啦」
我:「….」
△ 给「朋友」画的头像草稿
朋友:「好久不见~我记得你之前帮谁谁画的那个头像挺不错的~也帮我画一个呗~我现在在做blablabla,需要*&%¥#……你明白吧?很简单吧~谢谢啦」
我:「….」
Dajing:我的草稿本就是平时画画原型图或者需要做文档整理规范的时候拿出来画画草图,对我来说我的草稿本是帮我理清思路的一个很好的助手。
手绘装备:A4点格草稿本+马克笔
△ 智能配色草稿
△ 中后台加框草稿
Dajing:里面有当时做中后台框架的时候导航的原型,还有之前做智能配色的时候HSB色环推演的草图,还有些文档维度整理草图,画出来方便查看也便于直观梳理自己的逻辑。
Wanru:画画是我记录生活、寻找灵感的一种方式。
手绘装备:MUJI笔记本、水彩、铅笔、马克笔等等…
△ 冲绳旅行水彩
Wanru:水彩是我最喜欢的绘画形式,非常浪漫,食物也是我擅长画的题材。这是在冲绳旅行时的第一顿晚餐,新鲜的海鲜和爽口的啤酒也具有明亮的颜色,让人忍不住想去表达。烧肉店的杯垫被我带了回来,日本的平面设计做得很好,是很好的素材~
△ 电影小漫画
用小漫画记日记的习惯已经很多年了,我是非常喜欢漫威的,这是13年《钢铁侠3》上映和两个朋友看电影的场景。这个场景必须用美漫的风格了!偶尔会尝试各种画画风格。
△ 随手小速写
偶尔会画些小速写,勾一些人物、小物品、小动物,速写可以很好地练习造型能力。
Zoey:作为一个热爱喝奶茶、追番和打手游的肥胖又无助的设计师,感觉累了就在草稿本上放空自己。
手绘装备:iPad Pro+Procreate & Sketches Pro
△ 记录日常生活的草稿
Zoey:我很喜欢用草稿本记录自己的生活(食物为主),喜欢的电影角色也会简单画下来。
△ 二次元小画
作为半个二次元 ,草稿本当然也被满屏的羞耻占领~ 这两张草稿是我画的Persona 5里面的人物,因为我个人真的特别喜欢P5 ,对于自己喜欢的事情即便996也会熬夜画下去~
Dribbble 经历了资本入驻、创始人出走之后,最大的事情应该就是这次改版吧?这个全球最大、最有影响力的设计师社区的每一个动作都必然会牵扯着每个设计从业者的注意力,新版背后到底有哪些变化?这些变化又是出于什么样的想法来修改的?看看 Dribbble 的官博是怎么说的吧:
在过去的10年当中,Dribbble 已经成长成为一个全球性的社区,成千上万的人从这里获得启发和灵感,助力设计,而我们从最初分享设计作品小样的创意社区,逐步成长为一个全球设计师产品和作品集展示和社交的平台。在此,而我们也第一次开始问自己一个简单的问题:【我们到底是在做些什么?】
今天,我们很高兴宣布,我们在过去的10年当中首次进行了彻底的重设计。
在过去十年当中,我们所设计的 Dribbble 页面的特点,是将设计师的作品和内容放在首位,所以叫我们不追随潮流,采用了极简风格的设计,即使潮流来来去去,它们也只是 Dribbble 展示内容的一部分。我们提供了一幅未经修饰的画布,这样就可以和最疯狂最激进的设计探索相辅相成。不过,这么多年来,Dribbble 这种「隐形」的设计,在视觉美学上确实和时代脱节了。这次,我们创建了一套有着一致样式的设计和代码库,用以替代以往不断修改、庞大且不一致的代码。
「我们新的设计系统旨在保持整个视觉和谐的同时,展示你的创造力。」
如今,我们正在改进 Dribbble 的界面,以更加干净的布局、统一的设计系统、更加简化的配色方案、更加轻便的代码库(加载也更加迅速),以及全新配置的文件,来更好地帮你将作品推到最前沿,正确而合理地展示你的创作和个性。
我们新的设计系统旨在保持整个视觉和谐的同时,展示你的创造力。它是你分享设计作品和创造力的理想画布,而新的美学特质也可以更好地反应此刻我们的公司的气质。
在进行重设计的时候,我们明确知道,我们要完全重新思考社交化的设计师作品展示,并且将创意更大化地呈现。对于 Dribbble Pro 用户和 Pro Business 订阅者,你现在拥有一个全新的、经过全面修改的设置和配置页面,可以在 Dribbble 上充分展示自己的个性,
Pro 用户和 Pro Business 用户可以通过上传你自己的首图和定制化的欢迎语,来个性化你的个页面。
你还会注意到,你的个人页面还可以上传更大的照片,这可以让你的作品对于页面的访客、你的客户、招聘设计师的企业人事而言,看起来都是非常出挑的。新的网格布局是可以自定义的,因此你可以充分完美地设置和展示内容。
此外,我们还修改了「关于我们」这个部分,新版当中,这个部分你可以将所有的个人信息汇集到一起,以便完整而充分地展示你的个人经历、展示简历和技能。
如果你正在寻求工作机会,新的信息发送组件,确保了你的客户或者招聘企业可以一键联系到你,他们可以直接从你的个人资料页向你发送信息,非常轻松地和你取得联系。
当然,并非是只有 Pro 和 Pro Business 用户才能拥有高度定制化的个人页面,无论你是普通用户、内容创作者还是内容策划人,Dribbble 上每个普通用户的个人页面也都会升级。尚未订阅 Pro 服务的设计师会注意到,他们的个人页面会更加简洁,而设计作品会以更加聚焦的形式,吸引到每一个访客的目光。
我们将以往的带有分享功能的收藏合集页(之前叫 Buckets)给翻新了,你可以精心策划整页内容和案例,从一个情绪板到完整的项目,这意味着,借助这个收藏页功能,你可以更加轻松地在 Dribbble 上寻找和搜集灵感。
现在,我们可以非常自豪地宣布,即使你并没有将 Dribbble 作品给分享出来,每个人也都会拥有一个策划人页面,你可以在其中搜集和整理自己喜欢的作品,来展示你的个人品味,通过保存别人的作品,来创建新的合集,我们会自动将它添加到你的个人页资料页当中,让全世界的同好因为品位而关注你。
我们在整个改版设计过程中,面临最大的挑战,其实是图片网格,因为这是绝大多数用户每天浏览图片、发现设计灵感的地方,我们有意识地去弱化 Dribbble 本身 UI,避免喧宾夺主,让每个用户的作品成为视觉焦点,减少噪音。
2020 年才刚刚开始,我们迫不及待地想要展示我们计划中的一切。从案例研究到更好的视频支持,再到作品集展示,摆在我们眼前的改版路线图足以证明我们的雄心,所有的这一切都是为了让全球的设计师能够从中获益,走向成功。请期待我们进一步的改版升级吧!
文章来源:优设 作者:Dribbble
快速变化的技术每年都在影响着设计趋势。作为设计师,我们需要时刻保持关注,对设计趋势拥有较高的敏感度,不断学习,扩充自己的设计技能,目的是为了跟上的市场环境。基于我的调研,经验和观察,我甄选了在2020年你将会看到的最为关键的8个UI/UX设计趋势。让我们一起来看看吧。
插图被应用到APP中已经有很长一段时间了,它们在最近几年的演变令人印象深刻。插图作为一种非常流行的设计元素,为我们产品的整体产品增加了情感化体验。插图非常能抓人眼球,尤其是在融入动效后会显得更加的自然,将产品带入生活的气息,使得产品功能更加突出,同时也增添了更多的细节和个性。
△ Welcome to Swiggy by Saptarshi Prakash
△ Onboarding animations — Virgil Pana
另一个好处是使用动效后,能抓住用户的注意力使其能够更加沉浸在你的产品中。动效同样是讲好品牌故事,产品或者服务最有影响力的途径之一。
微交互存在与每一个网页或者app界面中。每当打开你最喜欢的那些应用时,都有机会看到它们,比如像Facebook中就有大量不同的微交互,我认为「Like」功能就是一个完美的例子。有时,我们几乎意识不到它的存在,因为它们非常的不显眼,非常自然地融到界面中去了。但是,如果当你把这些微交互移除掉的话,你又会非常快的注意并能感受到一些非常重要的东西丢失了。
△ Menu toggle close animation — Aaron Iker
△ Tab bar active animation — Aaron Iker
一般来说,在UI/UX中即使非常小和细节处的设计都可能会带来巨大的冲击力。微交互就是完美的证明,细节和对它的关注能极大的改善产品的整体体验,并让产品体验上升一个台阶。每年,新设备的发布伴随着新的机会,能给产品塑造新品牌和创造富有创意的微交互。
3D图形设计几乎无处不在,比如在电影,游戏或者运营广告里等等。3D图形设计早在10年前就出现了然后一直在不断提升和进化。手机和web技术进展迅猛,新的web浏览器能力打开了3D设计新世界的大门,这给了设计师们在web和手机界面中创造炫酷3D设计的机会。
△ 3D flip menu by Minh Pham
△ Car health report UI by Gleb Kuznetsov
创造并整合这些3D创意设计到web和手机界面中需要特殊的技能和花费大量的工作,但这些付出会得到回报。
△ Apple AirPods Pro landing page
3D设计对于产品和服务来说,具有非常大的吸引力,例如在交互上能够支持用户360度查看产品,从而大大提升整个的产品体验。
在2020年会有更多的品牌利用3D渲染模型的产品和服务去模仿线下购物体验。
VR技术在2019年有一个巨大的飞跃。最近的一年我们激动地看到了头戴式设备有了非常大的发展,尤其是在游戏领域。我们需要记住的是,游戏行业经常在引领着新技术的发展并落地到实际的产品设计中。研究表明,VR也不例外,在Oculus Quest于2019年推出后,许多机会为其他行业打开了大门。Facebook CEO 扎克伯格已经测试了激动人心的手部交互功能,并正式宣布将在2020年初为Quest进行更新。
△ Oculus Quest — hand interaction feature
△ PlayStation Virtual Reality Website Design by Kazi Mohammed Erfan
索尼和微软计划在2020年夏季发布他们的新设备,这就给VR技术带来巨大的机会和发展空间。
学习VR 可以阅读优设这个专题:https://www.uisdc.com/zt/vr-design
在最近几年,我们能看到在AR(增强现实)这块有了很大的进步和惊喜。世界引领着科技公司在AR开发方面进行了巨大的投入,所以我们应该期待这项技术在2020年有更大的成长和发展。苹果公司也发布了他们自己的AR套件叫AR KIT3来帮助设计师和开发者在他们的产品中打造AR体验。
△ Apple ARKit 3 by Apple
△ Public transit app by Yi Li
△ House of Plants AR Concept by Nathan Riley
在AR空间里会有无限的机会和创意去打造一个新的品牌和激动人心的体验。为AR做UI设计会在2020年成为一大趋势,这就要求设计师们在面对创造AR产品体验前,应该去准备和抓紧学习新的工具,原型之类的知识。
学习AR 可以阅读优设这个专题:https://www.uisdc.com/zt/ar-design
一般来说,拟物化设计是指以现实风格/方式创造出来与现实中的物体相匹配的设计元素。不断发展的VR/AR技术以及在各大最流行设计平台(Dribbble,Behance等)上展示的设计作品趋势来看,预示着拟物化的回归,但这次换了个更现代,更酷略微高大上的名字叫「新拟物风」(也叫Neumorphism)。
△ Skeuomorph Mobile Banking | Dark Mode by Alexander Plyuto
△ Simple Music Player by Filip Legierski
△ Sleep Cycle App — Neumorphism Redesign by Devanta Ebison
你可能注意到了:Neumorphism代表了丰富细节和明确的一种设计风格。高光,投影,发光,这些细节非常令人印象深刻。Neumorphism风格已经鼓舞了全世界一大批的设计师创作作品,它也会成为2020年最大的设计趋势。
学习新拟物风可以阅读优设这个专题:https://www.uisdc.com/zt/neumorphism
最近一年我们也注意到一种不对称风格正在快速发展。传统基于「模板」的布局肯定会消失。这种设计趋势给2020年的设计带来了更多的差异化。合适的不对称风格将会在我们的作品中增多一大批不同的性格,火力以及个性,所以设计不再单纯的基于模板。
△ Limnia Fine Jewelry Grid — Zhenya Rynzhuk
△ Carine fashion store — selection screen concept — Dawid Tomczyk
当设计这种不对称风格时,设计师拥有非常多的选项以及巨大的发挥空间。但是,想设计好这种不对称风格需要大量的练习,它绝不是将元素随机的摆放在网格中,而应该小心使用和实现它们,时刻需要把用户的诉求考虑到设计中。我们并不想让用户迷失在我们的产品中,对吗?
故事在整个用户体验中扮演着非常重要的角色。你可能经常会在着落页看到它作为品牌介绍,产品或者一个新的服务。讲故事就是利用创意的形式把信息传递给用户。这可以通过强大的视觉元素来呈现(字体,插画,高清图片,颜色,动画,交互元素)。
△ A+WQ / Young Lab Page Story of The Week Animation by Zhenya Rynzhuk
△ Free Sketch Template :: Mimini by Tran Mau Tri Tam
讲故事可以帮助产品创造出品牌和用户之间积极的情感连接。讲故事可以为你的产品创造出非常多的记忆点,让用户感受到自己就是产品或服务的一部分,他们便会更加愿意使用你的产品。话虽如此,讲故事也是一种非常有效的营销手段,它可以极大地提高你的产品/服务的销量。讲故事作为一种非常成功的手段,将在2020年继续发扬光大。
1. 动态插图
通过把动画和插图进行结合,我们可以使得设计变得更加突出,并把它带入用户的日常生活,为产品赋予了的细节和个性化。
2. 微交互
微交互被证明是可以在当用户注意到他们是能够带来非常大的惊喜体验,它能够有效的提升整个产品的用户体验并把产品的品质提升一个等级。
3. 3D图形的应用
新的浏览器技术打开了3D图形应用的大门,能够给设计师带来非常大的创意机会去打造让人惊叹的3D图形设计应用到网页和手机APP中。
4. 虚拟现实
游戏行业将迎来新的变革,新的技术能够应用到产品设计中。
5. 增强现实
在AR空间中拥有无限的机会去创造新的品牌和令人激动的新体验。为AR技术服务的UI设计将在2020年成为主要趋势,设计师需要位为之准备并去学习新的工具,原型,当真的需要你去做一款AR应用时就需要用到。
6. 新拟物风
AR/VR技术不断发展,以及在各大流行设计平台上大量涌现的写实设计作品预示着拟物风的回归,但只是这次换了个新的更加现代化的名字。
7. 不对称布局
运用不对称布局能让设计创意变得拥有更多选项和机会。虽然,设计一个成功的不对称布局需要投入大量的练习和时间。
8. 讲故事
讲故事就是利用创意形式把信息传递给用户。讲故事是一个非常好的营销工具,可能会大大增长产品的销售额或服务。
文章来源:优设 作者:彩云译设计
最近关于新拟物化 Neumorphism 的风太大,简直是传遍大江南北无人不知。对于它的看法大家也都众说纷纭,大部分的观点都集中于:第一看过去非常的高大上,再仔细琢磨一下就感觉只能是飞机稿中的战斗稿。对此我表示非常的理解,毕竟在国内体制下的用户界面设计基本都延续商业设计的命脉──低效能、不实用、不能带来良好转化的东西统统给我丢掉,哪怕是用户体验也是建立在商业目标驱动下的存在。
尽管观点如此,我还是想为新拟物化这位诞生在不平凡 2020 年的新生儿稍稍正个身,它并非空穴来风,也并非完全无法落地使用,相反如果合理加以优化应该能达到意想不到的双赢效果。
一切的开始都源于一个叫 Alexander Plyuto 的设计师在各平台发布了一个他的新作品──「Skeuomorph Mobile Banking(拟物化手机银行)」。
在去年末的时候这名设计师还一直沿用 Skeuomorph(拟物化)这个名词来命名自己的一系列设计作品,直到 HYPE4 的 CEO-Michal Malewicz 写了一篇关于此风格的文章,并赋予了它一个新名词 Neumorphism(New+Skeuomorphism),自此之后大家就都照着这个新名词进行传播了。
在详解新风格之前,先让我们回忆一下这些年移动端用户界面设计风格的演变历程。自 2013 年苹果推出了 iOS7 之后开始刮起的扁平风潮,所有走在设计前沿的大厂都开始不约而同地对自己家的 app 进行了大刀阔斧的改版。
这扁平风一刮就是 7 年,仔细分析一下就能明白为何 ta 如此长寿:内容优先的认知简约,不仅拓展性强且具有能的特性,解放了一大堆「手活」不是那么好的设计师,让他们有更多时间专注在设计解决问题的命题上。
但就算一个风格再适应市场的需求,用户和时代还是会对它逐渐疲惫,审美疲劳和新的市场需求都会催生新的变革。
1. 新拟物化≠轻拟物
第一次看到这个风格介绍的时候险些以为就是曾经的轻拟物重返江湖了,但仔细看看原设计师输出的设计原则,发现确实是完全不同的 2 种定义。
轻拟物从本质上来说是 Y 轴面原质化层级分离的,而新拟物是在 Y 轴面不分离的情况下物理化拟态。
来看一个轻拟物与新拟物卡片的比对:
从上图可以感受到新拟物在保留轻质感的同时,更贴近事物的物理还原,但真实感与舒适度带来的代价就是它的辨识度和对比度明显较其他风格低了很多,这也是它被大家吐槽飞机稿中的战斗稿的重要原因之一。
2. 新拟物化控件示例
原设计师对新拟物化的「浅色版」控件规范如下,基本涵盖了核心的界面设计控件,整体对于控件的定义就在于良好使用投影和渐变来打造物理化界面肌理。
另外还有可以良好适配当前流行黑色模式的「黑色版」。
在了解新拟物化的设计语言特点之后,大家应该都发现这种风格的设计是有一定局限性的,它并不适用于一部分商业产品,大部分时候也不适合全局控件应用。那么如果我们想要把新拟物化应用到我们的落地项目设计中,需要注意哪些地方,并进行什么样的改良呢?
1. 深浅模式叠加解决弱可视难题
新拟物的按钮肌理很多是建立在素色白板上的浅色按钮,如果继续沿用浅色按钮,且不说色弱用户的可视问题,普通用户的操作行为也会大打折扣,所以这里我们建议将新拟物的深浅模式叠加来使用,如下图:
2. 局部高光使用解决层级难辨问题
如果将新拟物化全控制使用,确实容易造成界面层级混乱的问题,因为毕竟它的设计语言就是 Y 轴面不分离的设计定义,但如果我们合理选择它来作为局部高光,应该大部分情况下还是不错的。如下图,我们仅在银行卡部分使用新拟物化(深浅双模式均可用),其他的控件部分保持扁平,使用 2 个风格相融合的方式可以良好保障层级的划分:
3. 拿什么解决开发崩溃的问题?
之前看到很多文章在转发一个生成新拟物化 css 代码的网站:Neumorphism.io,说是用这个就可以轻松解决开发的问题。
然而事实的真相总是令人落泪的,这个网站提供的 css 代码只是网页代码,移动端是完全用不了的。而且就算有对应的 css 代码,对于开发来说也是远不够的,他们还是要写框架来支持这套 css 代码,不然是跑不起来的。所以我们要如何解决开发小哥哥手写新拟物化设计稿崩溃的问题呢?
很简单,就是给他们切图。按钮的软点击切两张状态图,卡片背景只需要切一张,ppduck 压缩走一波,对 app 性能的影响基本可以忽略不计(因为上文我也说过了这种风格不大可能大面积或者全界面应用)。
至于新拟物风不适用的场景大家应该都心知肚明了,信息承载大,层级关系复杂,我就不一一举例了,基本就涵盖了大部分现在市面上主流的产品的大部分场景。但即便如此我们还是需要对新的设计保有一丝激情与希望,不要轻易的去否定,毕竟新生事物总是有它的魅力与独到之处。
文章来源:优设 作者:Nana的设计锦囊
在一个asp.net 的项目中,前端通过ajax将富文本中的文字内容post到服务端的一个ashx中,在ashx中尝试读取参数值时,
结果报错:“从客户端中检测到有潜在危险的 Request.Form 值”
#事故分析
由于在asp.net中,Request提交时出现有html代码字符串时,程序系统会认为其具有潜在危险的值。会报出“从客户端 中检测到有潜在危险的Request.Form值”这样的Error。
而富文本中的内容是包含html代码的,所以...
#解决方案:
1、前端对富文本字符串进行encodeURI编码,服务端进行HttpUtility.UrlDecode解码操作;
前端代码:
var str = '<p><span style="color: #00B0F0;"><em><strong>我想留在你的身边,</strong></em></span><br/></p><p><span style="color: #7030A0;"><strong><span style="text-decoration: underline;">深情款款多么可怜;</span></strong></span></p>';
$(function() {
$.ajax({
type: "post",
url: "TestHandle.ashx",
data: { Title: 'jack', Content: encodeURI(str) },
success: function (data) {
$("#div").html(data);
}
});
});
后端代码:
public void ProcessRequest(HttpContext context)
{
string str = context.Request["content"];
string content = HttpUtility.UrlDecode(str);
context.Response.ContentType = "text/plain";
context.Response.Write(content);
}
效果图:
2、前端不以form的方式提交,直接以json方式提交,服务端从request的body中读取数据,然后反序列化,得到信息;
前端代码:
var str = '<p><span style="color: #00B0F0;"><em><strong>我想留在你的身边,</strong></em></span><br/></p><p><span style="color: #7030A0;"><strong><span style="text-decoration: underline;">深情款款多么可怜;</span></strong></span></p>';
var temp = { Title: 'jack', Content: str };
$.ajax({
type: "post",
url: "TestHandle.ashx",
contentType:"application/json;charset=utf-8",
data: JSON.stringify(temp),
success: function (data) {
$("#div").html(data);
}
});
后端代码:
string bodyText;
using (var bodyReader = new System.IO.StreamReader(context.Request.InputStream))
{
bodyText = bodyReader.ReadToEnd();
}
dynamic bodyObj = JsonConvert.DeserializeObject(bodyText);
context.Response.ContentType = "text/plain";
context.Response.Write(bodyObj.Content);
效果图:
#其他场景的解决方案:
1、aspx页面,当前页面进行form提交
打开当前.aspx页面,页头加上代码:validateRequest=”false”,如:
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="false" CodeFile="default.aspx.cs" Inherits="default" %>
该方法不推荐,还有一种修改web.config配置文件的方法,强烈不推荐,就不写在这里了;
2、在ASP.NET MVC中的解决方案
1)、针对某个实体类的单个字段设置 [AllowHtml] ,这样提交的时候,系统就会放过该字段。
2)、前端代码:
var str = '<p><span style="color: #00B0F0;"><em><strong>我想留在你的身边,</strong></em></span><br/></p><p><span style="color: #7030A0;"><strong><span style="text-decoration: underline;">深情款款多么可怜;</span></strong></span></p>';
$(function () {
$.ajax({
type: "post",
url: "Home/Test",
data: { Title: 'jack', Content: str },
success: function (data) {
$("#div").html(data.ok);
}
});
});
3)、后端代码:
public class NewInfo
{
public string Title { get; set; }
[AllowHtml]
public string Content { get; set; }
}
#写在最后
该文只是浅显的总结一下,其中涉及的xss方面,没有详细考虑,欢迎指正!
前言
开发中,经常会用到js的Array数组的各种迭代函数map(),filter(),some(),every(),forEach(),find() findIndex(),也是在ES6中新增一些遍历函数。同样是不是也是一道面试题,说说ES6新增的一些新特性????
✍开始正文some()函数
✍一、对some()函数的定义:
some():用于检测数组中的元素是否满足指定条件(函数提供);
some()方法会依次执行数组中的每一个元素:
如果有一个元素满足条件,则表达式返回true,剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意:
some()不会对空数组进行检测。
some() 不会改变原始数组。
✍二、浏览器支持
表格中的数字表示支持该方法的第一个浏览器的版本号。
✍三、语法
array.some(function(currentValue,index,arr),thisValue)
1
参数说明:
✍三、示例
<script>
var ages = [4, 12, 16, 20];
function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.some(checkAdult);
}
</script>
以蚂蚁森林和蚂蚁庄园为典型代表,而淘宝里的“野生小伙伴”、天猫里的“童话镇”也是此类题材。这类游戏更多是通过公益捐献的形式赋予用户更多的使命感,吸引用户参与,但是带来的用户商业价值不高。目前“野生小伙伴”已经下架,“童话镇”在天猫平台的露出并不明显,用户的感知较弱。
四、总结
爱玩是人类的天性。因此游戏以及游戏化的产品,天然具有高用户粘度和用户活跃度的特质。但是市场上有无数的游戏化产品,为什么有的异常火爆,有的无人问津呢?
在产品设计时需要注意以下几点:
1、游戏化产品之所以受到用户的喜爱,利益点仅仅是表层驱动,游戏的玩法才是产品真正的核心。因此需要通过建立完善的游戏化体系,提升产品的竞争力;
2、游戏化产品竞争激烈,需要不断的进行玩法创新,才能带给用户差异化体验。例如拼多多系列产品,通过实物领取和兑换,带给了用户全新的体验感受,对用户的吸引力也更强;
3、游戏化产品需要赋能商业目标,在实现了用户活跃的基础上,还需要提升用户转化;
作者:子牧先生
转自 :子牧设计笔谈
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>隔行变色</title>
</head>
<body>
<table id="mytable" align="center" width="80%" border="1">
<tr bgcolor="#cccccc">
<td>aaa</td>
<td>aaa</td>
<td>aaa</td>
</tr>
<tr>
<td>bbb</td>
<td>bbb</td>
<td>bbb</td>
</tr>
<tr>
<td>ccc</td>
<td>ccc</td>
<td>ccc</td>
</tr>
</table>
<script type="text/javascript">
window.onload=function(){
//获取mytable中标签名为tr的字节点
mytable=document.getElementById("mytable");
trs=mytable.getElementsByTagName("tr");
len=trs.length;
flag=true;
for(i=0;i<len;i++){
if(flag){
//每隔一行设置背景色
var tr=document.getElementsByTagName("tr")[i].setAttribute("bgcolor","#cccccc");
flag=false;
}else{
flag=true;
}
}
}
</script>
</body>
</html>
/Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent);
<script type="text/javascript"> var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0; //以下进行测试 if (Sys.ie) document.write('IE: ' + Sys.ie); if (Sys.firefox) document.write('Firefox: ' + Sys.firefox); if (Sys.chrome) document.write('Chrome: ' + Sys.chrome); if (Sys.opera) document.write('Opera: ' + Sys.opera); if (Sys.safari) document.write('Safari: ' + Sys.safari); </script>
PC端只有Chrome有Safari字段吗?为什么不需要判断其他浏览器?
其实360,QQ等浏览器的userAgent字段也会带有Safari字段,但是由于他们基于Chrome二次开发的,所有也会携带有Chrome字段。
所以「匹配规则:拥有Safari字段,并且没有Chrome字段」就可以了。
接下来是修改元素样式
<html> <head> <style> #a{ width:700px; height:300px; font-size:50px; color:red; background-color:grey; z-index:2; position:absolute; top:1300px; left:200px; display:none; } </style> </head> <body> <div id="a"></div> </body> <script type="text/javascript"> //假设想修改display为block function modify(){ //1.原生Js法 var a= document.getElementById("a"); a.style.display="block"; //2.用JQuery的css方法 var a =$("#a"); a.css("display","block"); //3.用JQuery的attr方法 var a =$("#a"); a.attr("style","display:block"); } </script> </html>
这样就可以根据不同浏览器写出不同的样式适配啦
JS中数据类型转换
目前为止,我了解到的JavaScript中共有6种类型。通过typeof关键字可以查看类型名称。
数据的类型:
字符串:若值为字符串,则显示为String。字符串使用单引号或双引号括起来。在控制台显示为黑色。
数字:若值为数字,则显示为Number。在控制台显示为蓝色。
布尔值:若值为布尔值,则显示为Boolean。它的值只有”true”和”false”。
对象:若值为对象,则显示为Object。
未定义:若值未定义,也就是仅仅声明,但未进行赋值,则显示为Undefined。
空值:若值为指向不引用对象的指针,则显示为Null,它与Undefined不同,以后慢慢深入了解。
以下表格详细写出了各种情况下相互转换的结果,可作为辅助记忆。
值 转换为字符串 转换为数字 转换为布尔值 转换为对象
undefined “undefined” NaN false throw TypeError
null “null” 0 false throw TypeError
true “true” 1 new Boolean(“true”)
false “false” 0 new Boolean(“false”)
“” 0 false new String("")
“1.2” 1.2 true new String(“1.2”)
“1.2a” NaN true new String(“1.2a”)
“aaa” NaN true new String(“aaa”)
0 “0” false new Number(0)
1 “1” true new Number(1)
NaN “NaN” false new Number(NaN)
Infinity “Infinity” true new Number(Infinity)
[] “” 0 true
[9] “9” 9 true
[“a”“b”] “a,b” NaN true
在Js中,数据类型可以相互转换,转换的方式有两种,隐式转换和强制转换,首先来说一些隐式转换。在进行代码书写时,要经常提醒自己所使用的元素是什么数据类型,在进行某些操作后是否会导致数据类型的变化,原因就是Js会对数据进行类型的隐式转换。
隐式转换举例:
(+)加法运算的隐式转换:加号两边只要出先了字符串,就自动将两者均转化为字符串,使两个字符串发生“拼接”,最后生成的结果也是一个字符串;如果前后都不是字符串,则转化为数字类型进行计算。
(-、*、/、%)其他算数运算的隐式转换:前后都转化为数字类型进行计算。
(!)逻辑非的隐式转换:他会将他后面的变量或表达式转换为布尔值。
(<,>)比较运算符的转换:如果前后存在一个数字,会对另一个转化为数字进行比较;如果前后均为字符串,会依次比较对应字符的编码大小,老大比老大,老二比老二,依次进行。
(&&,||)逻辑运算符的转换:先将前后都转化为布尔值再进行判断,要记住的是,只有undefined,null,0,””,NaN会转化成为false,其他都是true。
(== 、===)这里作为补充说明,null与Undefined相等但不全等,NaN与任何都不相等。
强制转换的方式:
1.转化为字符串
String(里面写待转化的内容):没什么好解释的,就是强制将你所看到的转化为你所看到的。
toString(里面写目标数字是几进制),写法为:待转化内容.toString(目标内容是几进制)。括号内不写时默认为10。
toFixed(保留小数的位数),写法为待转化内容.toFixed(保留小数的位数),存在精度误差。
2.转化为数字
Number(),只有所转化内容在肉眼看到的全是数字,才会正常转化;false会转化为0,true会转化为1;null会转化为0;undefined会转化为NaN;其他情况均为NaN。
parseInt(待转化内容,待转化内容的进制方式),与toString互为逆运算,不写的话默认为10。如果待转化内容为字符串,若以数字开头,可以从开始转换到字符前为止变成数值。布尔值,undefined,null经过转化均为NaN。
ParseFloat(),与上面一致,不赘述。
3.转化为布尔值
书写方式为Boolean(),如果上面的隐式转换你有好好看,这里很得不需要再写了。
蓝蓝 http://www.lanlanwork.com