移动开发问题总结

作者: 分类: js 时间: 2018-12-27 评论: 暂无评论

1.情景:两个滚动层叠在一起,底层随着顶层滚动(滚动穿透)
方案:在底层可以滚动的层上加fixed

$("body").css({"position": "fixed",width:'100%'});

2.情景:fixed层input光标定位不准 或 input没有在可视区域。
方案:禁止底层的滚动,遮罩层禁止

$('.bg-opacity').on('touchmove',function(e){
        e.stopPropagation();
        e.preventDefault();
});

// 苹果uc浏览器 position: fixed;处理
var ua = navigator.userAgent.toLowerCase();
if (/iphone|ipad|ipod/.test(ua)) {
     $('#login-box input').bind('focus', function () {
        var h = $(window).height()-100;
        $("底部滚动层").css({"overflow": "hidden", "height": h + "px"});
     });
     $('#login-box input').bind('blur', function () {
        $("底部滚动层").css({"overflow": "auto", "height": "auto"});
     });
}

3.情景:fiexd里含有input,当输入法弹起,head定位不准,往下偏移。(UC浏览器下导航栏收起)
方案:修改浮动层,body层定位为absolute,键盘收起后还原

$('#login-box input').bind('focus', function () {
    $('header,#login-box').css({
        'position': 'absolute'
    });
    $('#section-footer').css({
        'position': 'absolute'
    });

    $('html').css({
        'position': 'relative'
    });
});
$('#login-box input').bind('blur', function () {
    $('header,#login-box').css({
        'position': 'fixed'
    });
    $('#section-footer').css({//由于有些设备直接fixed定位会从键盘的位置掉到底部的动作,所以先隐藏再显示;
        'position': 'fixed',
        'bottom':'0',
        'display':'none'
    });

    setTimeout(function(){
        $('#section-footer').fadeIn();
    },500);
    $('html').css({
        'position': 'static'
    });
});

附:https://segmentfault.com/a/1190000000515816?_ea=1271747

phpstrom 10 永久激活

作者: 分类: php 时间: 2018-12-10 评论: 暂无评论

1.将JetbrainsCrack.jar放到phpstorm安装目录下的lib文件夹
2.找到phpstorm 的安装路径, 在\bin目录下有两个文件 PhpStorm.exe.vmoptions ,PhpStorm64.exe.vmoptions 打开文件

3.最后面加入 一行
-javaagent:C:\Program Files (x86)\JetBrains\PhpStorm 2016.3.2\lib\JetbrainsCrack.jar
后面的路径,根据自己放的位置修改
保存文件
关闭并重新打开phpstorm 

4.打开http://idea.lanyus.com/getkey?userName=Allen
userName可以改
生成一个激活码
菜单 help >>>>Register
选择Activation Code
将验证码粘贴进去
激活...

转至:https://blog.csdn.net/alen_xiaoxin/article/details/54906510
文件下载:https://pan.baidu.com/s/1_U-cfVfKr5dfyHFR1oP3zA 提取码: q4re

Python #2 变量类型

作者: 分类: php 时间: 2018-11-22 评论: 暂无评论

1.数字(不可变数据)
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)

a=100
del a #删除变量

运算方式跟PHP差不多,除了下面几个
2 / 4 # 除法,得到一个浮点数
2 // 4 # 除法,得到一个整数
2 ** 5 # 乘方

2.字符串(不可变数据)
A B C D E F
0 1 2 3 4 5
-6-5-4-3-2-1
可以用 [头下标:尾下标] 截取字符串

str = 'Runoob'
print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次
print (str + "TEST") # 连接字符串

3.元组(不可变数据)
元组写在小括号 () 里,元素之间用逗号隔开

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
tinytuple = (123, 'runoob')
 
print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组

4.列表(可变)
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
变量[头下标:尾下标]
加号 + 是列表连接运算符,星号 * 是重复操作

5.集合
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:parame = {value01,value02,...} 或者 set(value)

a = set('abcdefg')
b = set('abcde')
print(a)  # {'b', 'd', 'c', 'a', 'g', 'e', 'f'}
print(a - b)  # a 和 b 的差集  {'g', 'f'}
print(a | b)  # a 和 b 的并集 {'c', 'b', 'e', 'g', 'a', 'd', 'f'}
print(a & b)  # a 和 b 的交集  {'c', 'b', 'e', 'a', 'd'}
print(a ^ b)  # a 和 b 中不同时存在的元 {'g', 'f'}

6.字典
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。

dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"

tinydict = {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
print(dict['one'])  # 输出键为 'one' 的值
print(dict[2])  # 输出键为 2 的值
print(tinydict)  # 输出完整的字典
print(tinydict.keys())  # 输出所有键 dict_keys(['name', 'code', 'site'])
print(tinydict.values())  # 输出所有值  dict_values(['runoob', 1, 'www.runoob.com'])

构造函数 dict() 可以直接从键值对序列中构建字典如下:

dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])  # {'Taobao': 3, 'Runoob': 1, 'Google': 2}
{x: x ** 2 for x in (2, 4, 6)}  # {2: 4, 4: 16, 6: 36}
dict(Runoob=1, Google=2, Taobao=3)  # {'Runoob': 1, 'Google': 2, 'Taobao': 3}

6.判断变量类型 isinstance 和type
isinstance 和 type 的区别在于:

type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

Python #1 基础语法

作者: 分类: python 时间: 2018-11-22 评论: 暂无评论

1.注释可以用多个 # 号,还有 ''' 和 ""
2.用缩进代替{},注意if后面的 :

# 缩进不一致,会导致运行错误
a = 1
b = 2
if a < b:
    print("Answer")
else:
    print("Answer")

3.字符串的表示
变量[头下标:尾下标:步长]

print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第五个的字符
print(str[2:])             # 输出从第三个开始的后的所有字符
print(str * 2)             # 输出字符串两次

4.模块导入用 import 与 from...import

import sys
from sys import argv,path # 导入特定的成员
common.py

RECV_DATA_LIST = list()
HANDLE_FLAG = False

main.py

from common import RECV_DATA_LIST
from common import HANDLE_FLAG

GitLab备份与恢复

作者: 分类: git 时间: 2018-05-02 评论: 暂无评论

[配置备份地址]
修改/etc/gitlab/gitlab.rb

gitlab_rails['backup_path'] = '/home/backup'
gitlab-ctl reconfigure

[创建备份]

gitlab-rake gitlab:backup:create

[每天执行]
crontab -e 添加

0 0 * * * gitlab-rake gitlab:backup:create

[还原]

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1500809139
Top ↑