最近在学Node的知识,学没一个星期又有一个项目要做了。
哇新的Cmd Markdown更新了苹果的字体看起来好舒服。
关键字: 全屏背景 字体图标 data-* 颜色插件 kindeditor
项目页面:Submit Activity
全屏背景
设计图用了个全屏背景:
正常屏幕(1366768)
1080P宽屏 (19801080)
是的我买了个显示器!好爽!
全屏背景的话可以用backgroud-size: cover;
只不过兼容性有点问题,只支持IE9+。
具体是切一张2K的背景图,使用的时候在主内容外面加上:
设置这个层为fixed,100%显示,然后里面图片的高度的话有不同情况:
这里面有两个高度:.superbg
和img
- 高度如果写成百分比是按照父元素的高度来计算的,所以
img
写成100%会完整显示图片,高度为父层的高度;如果不写就是默认auto
,显示区域会自动截取,好像是从中间开始截取,图片就不完整了。 - 由于外层用了定位,所以必须明确设置高度,我就一刀切650px了=。=所以最后背景图片会有一定变形,不过看不出来啦哈哈哈。
- 可以用JS来先获取到里层
img
的高度,然后设置到外层的高度中,这样图片就不会变形了。不过没有这么做
不过用fixed的话还有其他问题。在正常屏幕下,这个层真的就是fixed的了,内容滚动的时候这个层不滚动,背景不会滚动,达不到设计图想要的下面是纯色的效果,就把这个fixed改成absolute了。
还有一点就是设置z-index
为负值,后面的内容才不会被遮住。
字体图标
阿里巴巴字体图标:iconfont
昨天用的时候好像还没有这个阿里巴巴,话说功能和排版和icomoon好像啊~
几步打造您自己的图标字体
照着这个教程一步步来就可以了。不过设计师用了开源的图标库,有SVG格式,直接导入网站生成字体文件就OK了。
其实想用字体图标是因为需要图标变色。本来是做成雪碧图的,改变颜色就不方便。用了字体图标可以加上各种CSS属性,最喜欢的是transition
,颜色也有渐变效果了。大小通过font-size
。我用的时候先转成inline-block
,设置好宽高。
data-*属性
不知道为什么网上很多说这个是HTML5特性=。= W3C写着所有浏览器支持,自己在IE7下也成功了。
这次用在了字数限制:<input type="text" data-listen="true" data-charlimit="16" placeholder="活动标题">
初始化的时候把所有input
都执行了一遍这个函数。在html里存储数据感觉写JS特别方便~而且可以随时更改。如果纯JS实现的话初始化得到JS里面设置参数,还要判断不同输入框不同限制。
字符限制自己想到的就是字符串截取了,网上查了资料也是一样的想法。不过有个bug:因为中文用拼音的关系,输入的时候例如这样:这是广外这是广外zheshiguangwai
,其实用户只是想再输入四个汉字,但是因为拼音的关系,会先输入拼音,这样很有可能后面的拼音打不出来因为被截取了=。=
这里的正则截取弄了我好长时间=。=。=。=
在input
后面是这个标签,其实我完全可以把会改变的这个0给个标签套起来,不过还是想算了别套太多标签直接正则获取斜杠前面的数字吧。
然后是这样:/^\d{0,2}/
以数字开头,获取0~2位。完全和斜杠没关系。。搜索的时候是按照截取某个字符前的内容,然后发现很复杂而且不能用。什么时候再学一下正则吧。
颜色选择器
这个果断找了插件来用:iColorPicker
翻了一下源码发现竟然很短。。100行不到。好多行都是写CSS样式。
主要思路:
- 在选中的输入框中创建新的
div#iColorPicker
,主要内容就是一个table,里面有预定好的颜色16*7个,然后再创建一个div#iColorPickerBg
,这个是全屏的fixed的div
,给这个div
绑定点击事件,把创建的div
都隐藏掉 - 接下来是给
div#iColorPicker
添加各种样式。以上这些在第一个颜色输入框中初始化完成 - 然后在颜色输入框中添加背景颜色,数值为选中的颜色,再创建
a
标签,内容是色板的icon,可以定义这个icon的图片路径,在输入框之后添加 - 第一步中的点击事件是一个函数,传入两个id,一个是输入框的id,一个是色板icon的id。
- 函数的内容:点击的时候显示
div#iColorPicker
和div#iColorPickerBg
,获取输入框的内容,传入色板中显示的数值并修改背景色。 - 接下来遍历获取色板中的每个
tr
元素,绑定鼠标移过事件:每个tr
标签都已经带有自己的颜色属性:hx='f00'
代表红色,然后就给各个内容赋值改变背景色;再绑定点击事件:隐藏色板,给内容赋值,返回点击的结点jQuery对象。
当时用的时候发现有一些不方便的地方:默认点击后给输入框添加背景色,太丑了太丑了。把这句话去掉。
后来希望点击后旁边的icon图标也能变相应的颜色,所以修改了源码添加了一点东西。
这种把源码都搞一遍的感觉真好哈哈哈
kindEditor
这又是一个插件:kindEditor。
其实没啥好说的,多看看文档就知道怎么弄了:
然后根据需求,插件里面的字体只显示:小标题和段落,又去翻了这个源码,直接搜索关键字font
很快就定位到了,自己加了一点判断,就OK了。
对了这里有个jQuery获取不同iframe下的元素的方法:$('iframe').contents().find('.ke-content')
好像哪个面试题问过这个。
然后里面也有事件处理啦,就能同步显示输入的内容了。
粘贴这个东西,我在网易云音乐里面复制了一些歌词过去,发现自动加载各种样式了。
后面这个后台还要再改一下,要确定传过去的内容和图片路径等等东西。