一、年轻的我

“无人不成商”,如果一个电子商务网站想要做起来,搞活动时必不可少的(引入流量、提高用户黏度、活跃网站氛围),今天打折,明天送红包。

(立秋活动,右)

作为一个前端,我当然要从技术的角度来讲一下活动页面怎么做,怎么做?刚到,天猫的时候第一个任务就是要做一个(关于立秋食材)的活动页面。由于,太年轻了,跟着我的前任,来到设计师妹纸的屏幕下晃了两眼,嗯,不错,真漂亮,呵呵(可以意会)。言归正传,当时觉得这个页面挺简单的啊,不就切个图嘛,一两天随便玩嘛,还是太年轻。

前两天我一点也不急,淡定中。直到大限将至,开始整了。前面,很是顺利,框架几下子就搭起来了,接着就切图往里面填素材(要求每张图片的大小不超过50k)。切着切着,觉着不对劲,ps玩过但没有这么玩过,后果就是起来感觉不行,重切,不行,重切,下一张,不行,重切....最最麻烦的是页头(下面细诉难点),切了一天怎么都有空隙,不得不求教前辈了。不知不觉,时间就要到了,设计师,看了设计稿后,是这样的......,好吧,你把要改的地方写个文档。后来,要放到线上的预发环境,我又发现了一个问题,就是图片的本地链接要换成线上的,靠,这个不是坑爹吗(几十张图啊)?我试着问了一些前辈,他们说没有这样的工具(实际上是有的,怪我问错人了)。好吧,于是我又自己随手写了一个图片链接自动替换的工具...后面的事不再细说,这就是成长的代价啊。(沟通不足,切在不了解环境的前提下盲目自信,还是太年轻啊)。

二、“我要打十个!”

后来,做了些活动页面,慢慢的有了些体会。总结一下吧,

活动页面,往往量是非常大的,而且有很多个性化,据活动组的同学说(一周可以达到上百个),“我要打十个!”是经常回荡在他们中间的一句话。

活动页面涉及到几个很重要的部分,构图、图片、组件(包含模板)。

1、构图

当你拿到一个psd,你怎么下手切图?这就是构图的过程,可以通过拉出辅助线来帮助构图,在使用切片工具将大图分隔为几个划定的小图。我着重介绍最麻烦的页头切割,

  方式一,中分:

      

特点:布局比较容易,但是切图时很难精确,(就算精确)两个背景间也很难完全吻合,此时会有缝隙出现。解决这个问题需要在切割时,多切几个像素。

方式二,水平: 

      

特点:切图简单,但是布局相对复杂,需要的dom元素也较多。

注:(这里存在两种布局方式,将图片作为背景,或者使用absolute,50%布局,或者对避免图片间的空隙有很大作用。)

布局:contianer{width:100%;backgorund:url center;}

或者 inner{pos:absolute;left:50%;margin-left:-(width/2)px;}

当然,还有更多其他的方式。

3、图片:

1)、常用图片格式,为gif,jpg,png(png8,png24)。对于活动的背景图,期色彩通常不会特别的艳丽,这种情况下使用gif将会有更好的效果,其质量趋近于jpg的最高品质,当前大小却相当于jpg的中等品质。 (中等品质下图片已经模糊了)

2)、使用web图片格式(ps,ctrl+alt+s),同一种格式将拥有更小的图片大小。

3)、透明

在移动端采用Png8来完成透明,质量小,且支持良好。

在PC端,除IE6外采用Png32来完成透明,IE6下则使用Png8,其次是Gif。

三、组件、模板

组件、模板复用可以加快页面开发速度,而活动的个性化较低,重复度较高(固定导航,图片热区,tab切换,投票,分享),如果做好了组件和模板的沉淀,那么搭建页面框架,添加功能就会非常的容易。

记:Tmall活动页面开发的更多相关文章

  1. 【从零开始学BPM,Day5】报表配置及自定义功能页面开发

    [课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第五天课程] 1.课程概要 Step 1 软件下载:H3 BP ...

  2. C#开发微信门户及应用(44)--微信H5页面开发的经验总结

    在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关功能页 ...

  3. 手机web页面开发-第一弹

    毕业设计题目<基于three.js的太阳系全景漫游>,项目开发运行在手机端,开始学习手机端页面开发. 新建index.html,写meta标签.meta标签分为两大部分:http标题信息( ...

  4. X5的UI部分和传统Web页面开发的差异

    http://doc.wex5.com/different-with-std-web-ui/#1 X5的UI部分和传统Web页面开发的差异 WeX5是跨端移动开发框架,BeX5是基于WeX5的企业快速 ...

  5. 优化单页面开发环境:webpack与react的运行时打包与热更新

    前面两篇文章介绍初步搭建单页面应用的开发环境: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-router实现单页面应用路由 这 ...

  6. 移动端页面开发适配 rem布局原理

    主题 HTML移动端页面开发适配 rem布局原理 什么是适配,为什么要适配 我们拿到的设计图一般是以640,750,1080分辨率为基准设计的,而现在的手机终端各式各样,分辨率不同,逻辑像素不同 ,适 ...

  7. offline页面开发常用方法及页面控件验证

    offline页面开发常用方法及页面控件验证,对一些CheckBoxList操作进行封装,新人可以直接使用该代码. 1.返回上一页网址 /// <summary> /// Descript ...

  8. vue搭建多页面开发环境

    自从习惯开发了单页面应用,对多页面的页面间的相互跳转间没有过渡效果.难维护极度反感.但是最近公司技术老大说,当一个应用越来越大的时候单页面模式应付不来,但是没讲怎么应付不来,所以还得自己去复习一遍这两 ...

  9. 记一次SpringBoot 开发中所遇到的坑和解决方法

    记一次SpringBoot 开发中所遇到的坑和解决方法 mybatis返回Integer为0,自动转型出现空指针异常 当我们使用Integer去接受数据库中表的数据,如果返回的数据中为0,那么Inte ...

随机推荐

  1. [mock]7月25日

    1. 将一个数组分成左右两部分,使得右边的某个连续子段和减去左边的某个连续字段和最小[7,8,9,|3,5,-1] sum right - sum left minimal 想到左右分一刀,O(n), ...

  2. 【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md

    前言 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API).那TCP/IP又是什么呢?TCP/IP是ISO/OS ...

  3. HTML5入门十---Canvas画布实现画图(一)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. mvn 安装ojdbc6.jar

    mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion= - Dpackaging=jar -Dfile ...

  5. iOS开发网络篇-NSURLSession介绍

    NSURLSession: 作用: 和NSURLConnection一样 1.负责发送请求,建立客户端和服务器的连接发送数据给服务器 2.并收集来自服务器的响应数据 步骤: 1.创建NSURLSess ...

  6. iOS开发--即时通讯

    什么是环信? 1.环信是一个第三平台,提供即时通信(IM–Instant Messaging )的服务 2.环信是在XMPP的基础上进行二次开发 3.环信在网络上传输的数据也是XML 4.使用环信,不 ...

  7. TCL语言笔记:TCL中的String命令

    一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...

  8. Android模拟器问题:No system images installed for this target

    CPU/ABI选项无法选择,提示:No system images installed for this target,也就是没有适合的系统镜像 打开Android Manager SDK 下载完后重 ...

  9. PowerDesigner技巧

    原文:PowerDesigner技巧 1.PowerDesigner使用MySQL的auto_increment  ◇问题描述:  PD怎样能使主键id使用MySQL的auto_increment呢? ...

  10. Tornado 中的 get() 或 post() 方法

    ---恢复内容开始--- Tornado 中的 get() 或 post() 方法 请求处理程序和请求参数 Tornado 的 Web 程序会将 URL 或者 URL 范式映射到 tornado.we ...