首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

原生JS实现可折叠导航

实现效果 制作过程 首先页面分为两个div,一个导航一个内容。其中内容中需要一个按钮用来控制折叠。...cont左边距实现cont盖住nav视觉效果。...但在代码中,并不能真的用for循环来做,那样在移动过程中js就会一直卡在循环中而不能执行其他代码,所以这里可以使用setInterval函数来做,它会每隔一段时间调用一次某个方法,格式为setInterval...为了使移动更平滑,每次调用时只移动到目标位置之间距离10%.实现折叠函数代码如下: /*关闭/打开导航*/ function closeNav(nav,body,navTargetWidth){...当点击按钮后,判断当前导航栏是收缩还是展开状态,如果是收缩状态就将导航宽和内容块左外边距逐渐增长为展开时值,反之同理。而判断是通过一个变量来标识导航栏状态实现

7.2K20

js实现replaceAll方法

js本来有replace方法,请看w3school说明: replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配子串。...注意重点: 如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配子串。否则,它只替换第一个匹配子串。...---- js中是没有replaceAll方法,那么如何实现替换所有匹配字符串呢,即在js实现replaceAll方法: 1....使用具有全局标志g正则表达式 var str = "dogdogdog"; var str2 = str.replace(/dog/g,"cat"); console.log(str2); 实现替换全部匹配字符串...使用先split,再join方法 评论区@默默之分享这个方法太赞了,拉到正文里以免有人不看评论,感谢@默默之分享。

1.8K30

JS实现继承几种方法总结

文章目录 一、基本代码 二、实现继承方法: 1.原型链继承 2.构造继承: 3.实例继承 4.拷贝继承: 5.组合继承: 6.寄生组合继承: 7.class – extends – – ES6 一...); } ---- 二、实现继承方法: 1.原型链继承 //核心:将父类实例作为子类原型 function Dog() { } Dog.prototype = new Animal()...,也是父类实例 父类新增原型方法/原型属性,子类都能访问到 简单 缺点 要想为子类新增属性和方法,必须要在new Animal()这样语句之后执行,不能放到构造器中 无法实现继承多个 来自原型对象所有属性被所有实例共享...(call多个父类对象) 缺点: 实例并不是父类实例,只是子类实例 只能继承父类实例属性和方法,不能继承原型属性/方法 无法实现函数复用,每个子类都有父类实例函数副本,影响性能 ---- 3.实例继承...) 无法获取父类不可枚举方法(for in不能访问到) ---- 5.组合继承: //核心:通过调用父类构造,继承父类属性并保留传参优点,然后通过将父类实例作为子类原型,实现函数复用 function

1.2K40

JS深拷贝几种实现方法

1、使用递归(循环)方式实现深拷贝 //使用递归方式实现数组、对象深拷贝 function deepClone1(obj) { //判断拷贝要进行深拷贝是数组还是对象,是数组的话进行数组拷贝...,对象的话进行对象拷贝 //进行深拷贝不能为空,并且是对象或者是 if (obj && typeof obj === "object") { var objClone = Array.isArray...objClone[key] = obj[key]; } } } return objClone; } return obj; } 2、lodash函数库实现深拷贝...lodash很热门函数库,提供了 lodash.cloneDeep()实现深拷贝 3、通过 JSON 对象实现深拷贝 //通过js内置对象JSON来进行数组对象深拷贝 function deepClone2...,此方法为深拷贝,但是对象中有对象时候,此方法,在二级属性以后就是浅拷贝。

1.5K20

JS面试题-JS实现继承方法(共6种)

方法五(推荐使用): 组合继承优化1(寄生组合式继承) 这种方式高效率体现它只调用了一次 Parent 构造函数,并且因此避免了在 Child.prototype 上面创建不必要、多余属性。...等价于 var F = function () {}; F.prototype = Parent.prototype; Child.prototype = new F(); Object.create底层实现...this.salary = salary } // 父类方法重写 showName () { console.log('调用子类构造方法')...// super是指向父类prototype对象,即Person.prototype, // 父类方法是定义在父类原型中,而属性是定义在父类对象上,所以需要把属性定义在原型上。...不过这里加了一个Object.setPrototypeOf(subClass, superClass),是用来继承父类静态方法。这也是原来继承方式疏忽掉地方。

67940

Axure |导航实现

使用Axure RP 9 制作导航条功能 疫情期间,学学Axure,为以后能将常规数据功能实现产品化准备。 参照物 ?...在拖动鼠标上下滑动时,右侧导航栏目是没有变化,此外点击导航栏中按钮,也是不会改变导航位置。现在来模仿下吧 Axure中操作 新建page页面 ?...制作页面和导航页 简单拖拽矩形框,制作出基本模型。 ? 设置交互名称 点击主题1,主题2,主题3,主题4,分别设置交互名称 ? 左侧导航条与内容绑定 ?...选择要跳转位置,在设置动作中,动画为线性。 ? 依次操作问题二,问题三,问题四,就将导航条与内容绑定了。 将导航条转为动态面板 框选住导航栏,鼠标右键,选择“转换为动态面板” ?...就简单实现导航条元件与组件绑定。待以后有更为详细,再来分享。

2K20
领券