项目案例:
左右切换tab容器的动作,封装到一个对象中:
var slidingComp = {
startX : 0 ,
moveX : 0 ,
......
start : function(e) {
...
},
move : function(e) {
...
},
end : function(e) {
...
}
};
在end函数中,设置3秒的动画:
$(".mui-slider-group").css({
"transition":"all .3s 0s ease",
"-webkit-transition":"all .3s 0s ease",
"transform":"translate3d("+translate_x+"px,0px,0px)",
"-webkit-transform":"translate3d("+translate_x+"px,0px,0px)"
});
需要在执行完后,将控制切换的开关打开:
setTimeout(function(){
this.canslide = true;
},350);
问题:
setTimeout中this指向window,不是所在对象。
解决办法:
1.闭包原理:
var that = this;
setTimeout(function(){
that.canslide = true;
},350);
2.bind()函数:
setTimeout(function(){
thit.canslide = true;
}.bind(this),350);
3.箭头函数。
借鉴自:https://www.cnblogs.com/zsqos/p/6188835.html
浙公网安备 33010602011771号