承蒙以前领导的抬爱,还在兼职做着前端项目,以至于没被代码的浪花完全拍在沙滩上。
严格保密是“外包”人员的基本素养
页面不多。设计的小功能倒是还有几个。。记性真的不行。主要为了提醒我自己
css方面:
1.限制文本行数
一个文本标签里限制最多显示三行的内容,超出用...代替
p {
-webkit-line-clamp: 3; /设置多少行/
-webkit-box-orient: vertical; /必须结合的属性,设置或检索伸缩盒对象的子元素的排列方式/
overflow: hidden; /文本会被修剪,并且剩余的部分不可见/
text-overflow: ellipsis; /显示省略号来代表被修剪的文本/
display: -webkit-box;
}
2.设置滚动条样式
一段文本设置高度加overflow:auto时,当内容超过当前高度就会出现滚动条。但是在手机上的默认显示效果是如果不滑动那里就不会出现滚动条。而现在的需求是不滑动的时候也要显示滚动条的存在
div::-webkit-scrollbar { /* 设置滚动条的bg的样式 */
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background-color: #1e4ea8;
}
div::-webkit-scrollbar:vertical { /* 设置垂直滚动条宽度 */
width: 10px;
}
div::-webkit-scrollbar-thumb { /*设置滚动条里面小块的样式*/
border-radius:5px;
background-color: #4b71b9;
}
补充:滚动条组成:
::-webkit-scrollbar 滚动条整体部分
::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或往左往右移动,取决于是垂直滚动条还是水平滚动条)
::-webkit-scrollbar-track 滚动条的轨道(里面装有Thumb)
::-webkit-scrollbar-button 滚动条的轨道的两端按钮,允许通过点击微调小方块的位置。
::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分(除去)
::-webkit-scrollbar-corner 边角,即两个滚动条的交汇处
::-webkit-resizer 两个滚动条的交汇处上用于通过拖动调整元素大小的小控件
3.设置input框默认字体的颜色
::-webkit-input-placeholder { /* WebKit browsers */
color: #d9d8d8;
font-size: 0.34rem;
}
4.提示我自己:因为全局用的都是rem。遇到的一个问题是三行的文本必须要限制个高度。避免文本字数不一样出现一下一上。遇到的问题是,不同屏幕高度(ipad和ihphne x)的计算不一样。最后调整了行高,行高也用了rem
简洁版
js方面:
总结几个用到的小方法
1.获取当前时间
//方法
function date(){
function getNow(s) {
return s < 10 ? '0' + s: s;
}
var myDate = new Date();
var year=myDate.getFullYear(); //获取当前年
var month=myDate.getMonth()+1; //获取当前月
var date=myDate.getDate(); //获取当前日
var h=myDate.getHours(); //获取当前小时数(0-23)
var m=myDate.getMinutes(); //获取当前分钟数(0-59)
var s=myDate.getSeconds();
var now=year+'-'+getNow(month)+"-"+getNow(date)+"
"+getNow(h)+':'+getNow(m)+":"+getNow(s);
return now;
}
//调用 date()
显示![image.png](https://upload-images.jianshu.io/upload_images/1840293-50567213ff0b2ca2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2.获取地址栏url上面的参数
例1:https://www.gaoyue.com/vote/app/13/8
function getUrlParam() { //返回的是8
// 获取参数
var url = window.location.pathname;
var param_arr = url.split("/");
return param_arr[4];
}
例2:https://www.gaoyue.com?bill=8
function getUrlParam(key) {
// 获取参数
var url = window.location.search;
// 正则筛选地址栏
var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
// 匹配目标参数
var result = url.substr(1).match(reg);
//返回参数值
return result ? decodeURIComponent(result[2]) : null;
}
getUrlParam(bill) //调用返回8
3.手机获取验证码后的60s倒计时
function settime(countdown) { //countdown为时间,单位s
if (countdown == -1) {
countdown = countdown;
//此处要清空图片验证码的input的value值
return;
} else {
downobj.html(countdown + "s重新获取");
countdown--;
}
setTimeout(function() {
settime(obj,downobj,countdown) }
,1000)
}
4.ajax数据交互示例
$('#entry-btn').click(function(){ //发布评论按钮
var com_value = $('#entry-kuang').val(); //评论内容
var time = date(); //系统当前时间
var name = '热心网友';
var itemDom = $('#vote-item').find('li'); //项目id
var itemId = [];
for(var i=0; i 0){ //判断输入框不能为空
$.ajax({
url:"/vote/add-comment",
type:"POST",
data:{
"bill_id":billId,
"content":com_value,
},
dataType:"json",
success: function(result){
if(result.code == "10000"){
//评论成功执行的操作
alert('感谢您的评论,我们会尽快审核。');
$('#entry-kuang').val('');
}
}
})
} else {
alert('评论内容不能为空');
}
})
5.提示我自己
需求:当滚动条滚动到一定的高度,菜单栏一直固定在屏幕上端。实现很轻松,但是固定和不固定切换的时候,页面主体内容会跳一下。原因是,菜单栏所占的高度在fixed定位时一下消失了,上面的内容就自动的补齐到上面,视觉上会跳一下。解决方法:获取菜单栏的高度,当fixed时候,把主体内容加一个padding-top等于菜单栏的高度
6.封装一个随时可用的cookie,比如保留24小时的cookie(以下这段内容来自互联网,作者是谁真的忘了,不好意思)
//hours为空字符串时,cookie的生存期至浏览器会话结束。hours为数字0时,建立的是一个失效的cookie,这个cookie会覆盖已经建立过的同名、同path的cookie(如果这个cookie存在)。
function setCookie(name,value,hours,path){
var name = escape(name);
var value = escape(value);
var expires = new Date();
expires.setTime(expires.getTime() + hours*3600000);
path = path == "" ? "" : ";path=" + path;
_expires = (typeof hours) == "string" ? "" : ";expires=" + expires.toUTCString();
document.cookie = name + "=" + value + _expires + path;
}
//获取cookie值 方法
function getCookieValue(name){
var name = escape(name);
//读cookie属性,这将返回文档的所有cookie
var allcookies = document.cookie;
//查找名为name的cookie的开始位置
name += "=";
var pos = allcookies.indexOf(name);
//如果找到了具有该名字的cookie,那么提取并使用它的值
if (pos != -1){ //如果pos值为-1则说明搜索"version="失败
var start = pos + name.length; //cookie值开始的位置
var end = allcookies.indexOf(";",start); //从cookie值开始的位置起搜索第一个";"的位置,即cookie值结尾的位置
if (end == -1) end = allcookies.length; //如果end值为-1说明cookie列表里只有一个cookie
var value = allcookies.substring(start,end); //提取cookie的值
return unescape(value); //对它解码
}
else return ""; //搜索失败,返回空字符串
}
//把用户手机号存入一个Cookie
setCookie('iphoneNum', 13178957841, 720, '/');
//判断24小时内是否验证过
var useriphone = getCookieValue("iphoneNum"); //获取cookie保存的手机号
if (useriphone != ' ' ) {
//说明13178957841这个用户720内登陆过
}