如果是撤销某个文件或文件夹:
git reset HEAD -filename
(3).撤消git push操作
方法:
git reset --hard <commit_id>
git push origin HEAD --force
其他:
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
HEAD 最近一个提交
HEAD^ 上一次
(4).git rebase
git rebase用于把一个分支的修改合并到当前分支
如果想要放弃当前rebase操作,用
git rebase --abort
如果冲突已经解决,先add冲突文件,之后
git rebase --continue
20、flex布局
1、Flex是Flexible Box 的缩写,意为弹性布局。用来为盒状模型提供最大的灵活性。
webkit内核的浏览器,必须要加上-webkit的前缀
.box{display: -webkit-flex;/* Safari */display: flex;}
webkit内核八大浏览器包括: chrome,safari,搜狗高速浏览器,傲游浏览器3,qq浏览器,360极速浏览器,世界之窗浏览器(极速版),阿里云浏览器
2、flex属性
flex-wrap: 定义如何换行{no-wrap(默认):不换行
wrap:换行,第一行在上方,
wrap-reverse: 换行,第一行在下方
}
justify-content: 项目在主轴上的对齐方式
{flex-start左对齐
flex-end 右对齐
center居中对齐
space-between两端对齐,项目之间间隔相等
space-around每个项目两侧的间隔相等,即左边距与右边距一样大,所以项目之间的间隔要比项目与大的外边框之间的距离大一倍。
21、在表单中不能使用元素,因为不同的浏览器会提交不同的按钮值。请使用 input 元素在 HTML 表单中创建按钮。
22、模块式引入swipper
问题:swipper.js swipper.css不能使用
原因:swipper.js swipper.js没有引入
解决办法:引入 node_modules下的swiper的css 和js
问题:引入 swipper轮播图无法正常滑动
原因:swipper版本不对 ,npm install swipper默认安装的版本是swipper 4.* beta版,应该安装swipper3.*版本的23、$(document).ready(function(){
function Func(){}
})
第一次写的时候丢了function,这段代码的意思是当页面加载完成后执行此函数里边的函数,所以function(){}不能丢
24、测试js,用return返回不执行下边的函数来观察是否有问题。
二、学习任务
1.zepto支持浏览器
ie10+
chrome 30+
firefox 24+
safiri 6+
ios 5+ safari
andriod 2.3+ browser
2.zepto 模块
* zepto —— default ——核心模块,必须引入
* event ——default —— 通过on() off()处理事件
* ajax —— default —— XMLHttpRequest 和JSONP实用功能
* form —— default —— 序列化提交web表单
* ie —— default —— 增加支持桌面的ie10和windows phone 8
* detect —— 提供$.os $.browser消息(
判断设备和浏览器,zepto.os判断查看设备,返回一个对象{ios:true ,iphoe:true,version:“6.1”}
zepto.browser查看浏览器,返回对象{version:'536.26,webkit:true}
)
* fx —— 提供 animate() 方法
* fx_methods —— 以动画形式的show,hide,toggle.fade*()方法,即可使用show() hide()方法支持动画
var div1 = $(“#fool”)
div1.animate({
“width”; “300px”,
“height”: “300px”
),
‘slow’,‘ease-in-out’,
function {
console.log(‘div animate callback’)
div2.hide(‘slow’,function() {})
div2.fadeOut(‘slow’,function)() {
console.log(‘div2 animate callback’)
})
},2000)
* assets 支持从DOM中移除Image元素并清理 ios内存
mobile safari严格的资源占用限制说起;mobile safari要比桌面版的浏览器的资源占用限制严格的多,当ios加载大文件时会停止加载,这时需要回收这些图片资源 ,因为不能保证垃圾回收机制是否有回收处理掉这些图片,所以我们采用移除image元素后清理内存,释放图片资源。
* data 对data()方法的完整支持,能够在内存中存储内存对象(读取或写入dom的data-* 属性,点像attr,但属性名要加上data-,zepto基本实现 ‘data()’方法只能存储字符串,当读取属性时,会有下列转换:
“true",“false”"null"转换为相应类型
数字值转换为实际数字类型
有效的JSON值会被解析
其他一切均作为字符串返回
)
* deferred 提供$.Deferred pormised API.依赖"callbakcs"模块
ajax请求或处理结果需要回调函数来执行完成后的操作时,使用deferred作为回调函数解决方案
$.Deferred()生成deferred对象
deferred.done()操作成功时的回调函数
deferred.fail()失败
deferred.promise() 无参时返回对象,运行状态无法改变,有参时作为在参数对象上部署deferred接口
deferre.resolve()改变 deferred对象运行状态为”已完成“触发done()方法
deferre.reject()改变 deferred对象运行状态为”已完成“触发fail()方法
$.when()为多个操作指定回调函数
deferred.then(), ex: w h e n ( when( when(.ajax(url).then(successFunc,failureFunc)
deferred.always
ajax版本区别
ajax1.5之前
$.ajax({url:test.html’,
success(){},
error(){}
})
ajax 1.5之后 ,返回deferred对象,可链式操作
$.ajax(“test.html”)
.done({function(){})
.fail(function(){})
允许添加多个回调函数
$.ajax(“test.html”)
.done({function(){})
.fail(function(){})
.done({function(){})
.fail(function(){})
允许为多个事件指定一个回调函数
* callbacks 为"deferred"模块提供 $.Callbacks.
* selector 支持 jquery css表达式功能($(‘div:first’)第一个div对象,el.is(‘:visible’)判断el是否为禁用的input或者button
* touch 在触摸设备上触发tap- swipe-相关事件。
基本touch事件:
touchstart 手指触发屏幕上的时候触发
touchmove 手指在屏幕移动的时候触发
touchend 手指离开屏幕的时候触发
touchcancel 系统取消touch事件的时候触发
* gesture 在触摸设备上触发 pinch(手指缩放)事件
* stack (栈)提供andSelf() &end ()链式调用方法
* ios3 String.prototype.trim 和 Array.prototype.reduce 方法 (如果他们不存在) ,以兼容 iOS 3.x.
3.zepto api
(1).$()
//创建元素
#$(“
hello
”)//创建带有属性的元素
$(“
”),{ text”:’hello’,id:"greeting’,css:{color:“darkbule”} })
(2).camelCase(string)驼峰命名
(3).$contains(parent,node) 检查父节点是否包含给定的dom节点,如果两者是相同的节点 ,返回false
(4).each(collection,function(index,item){…})遍历数组或心key-value值对方式遍历对象。回调函数返回false停止遍历。
*%d带符号十进制数
%s字符串
(5)$.fn在此对象上添加的方法所有的zepto对象都能调用
(6)$.grep 获取包含回调函数中返回true的数组项
$.grep([1,2,3], function(item) {
return item > 1
})
(7)inArray 返回数组中指定元素的索引值
(8)isNumeric如何该值为有限数值或一个字符串表示则返回true
(9)isPLainObject 测试一个对象是否通过 对象常量(“{}”) 或者 new Object
创建的,如果是,则返回true。
(10) var callback = $.noop引用一个空函数
(11)$.parseJson接受一个标准格式的json并返回解析后的js对象
(12)add 添加元素到当前匹配的元素集合中
$(‘li’).add(‘p’).css(‘background-color’,‘red’)
(13)append在匹配元素末尾插入内容 after在匹配元素后面插入内容
(14)append appendTo区别
$(‘ul’).append(‘
- new list item
- ’)
$(‘
- new list item
- ’).appendTo(‘ul’)
(15 ) filter对象,过滤对象集合
(16)forEach与each相似,都是遍历对象集合中的每个元素,但回调函数返回false时不停止遍历
(17)get 从当前对象集合中获取指定的元素或所有元素
ex: $(‘h2’).get()
$(‘h2’).get(0)
( 18 )hasClass 检查对象集合中是否有元素含有指定的class
( 19 )获取或设置元素的html内容,不用innerHTML
( 20 )is判断当前元素集合中第一个元素是否符合css选择器
( 21)offSet获取当前元素在document的位置
(22)offsetParent 找到第一个定位过的祖先元素
(23)parent 获取直接父元素
parents 获取所有祖先元素
(24)pluck 获取对象元素的属性值,返回值是数组
(25)prepend将内容插入到元素开头 prependTo(同appendTo)
(26)prev 获取元素的前一个兄弟节点
(27)prop读取或设置元素属性值,优先于attr
(28)reduce 遍历当前对象集合,memo是上次函数的返回值,迭代进行遍历
reduce(function(memo,item,index,array){}
(29)removeClass 移除class名可用空格分隔
(30)replaceWith 用给定内容替换所有匹配元素
(31)slice(start, [end]) 提取数组的子集
(32)text 方法不能用来获取或设置html,只能获取元素的文本内容
(33)toggleClass 如果匹配元素有此class名就删除它,如果没有就添加它
(34)unwrap 移除集合中每个元素的直接父节点,并把他们的子元素还保留在原来的公交车
(35)wrap 在每个匹配的元素外层包上一个html元素 (".button a’).wrap(‘’)
wrapAll 在所有匹配元素外层包一个单独结构 $(‘a.button’).wrapAll(‘