首页 前端知识 模仿jQuery的slideDown、slideUp上下滑动,舒服,层层深入

模仿jQuery的slideDown、slideUp上下滑动,舒服,层层深入

2024-03-29 15:03:36 前端知识 前端哥 643 645 我要收藏

continue;

}

var value,opacityFlag=(p == “opacity”)?true:false;

var cur = 0;

if(cache[p+“_cur”]){//从缓存中取

cur = cache[p+“_cur”];

value = cache[p+“_value”];

}else{

value = prop[p];

if(opacityFlag) {

//如果本来是隐藏的则cur默认就是0

if(getStyle(obj, ‘display’)!==‘none’){

cur = Math.round(parseFloat(getStyle(obj, p)) * 100);

}

} else {

cur = parseInt(getStyle(obj, p));

//处理100px的格式

(typeof value===‘string’) && (value=value.replace(/px$/,“”));

}

primary_cur=cur;

cache[p+“_value”] = value;

}

var incre ;

if(cache[p+‘_increment’]){//如果缓存中有则从中取

incre = cache[p+‘_increment’];

}else{

if(opacityFlag){

incre = (value*100-cur)/limit;//计算每次变化值

}else{

incre = (value-cur)/limit;//计算每次变化值

}

cache[p+‘_increment’]= incre;

}

//缓存起来,这样就不用每次都去dom中获取了。

cache[p+“_cur”] = cur + incre;

if (opacityFlag) {

//obj.style.filter = “alpha(opacity : ‘+(cur + incre)+’ )”;

obj.style.opacity = (cur + incre)/100 ;

}else {

obj.style[p] = cur + incre + “px”;

}

}

//如果达到了最大执行次数,要清除定时器,并执行回调函数

if(n==limit){

if(display===‘none’){

obj.style[‘display’] = ‘none’;

}

//清除定时器

clearInterval(obj.timer);

obj.timer=undefined;

func && func();

}

},time)

}

var div = document.getElementById(“div”);

/*

obj:dom对象

speed:执行速度 fast slow 3000等

func:回调函数

*/

function slideUp(obj,speed,func){

if(obj.style.display===‘none’){

return ;

}

//获取本来的宽带和高度

var height = getStyle(obj, ‘height’);

var new_func = function(){

//设置回原来的高度和宽度

obj.style[‘height’] = height ;

func();

}

animate(obj,{display:‘none’,height:0},speed,new_func);

}

function slideDown(obj,speed,func){

if(obj.style.display!==‘none’){

return ;

}

//获取本来的宽带和高度

var height = getStyle(obj, ‘height’);

//设置从0开始

obj.style[‘height’] = 0 ;

animate(obj,{display:‘block’,height:height},speed,func);

}

function slideToggle(obj,speed,func){

if(obj.style.display===‘none’){

slideDown(obj,speed,func);

}else{

slideUp(obj,speed,func);

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

结尾

正式学习前端大概 3 年多了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。

以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。

以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端学习书籍导图-1

转载请注明出处或者链接地址:https://www.qianduange.cn//article/4281.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!