1.获取远程ftp数据到本地目录
#!/bin/bash
ftp -n<<!
open 135.0.24.19
user exchange exchange
binary
cd /idep/data/0/90/201704/11/0851/9011/90110010 #远程目录
lcd /home/oracle/DataChangeTest/target/ftpdata #本地目录
prompt
mget BOSSNM_0_3020_5001*
close
bye
!
2.
.shell脚本小游戏,猜测商品价格
#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
TIMES=0
echo "商品实际价格为0-999之间,猜猜看是多少?"
while true
do
read -p "请输入你猜测的价格数目:" INT
let TIMES++
if [[ $INT -eq $PRICE ]]; then
echo "恭喜你答对了,实际价格是$PRICE"
echo "你总共猜测了$TIMES次"
exit 0
elif [[ $INT -gt $PRICE ]]; then
echo "太高了"
else
echo "太低了"
fi
done
3.Linux下导出表数据并转换为json数据文件(文件序号名自增)
第一步.使用shell脚本从数据库获取数据到test.txt文本中
getdata.sh
#!/bin/bash
source /home/oracle/.bash_profile
current=$(date +%Y%m%d%H%M%S)
today=$(date +%Y%m%d)
dire="/home/oracle/DataChangeTest/sqlTxt/data_check/${today}"
if [ ! -d "$dire" ]; then
mkdir "$dire"
fi
result=$(sqlplus -s 'tyzw_ty/tyzw_ty2016'<<EOF
spool "/home/oracle/DataChangeTest/sqlTxt/data_check/${today}/${current}data_check.txt"
set pages 0
set feed off
set heading off;
set feedback off;
set verify off;
set linesize 10000;
SELECT
id||'#&'||check_desc||'#&'||check_name||'#&'||check_result||'#&'||TO_CHAR(check_time,'YYYY-MM-DD HH:MM:SS')||'#&'||check_title||'#&'||check_no||'#&' FROM tyzw_ty.DATA_CHECK;
spool off
EOF
)
#这样得出的文本信息是以逗号隔开的
第二步、使用python来读取test.txt文件,并转换成json数据输出到json文件中
change.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json,time,os,sys
def TxttoJson():
#get today time
today = time.strftime('%Y%m%d',time.localtime(time.time()))
#过获取指定文件夹下最新时间内改动的文件
base_dir="/home/oracle/DataChangeTest/sqlTxt/data_check/"+today+"/"
l=os.listdir(base_dir)
l.sort(key=lambda fn: os.path.getmtime(base_dir+fn) if not os.path.isdir(base_dir+fn) else 0)
exctxt = base_dir + l[-1] #l[-1]就是最新的文件
f = open(exctxt,'r') #打开指定数据文件
sourceInLines = f.readlines()
jsonData = []
for line in sourceInLines:
result = {}
line = line.split(',') #截取以逗号隔开的信息
result['check_desc'] = str(line[0]).lstrip() #去掉左边的空格
result['check_name'] = str(line[1]).lstrip()
result['check_result'] = line[2].lstrip()
result['check_time'] = line[3].lstrip()
result['check_title'] = str(line[4]).lstrip()
jsonData.append(result)
jsondatar=json.dumps(jsonData,ensure_ascii=False)
f.close()
return jsondatar[1:len(jsondatar)-1]
if __name__=='__main__': #都是2个下划线 不要搞错了
os.system('sh /home/oracle/DataChangeTest/Myshell/data_check.sh') #在转换数据之前先执行获取数据的shell脚本>,来获取数据,这里面的路径必须是绝对路径,要不然定时任务时要报错
currtime = time.strftime('%Y%m%d',time.localtime(time.time()))
jsData = TxttoJson()
len = len([j for i in [i[2] for i in os.walk("/home/oracle/DataChangeTest/sqlTxt/data_check/"+currtime)] for j in i])
number = "00000000"
if len<10:
number = "0000000"+str(len)
else:
number = "000000"+str(len)
target = open(r"/oradata/exchange/idep/Send/udmu/normal/BOSSNM_0_3020_5002_20_H1_"+currtime+"_851_"+number+"_000.json",'w+') #输出文件
target.write(jsData)
target.close()
4.生成10个随机数保存于数组中,并找出其最大值和最小值
#!/bin/bash
declare -a rand
declare -i max=0
declare -i min=32767
for i in {0..9};do
rand[$i]=$RANDOM
echo ${rand[$i]}
[ ${rand[$i]} -gt $max ] && max=${rand[$i]}
[ ${rand[$i]} -lt $min ] && min=${rand[$i]}
done
echo "Max: $max Min:$min"
5.编写脚本,定义一个数组,数组中的元素是/var/log 目录下所有以.log 结尾的文件;要统计其下标为偶数的文件中的行数之和
#!/bin/bash
declare -a files
files=(/var/log/*.log)
declare -i lines=0
for i in $(seq 0 $[${#files[*]}-1]);do
if [ $[$i%2] -eq 0 ];then
let lines+=$(wc -l ${files[$i]} | cut -d' ' -f1)
fi
done
echo "Lines:$lines."
6.综合实例
str=$(echo {a..z}|tr -d ' ') echo ${#str} 26 echo ${str:3} defghijklmnopqrstuvwxyz echo ${str:3:6} defghi echo ${str: -3}#注意空格 xyz user=$(getent passwd root) echo ${user#*root} #删除第一次出现root的 :x:0:0:root:/root:/bin/bash echo ${user##*root}#删除所有出现的root :/bin/bash echo ${user%root*} #删除最后一个root以及其后的字符 root:x:0:0:root:/ user1=super$user echo $user1 superroot:x:0:0:root:/root:/bin/bash echo ${user1%%root*} #贪婪模式,删除第一个root以及其后的字符 super url='http://www.baidu.com:80' echo ${url%%:*} 从右向左匹配到最后一个:后删除 http echo ${url##*:} 从左向右匹配到最后一个:后删除 80 # 搜索替换 user=$(getent passwd root) echo ${user/root/lee} #只替换第一个 lee:x:0:0:root:/root:/bin/bash echo ${user//root/lee} #全局替换 lee:x:0:0:lee:/lee:/bin/bash echo ${user/#root/lee}# 匹配root开头的行(#锚定行首) lee:x:0:0:root:/root:/bin/bash echo ${user/%bash/lee}# 匹配bash结尾的行(%锚定词尾) root:x:0:0:root:/root:/bin/lee #搜索删除(用空替代) user=$(getent passwd root) echo ${user/root/} #只替换第一个 :x:0:0:root:/root:/bin/bash echo ${user//root/} #全局替换 :x:0:0::/:/bin/bash echo ${user/#root/}# 匹配root开头的行(#锚定行首) :x:0:0:root:/root:/bin/bash echo ${user/%bash/}# 匹配bash结尾的行(%锚定词尾) root:x:0:0:root:/root:/bin/ #转换成大写 echo ${user^^} ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH user1=${user^^} echo $user1 ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH echo ${user1,,} root:x:0:0:root:/root:/bin/bash
1.边的圆角设置
(-moz-)border-top-right-radius上右
border-top-left-radius上左
border-bottom-right-radius下右
border-bottom-left-radius下左
-moz-火狐内核
-webkit-Chrome内核
2.控件失效和背景颜色变换
$('#modifrate').prop('disabled',false);
$('#modifrate').css('background-color','#007eff');
$("p").css({ "color":"white", "background-color":"#98bf21", "font-family":"Arial", "font-size":"20px", "padding":"5px" });
3.阴影部分
box-shadow: 10px 10px 5px #888888;
4.Select控件的选择使用
5.JQuery选择器的使用
6.HTML中字体和颜色设置
font-family:华文新魏;color:white;
7.js代码设置元素属性
li.setAttribute('class','css名称');
li.setAttribute('id','名称');
xx.setAttribute('type','类型');
8.js代码写标签示例
9.display:inline、block、inline-block的区别
display:block就是将元素显示为块级元素.
block元素的特点是:
总是在新行上开始;
高度,行高以及顶和底边距都可控制;
宽度缺省是它的容器的100%,除非设定一个宽度
<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。
display:inline就是将元素显示为行内元素.
inline元素的特点是:
和其他元素都在一行上;
高,行高及顶和底边距不可改变;
宽度就是它的文字或图片的宽度,不可改变。
<span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。
inline和block可以控制一个元素的行宽高等特性,需要切换的情况如下:
让一个inline元素从新行开始;
让块元素和其他元素保持在一行上;
控制inline元素的宽度(对导航条特别有用);
控制inline元素的高度;
无须设定宽度即可为一个块元素设定与文字同宽的背景色。
display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。
inline-block的元素特点:
将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)
并不是所有浏览器都支持此属性,目前支持的浏览器有:Opera、Safari在IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表症。从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block的效果。这时块元素仅仅是被display:inline-block触发了layout,而它本就是行布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。
10.完全匹配属性选择器(CSS为id设置style)
<div id="test">字体什么颜色</div>
[id=test]{
color: red;
}
11.包含匹配选择器
[id*=test]{
color:red;
}
<div id="test">字体什么颜色</div>
<div id="test2">字体什么颜色</div>
<div id="test3">字体什么颜色</div>
12.尾匹配选择器
只要是一article结尾的都可以匹配
13.nth-child和nth-last-child
14.box-shoaow
15.背景颜色渐变
效果图如下:
16. 问题
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>时两个等于一个汉字
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>四个等于一个汉字
17.localStorage的使用
存储json格式数据
18.判断是否网络离线
/**
* 判断网络是否在线
*/
if(window.navigator.onLine){
alert('在线');
}else{
alert('离线');
}
19.H5中的定位
20.定时器的写法
21.Java调用webservice
1.定义PostMethod
PostMethod pm=new PostMethod("url访问地址");
2.把Soap请求的数据xml="..."放到PostMethod中
byte[] b=xml.getBytes("utf-8");
InputStream is = new ByteArrayInputStream(b,0,b.length);
RequestEntity re = new InputStreamRequestEntity(is, b.length, "application/soap+xml; charset=utf-8");
postMethod.setRequestHeader("SOAPAction", "");
postMethod.setRequestEntity(re);
3.生成HttpClient来发送PostMethod请求
HttpClient httpclient=new HttpClient();
httpClient.executeMethod(postMethod);
4.接收返回数据
String strxml = postMethod.getResponseBodyAsString();
22.HttpSessionListener的学习
HttpSessionListener
有2个接口需要实现
sessionCreated
//新建一个会话时候触发也可以说是客户端第一次和服务器交互时候触发
sessionDestroyed
//销毁会话的时候 一般来说只有某个按钮触发进行销毁 或者配置定时销毁
23.MyBatis知识
MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。
需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(与Spring结合包)
24.Struts2常有核心jar包及其作用
struts2五大核心jar包
<从下载的struts2框架中找出下面的jar包>
1。Commons-logging.jar -------------- 用于通用日志处理
2。Freemarker.jar -------------- 表现层框架,定义了struts2的可视组件主题
3。Ognl.jar -------------- OGNL表达式语言,struts2支持该EL
4。Struts2-core.jar -------------- struts2 2.0.11.2的核心库
5。Xwork.jar -------------- webwork的核心库
如要整合其他框架,则需要添加相应的xxx-plugin.jar如:
用到action注解是需导入的包:struts2-convention-plugin-2.3.15.1.jar
1.struts2-core-2.3.1.1.jar struts核心包
2.freemarker-2.3.18.jar freeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具
3.commons-logging-1.1.1.jar Jakarta的通用日志记录包
4.ognl-3.0.3.jar 支持ognl表达式
5.xwork-core-2.3.1.1.jar xwork的包 由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类
6.commons-fileupload-1.2.2.jar struts的上传下载
STRUTS2.3.4最基础的jar包-必须添加完整
struts2.3.4,jar包必须添加完整,类容如下:
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-loggin-1.1.1.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.5.jar
strut2-core-2.3.4.jar
xwork-core-2.3.4.jar
如以上jar包未添加完整,tomcat启动时就会报错
commons包 相关
commons-beanutils.jar(1.1) 主要提供Bean的用法
commons-collections-3.2.1.jar(3.2.1) 各种集合类和集合工具类的封装
commons-dbutils-1.2.jar(1.2) 是操作数据库的组件,对传统操作数据库 的类进行二次封装,可以把结果集转化 成List
commons-fileupload-1.2.1.jar(1.2.1) 文件上传时候的组件
commons-httpclient-3.0.1.jar(3.0.1) http相关操作,如HttpURLConnection的操作
commons-io-1.4.jar(1.4) io包
commons-lang-2.3.jar(2.3) 基础工具包,封装一些常用的基础操 作,例如StringUtils类
commons-logging.jar 日志包
commons-pool-1.3.jar(1.3) 连接池相关的包,基本跟数据源等相关数据库的操作一起
25.ssh框架的层次
表示层
业务逻辑层P
域模块层(实体层)
数据持久化层
Spring
一方面作为一个轻量级的
IoC
容器,
负责查找、定位、创建和管理对象及对象之间的依赖关系
,另一方面能使
Struts
和
Hibernate
更好地工作。
26.HTML知识点
27.html实现手机的popuwindow
28.为什么实体要implements Serializable
Serializable是一个标识接口,不需要实现它的任何方法,而且它也没有方法,只是告诉系统实现了我之后可以被序列化,方便在网络中传输。
29.Ext.Ajax的使用
Ext.Ajax.request({
url: 'Register.aspx',
params: {
oper: 'login',
LoginEmail:Ext.get('LoginEmail').dom.value,
LoginPwd:Ext.get('LoginPwd').dom.value
},
success: function(response, options) {
var
responseArray = Ext.util.JSON.decode(response.responseText);
if(responseArray.success=='true'){
Cookies.set('Allcard_userName', responseArray.user);
Ext.Msg.alert('信息','您已成功登录!',IsLogin);
}else{
Ext.Msg.alert('失败','登录失败,请确认您的帐号密码无误!');
}
}
});
30.easyUI datagrid中添加操作
31. $('#dg').datagrid('clearSelections');//取消选中状态的行
32.easyUI datagrid中获取所有选择数据 并删除
var res = $('#dg').datagrid('getSelections');
if (res != 0) {
for (var i = 0; i < res.length; i++) {
datalist.push(res[i].id);
}
$.messager.confirm('警告!', '你确定要删除'+res.length+'条数据吗?',function(res){
if(res){
$.ajax({
type : "get",
url : "./deleteuser",
traditional : true,
data : {
ids : datalist
},
success : function(data) {
$.messager.alert('Success', '删除成功!');
$('#dg').datagrid('reload'); //刷新数据
},
error : function() {
$.messager.alert('Error', '删除失败!');
}
});
}else{
//取消选择行
$('#dg').datagrid('clearSelections');
console.info('取消');
}
})
} else {
$.messager.alert('提示','请选择要删除的内容');
//alert("请选择要删除的内容");
}
33.****css属性*******
overflow 属性规定当内容溢出元素框时发生的事情
34*****css属性********
text-overflow 属性规定当文本溢出包含元素时发生的事情。
35.去掉table中td之间的间隔 明显第一种要好一点
(1).
(2).
36.JSP页面导出数据到Exce
数据格式为:
//导出Excel
function JSONToExcelConvertor(rows) {
//标题
var titles = [];
titles= ["Femto编码","创建时间","安装地址","设备型号","网络类型","用户投诉号码","领用分公司","联系人姓名","联系电话","单独定性","工单重要性","关联工单","设备状态","FEMTO本小区PSC和CI","备注"];
var excel = '<table>';
// 设置表头
var row = "<tr>";
for (var i = 0, l = titles.length; i < l; i++) {
row += "<td><font face='宋体' size='4'><strong>" + titles[i] + '</strong></font></td>';
}
// 换行
excel += row + "</tr>";
//设置数据
var data = '';
for(var j = 0; j < rows.length; j++){
data +=
"<tr><td>"+rows[j].femto_no+"</td>\n" +
"<td>"+rows[j].create_time+"</td>\n" +
"<td>"+rows[j].address+"</td>\n" +
"<td>"+rows[j].femto_type+"</td>\n" +
"<td>"+rows[j].internet_type+"</td>\n" +
"<td>"+rows[j].complaints_phone+"</td>\n" +
"<td>"+rows[j].received_company+"</td>\n" +
"<td>"+rows[j].received_peopleName+"</td>\n" +
"<td>"+rows[j].phone+"</td>\n" +
"<td>"+rows[j].order_type+"</td>\n" +
"<td>"+rows[j].order_importance+"</td>\n" +
"<td>"+rows[j].order_no+"</td>\n" +
"<td>"+rows[j].femto_status+"</td>\n" +
"<td>"+rows[j].femto_psc_ci+"</td>\n" +
"<td>"+rows[j].femto_note+"</td></tr>";
}
excel += data;
excel += "</table>";
var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel';
excelFile += '; charset=UTF-8">';
excelFile += "<head>";
excelFile += "<!--[if gte mso 9]>";
excelFile += "<xml>";
excelFile += "<x:ExcelWorkbook>";
excelFile += "<x:ExcelWorksheets>";
excelFile += "<x:ExcelWorksheet>";
excelFile += "<x:Name>";
excelFile += "{worksheet}";
excelFile += "</x:Name>";
excelFile += "<x:WorksheetOptions>";
excelFile += "<x:DisplayGridlines/>";
excelFile += "</x:WorksheetOptions>";
excelFile += "</x:ExcelWorksheet>";
excelFile += "</x:ExcelWorksheets>";
excelFile += "</x:ExcelWorkbook>";
excelFile += "</xml>";
excelFile += "<![endif]-->";
excelFile += "</head>";
excelFile += "<body>";
excelFile += excel;
excelFile += "</body>";
excelFile += "</html>";
var url = 'data:application/vnd.ms-excel;charset=utf-8,'
+ encodeURIComponent(excelFile);
var link = document.createElement("a");
link.href = url;
link.style = "visibility:hidden";
link.download ="Femto导出数据" + ".xls";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
37.jquery mobile中将footer固定在底部
添加data-position="fixed"属性即可
38.选择器
$('form[name=upload] input');
$('span.hl').css('backgroundColor', '#fffceb').css('color', '#d85030');
子选择器(Child Selector)
子选择器
$('parent>child')类似层级选择器,但是限定了层级关系必须是父子关系,就是
<child>节点必须是
<parent>节点的直属子节点。还是以上面的例子:
$('ul.lang>li.lang-javascript'); // 可以选出[<li class="lang-javascript">JavaScript</li>] $('div.testing>li.lang-javascript'); // [], 无法选出,因为<div>和<li>不构成父子关系
$('div:visible'); // 所有可见的div $('div:hidden'); // 所有隐藏的div
---------------------------------------------------------------
var ul = $('ul.lang'); // 获得<ul> var dy = ul.find('.dy'); // 获得JavaScript, Python, Scheme var swf = ul.find('#swift'); // 获得Swift var hsk = ul.find('[name=haskell]'); // 获得Haskell
对于位于同一层级的节点,可以通过
next()和
prev()方法,例如:
当我们已经拿到
Swift节点后:
var swift = $('#swift') swift.next(); // Scheme swift.next('[name=haskell]'); // Haskell,因为Haskell是后续第一个符合选择器条件的节点 swift.prev(); // Python swift.prev('.js'); // JavaScript,因为JavaScript是往前第一个符合选择器条件的节点
map()
方法把一个jQuery对象包含的若干DOM节点转化为其他对象:
var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell var arr = langs.map(function () { return this.innerHTML; }).get(); // 用get()拿到包含string的Array:['JavaScript', 'Python', 'Swift', 'Scheme', 'Haskell'] -------------------------------------------------------------------------------
on
方法用来绑定一个事件,我们需要传入事件名称和对应的处理函数。
var a = $('#test-link'); a.on('click', function () { alert('Hello!'); });
jQuery能够绑定的事件主要包括:
鼠标事件
click: 鼠标单击时触发;
dblclick:鼠标双击时触发;
mouseenter:鼠标进入时触发;
mouseleave:鼠标移出时触发;
mousemove:鼠标在DOM内部移动时触发;
hover:鼠标进入和退出时触发两个函数,相当于mouseenter加上mouseleave。
键盘事件
键盘事件仅作用在当前焦点的DOM上,通常是
<input>和
<textarea>。
keydown:键盘按下时触发;
keyup:键盘松开时触发;
keypress:按一次键后触发。
其他事件
focus:当DOM获得焦点时触发;
blur:当DOM失去焦点时触发;
change:当
<input>、
<select>或
<textarea>的内容改变时触发;
submit:当
<form>提交时触发;
ready:当页面被载入并且DOM树完成初始化后触发。
-----------------------------------------------------------------------
自定义动画
如果上述动画效果还不能满足你的要求,那就祭出最后大招:
animate(),它可以实现任意动画效果,我们需要传入的参数就是DOM元素最终的CSS状态和时间,jQuery在时间段内不断调整CSS直到达到我们设定的值:
var div = $('#test-animate'); div.animate({ opacity: 0.25, width: '256px', height: '256px' }, 3000); // 在3秒钟内CSS过渡到设定值
animate()
还可以再传入一个函数,当动画结束时,该函数将被调用:
var div = $('#test-animate'); div.animate({ opacity: 0.25, width: '256px', height: '256px' }, 3000,
function ()
{ console.log('动画已结束'); // 恢复至初始状态: $(this).css('opacity', '1.0').css('width', '128px').css('height', '128px'); });
串行动画
jQuery的动画效果还可以串行执行,通过
delay()方法还可以实现暂停,这样,我们可以实现更复杂的动画效果,而代码却相当简单:
var div = $('#test-animates'); // 动画效果:slideDown - 暂停 - 放大 - 暂停 - 缩小 div.slideDown(2000) .delay(1000) .animate({ width: '256px', height: '256px' }, 2000) .delay(1000) .animate({ width: '128px', height: '128px' }, 2000); } </script>
span中放图片
39.自定义属性
<p id="test_p" myarr="rayArr"></p>
//获取自定义的属性
var arrt = $('#test_p').attr('myarr');
alert(arrt);
//循环获取
$('.mui-bar-tab span:nth-child(odd)').each(function(){
var myatr = $(this).attr('myatrr');
alert(myatr);
});
40.CSS3的动画
CSS3动画的属性主要分为三类:transform、transition以及animation。
transform:
rotate:transform: rotate(x);
scale:transform: scale(a); 元素x和y方向均缩放a倍
transform: scale(a, b); 元素x方向缩放a倍,y方向缩放b倍
transform: scaleX(a); 元素x方向缩放a倍,y方向不变
transform: scaleY(b); 元素y方向缩放b倍,x方向不变
translate
设置元素的位移,用法为:
transform: translate(a, b); 元素x方向位移a,y方向位移b
transform: translateX(a); 元素x方向位移a,y方向不变
transform: translateY(b); 元素y方向位移b,x方向不变
skew
设置元素倾斜的角度,用法包括:
transform: skew(a, b); 元素x方向逆时针倾斜角度a,y方向顺时针倾斜角度b
transform: skewX(a); 元素x方向逆时针倾斜角度a,y方向不变
transform: skewY(b); 元素y方向顺时针倾斜角度b,想方向不变
以上的参数均必须是以deg结尾的角度数或0,可为负数表示反向。
41.spring mvc拦截器
1.
2.
3.
42.加载easyui 中datagrid加载数据出错解决
function showDailyReport(){
$('#showDailyReportForm').form('submit', {
url:"./showDailyReport",
onSubmit: function(){
// do some check
// return false to prevent submit;
},
success:function(data){
alert(data);
$('#dailyreportdg').datagrid('loadData',data);
}
});
}
TypeError: rows is undefined
43.CSS3动画属性
@keyframes | 规定动画。 | 3 |
animation | 所有动画属性的简写属性,除了 animation-play-state 属性。 | 3 |
animation-name | 规定 @keyframes 动画的名称。 | 3 |
animation-duration | 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 | 3 |
animation-timing-function | 规定动画的速度曲线。默认是 "ease"。 | 3 |
animation-delay | 规定动画何时开始。默认是 0。 | 3 |
animation-iteration-count | 规定动画被播放的次数。默认是 1。 infinite无线次。 | 3 |
animation-direction | 规定动画是否在下一周期逆向地播放。默认是 "normal"。 | 3 |
animation-play-state | 规定动画是否正在运行或暂停。默认是 "running"。 |
44.block,inline和inlinke-block细节对比
- display:block
- block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
- block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
- block元素可以设置margin和padding属性。
- display:inline
- inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
- inline元素设置width,height属性无效。
- inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。
- display:inline-block
- 简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。
补充说明
- 一般我们会用display:block,display:inline或者display:inline-block来调整元素的布局级别,其实display的参数远远不止这三种,仅仅是比较常用而已。
- IE(低版本IE)本来是不支持inline-block的,所以在IE中对内联元素使用display:inline-block,理论上IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表象。
45.synchronized关键字的用法?
可以用synchronized(对象) { … }定义同步代码块,或者在声明方法时将synchronized作为方法的修饰符
1.
2.
3.
45.JavaScript对象的原型图
46.js中将毫秒时间转换成对应日期时间
var unixTimestamp =
new Date( 1477386005*1000 ) ; commonTime = unixTimestamp.toLocaleString();
Date.prototype.toLocaleString = function() {
return this.getFullYear() + "/" + (this.getMonth() + 1) + "/" + this.getDate() + "/ " + this.getHours() + ":" + this.getMinutes() + ":" + this.getSeconds();
};
47.点击按钮内容变化
$('#toggleLayer').click(function(event) {
$(this).html(str = $(this).html() == '打开' ? '收起' : '打开');
$('.productListCont').stop().slideToggle();
});
48.自定义dailog弹窗框
css:
<style type="text/css">
.outdiv{
position: absolute;
left:0;
top:0;
width: 100%;
height: 100%;
opacity: 0.5;
background-color: #000;
}
.bg_div{
position: absolute;
left: 0;
top: 0;
text-align: center;
width: 100%;
}
.content{
margin-left: 15%;
width: 70%;
margin-top: 15%;
background: #fff;
}
</style>
html:代码
<!--自定义dialog弹窗-->
<div style="display: none;">
<div class="outdiv"></div>
<div class="bg_div">
内容区域
</div>
</div>
</div>
<!--自定义dialog弹窗-->
49.html中打开一个新的页面
1.在同当前窗口中打开窗口
<a href="http://www.baidu.com" title="baidu">baidu</a>
等效js代码
window.location.href="http://www.baidu.com";
2.在另外新建窗口中打开窗口
<a href="http://http://www.baidu.com" title="baidu" target="_blank">baidu</a>
等效于js代码
window.open("http://http://www.baidu.com");
完整的
window.open('${ctx}/iserve/predealGuide/toMainPage.do', "_blank");
50.JS中模糊匹配功能
function ZFunction() {
// 声明变量
var input, filter, table, tr, td, i;
input = document.getElementById("Z_addr");
filter = input.value.toUpperCase();
table = document.getElementById("zx_table");
tr = table.getElementsByTagName("tr");
// 循环表格每一行,查找匹配项
// var str= tr[2].getElementsByTagName("td")[1].innerHTML;
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[1];
if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
//------------------------------
$('#areaSelect').attr("disabled",true);
$('#areaSelect').attr("disabled","disabled");
以下三种方法是移除(去除)掉input的disabled属性的方法:
//三种方法移除disabled属性
$('#areaSelect').attr("disabled",false);
$('#areaSelect').removeAttr("disabled");
$('#areaSelect').attr("disabled","");
51.socke接口调用 方式
52.java代码时间转换
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())
53.select控件下拉监听事件
/*//若查询选择的业务关键字是装机地址,则弹出查询窗口
$('#busiKey').easyDropDown({
onChange:function(selected){
if(selected.value==5){//选择一网通
clearPage();
$('#busiCode').val('');
}
// if(selected.value==4){
// var accountCode=window.showModalDialog('querySrvCodeByAddr.do', '',"scroll:no;resizable:yes;Minimize:no;Maximize:yes;dialogHeight:700px;dialogWidth:1024px;");
// if(accountCode){
// $('#busiKey').easyDropDown('select','3');
// $('#busiCode').val(accountCode);
// }
// }
}
});*/
54.杂记一波
if(parseInt($(window).width())<=940)
55.序号,缩放
#span_num{
margin-right: -20px;
margin-left: 10px;
border: 3px solid #1FCFC3;
padding-left: 15px;
padding-right: 15px;
border-radius: 20px;
font-size: 12px;
font-family: "微软雅黑";
box-shadow: 1px 2px 6px #1FCFC3;
transform:scale(0.83,0.83);
-webkit-transform:scale(0.83,0.83);
-moz-transform:scale(0.83,0.83);
}