本题需要在已提供的基础项目中使用 JS/jQuery 等知识完善代码,最终实现该功能。...判分标准 实现点击侧边按钮快速定位内容功能,得 2 分。 实现侧边按钮文字颜色随页面内容滚动而变化功能,得 3 分。...0,并使用 box-sizing: border-box 使元素的宽度和高度包含内边距和边框。...,添加 active-color 类,同时移除其他链接的 active-color 类,实现链接文字颜色的切换。...获取当前页面的滚动高度,根据滚动高度所在的范围确定对应的索引。 根据索引找到对应的链接,添加 active-color 类,同时移除其他链接的 active-color 类,实现链接文字颜色的切换。
v0.0.1 (2019-05-19) 试验 自己充当自己的小白鼠,Bug 多多。 v0.1.0 (2020-03-06) 优化 移除 jQuery 依赖 更快、更高、更强!???...fancybox 的确用的不多,但又依赖于 jQuery。 决定使用 medium-zoom 替代,并全部使用 Vanilla JavaScript,以移除 jQuery。...使用 CSS3 will-change 提高页面滚动、动画等渲染性能 继续做减法,移除默认不开启的 rymd(群星移动效果),挺吃性能,而且也没怎么优化页面展示效果。...随后为了移除 jQuery 依赖,使用 Vanilla JavaScript 进行了重写,并混合 CSS 选择器来实现,(应该)提升了性能。...(再加上所谓的节流函数) 关于滚动优化还有个 移动 Web 滚动性能优化: Passive event listeners 可以了解一下 看了苏卡卡大佬的 使 Disqus 不再拖累性能和页面加载
jQuery 和 jQuery UI 是必须的, jquery.mousewheel.min.js 是用来提供滚动支持的,jquery.mCustomScrollbar.js 则是插件的主文件。...先来说说上面用到的这些文件的用途和简单介绍: jQuery:这个插件的必备库,你懂。 jQuery UI:扩展 jQuery 库并且为我们的滚动条提供了简单的动画和拖动功能。...鼠标滚动设置成像素值 填写false取消鼠标滚动功能 mouseWheelPixels:Integer:鼠标滚动中滚动的像素数目 值为以像素为单位的数值 autoDraggerLength:Boolean...scrollTo",200,{ callback:true }); disable 用法:$(selector).mCustomScrollbar("disable"); 调用 disable 方法去使滚动条不可用...("destroy"); 调用 destroy 方法可以移除某个对象的自定义滚动条并且恢复默认样式 可以看一些使用 destroy 的例子 mCustomScrollbar的原理 通过潜行者m对这些插件的使用
$("p").attr("title","你最喜欢的水果");该示例设置p元素的title属性值为"你最喜欢的水果"; 如果一次设置多个属性值可以使用“名/值”对形式,例: $...该示例一次设置两个属性值。 removeAttr()方法用于删除特定的属性,方法是在参数中指定属性名。...例: $("p").removeAttr("name");该方法就是移除p元素的name属性。 ...移除样式removeClass()方法,使用该方法移除目标元素的指定样式,方法如下:$(element).removeClass();例: $("p").removeClass("ul")...scrollTop()和scrollLeft()方法用于获取元素的滚动条距顶端的距离和距左侧的距离。
例子 // 避免在滚动时过分的更新定位 jQuery(window).on('scroll', _.throttle(updatePosition, 100)); // 点击后就调用 `renewToken...电梯延迟了改变楼层的功能,但是优化了资源。 在顶部按钮上点击或移动鼠标试一下: 你可以看到连续快速的事件是如何被一个 debounce 事件替代的。...基于 AJAX 请求的自动完成功能,通过 keypress 触发 为什么用户还在输入的时候,每隔50ms就向服务器发送一次 AJAX 请求?...涉及到 AJAX 请求,添加/移除 class (可以触发 CSS 动画),我会选择 _.debounce 或者 _.throttle ,可以设置更低的执行频率(例子中的200ms 换成16ms)。...总之: debounce:把触发非常频繁的事件(比如按键)合并成一次执行。 throttle:保证每 X 毫秒恒定的执行次数,比如每200ms检查下滚动位置,并触发 CSS 动画。
节流概念(Throttle) 按照设定的时间固定执行一次函数,比如200ms一次。注意:固定就是你在mousemove过程中,执行这个节流函数,它一定是200ms(你设定的定时器延迟时间)内执行一次。...func 会传入最后一次传入的参数给这个函数。 随后调用的函数返回是最后一次 func 调用的结果。...(boolean) 指定调用在节流开始前 [options.trailing=true] (boolean) 指定调用在节流结束后 返回值 (Function) 返回节流的函数 示例 // 避免在滚动时过分的更新定位...(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法。...) 指定调用在延迟结束后 返回值 (Function) 返回具有防抖动功能的函数 示例 // 避免窗口在变动时出现昂贵的计算开销。
1.1. jQuery 事件注册 jQuery 为我们提供了方便的事件注册机制,使开发人员易于操作,优缺点如下: 优点: 操作简单,且不用担心事件覆盖等问题。...事件处理 off() 解绑事件 当某个事件上面的逻辑,在特定需求下不需要的时候,可以把该事件上的逻辑移除,这个过程我们称为事件解绑。...jQuery 为我们提供 了多种事件解绑方法:die()、undelegate()、off()等,甚至还有只触发一次的事件绑定方法one(),在这里我们重点讲解一下off(): off语法 演示代码...jQuery 多库共存 实际开发中,很多项目连续开发十多年,jQuery版本不断更新,最初的 jQuery 版本无法满足需求,这时就需要保证在旧有版本正常运行的情况下,新的功能使用新的jQuery版本实现...jQuery 插件 jQuery 功能比较有限,想要更复杂的特效效果,可以借助于 jQuery 插件完成。
(详情参考源代码) 1.3.5 案例:购物车案例模块-选中商品添加背景 1.核心思路:选中的商品添加背景,不选中移除背景即可 2.全选按钮点击:如果全选是选中的,则所有的商品添加背景,否则移除背景...案例: 品优购电梯导航(上) 1.当我们滚动到 今日推荐 模块,就让电梯导航显示出来 2.点击电梯导航页面可以滚动到相应内容区域 3.核心算法:因为电梯导航模块和内容区模块一一对应的 4.当我们点击电梯导航某个小模块...案例:品优购电梯导航(下) 1.当我们点击电梯导航某个小li, 当前小li 添加current类,兄弟移除类名 2.当我们页面滚动到内容区域某个模块, 左侧电梯导航,相对应的小li模块,也会添加current...类, 兄弟移除current类。...3.触发的事件是页面滚动,因此这个功能要写到页面滚动事件里面。 4.需要用到each,遍历内容区域大模块。
核心理念是write less,do more(写得更少,做得更多) 当前流行的 JavaScript 库有: jQuery 使用非常多了 EXTJS 功能比jQuery更多,但ext2.0收费 Prototype...如果没有就添加,如果有就移除。 3.html代码/文本/值 操作的是标签的value属性或者标签体 val() 获得 value属性的值。...格式:{"top": xx , "left" : yy} offset(坐标) 设置位置 position() 获得相对父元素偏移 scrollTop([val]) 获得 或 设置 垂直滚动条的位置 scrollLeft...([val]) 获得 或 设置 水平滚动条的位置 6.尺寸 height([val]) 获得 或 设置 高度 width([val]) 获得 或 设置 宽度 五.文档处理 内部插入,外部插入,复制,替换...但此对象将绑定事件,绑定数据都一并移除。 detach()将指定对象移除,返回值为移除对象。但此对象保留 绑定事件,绑定数据 等。
每个元素只能触发一次该处理器。...scrollLeft() 设置或返回匹配元素相对滚动条顶部的偏移。 scrollTop() 设置或返回匹配元素相对滚动条左侧的偏移。....end() 结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。 .eq() 将匹配元素集合缩减为位于指定索引的新元素。...jQuery.data() 存储与指定元素相关的任意数据。 .removeData() 移除之前存放的数据。...jQuery.removeData() 移除之前存放的数据。
$.data(elem, key, value); 上下文和查找 抓取元素时,推荐使用find而不是用上下文 例如 $('.a', $('.b')); $('.b').find('.a'); 移除...当要对某个元素内容做一些复杂的修改时,先移除元素,处理好了,再追加回来 例如 var table = $('#some-table'); var parent = table.parent();...对于被多次使用的元素,用变量来缓存它,避免多次查询 window滚动事件 用户在快速滚动滚轮的时候,会触发很多次windows滚动事件,会导致滚动事件的处理函数的堆积,而造成交互的滞后。...具体的选择器放右边,不具体的写左边 //不推荐 $('div.data .brad') // 推荐 $('.data td.brad') jQuery的选择器是Sizzle是下向上来找匹配的元素的。...发布订阅 使用.on和.off 使用jQuery 1.7的$.Callbacks()特性 使用jQuery UI的$.Observable 第三方组件 推荐朴灵的eventproxy
事件处理 off() 解绑事件 当某个事件上面的逻辑,在特定需求下不需要的时候,可以把该事件上的逻辑移除,这个过程我们称为事件解绑。...jQuery 为我们提供 了多种事件解绑方法:die() / undelegate() / off() 等,甚至还有只触发一次的事件绑定方法 one(),在这里我们重点讲解一下 off() ; 语法...多库共存 实际开发中,很多项目连续开发十多年,jQuery版本不断更新,最初的 jQuery 版本无法满足需求,这时就需要保证在旧有版本正常运行的情况下,新的功能使用新的jQuery版本实现,这种情况被称为...console.log(suibian("span")); }) 1.6. jQuery 插件 jQuery 功能比较有限,想要更复杂的特效效果,可以借助于 jQuery 插件完成...全屏滚动插件介绍比较详细的网站为: http://www.dowebok.com/demo/2014/77/ 代码演示 全屏滚动因为有多重形式,所以不一样的风格html和css也不一样,但是 js
本文讲解了使用iScroll5的使用方法,解决了固定高度的容器内滚动内容。...~ 基本的结构要求 使用iScroll这个脚本库时,DOM树的结构要足够简单,移除不必要的标签,尽量避免过多的标签嵌套使用。...如果希望ul中的内容发生滚动,需要在外层添加一层,同时将iScroll的功能添加到最外层上。...iScroll功能配置 —— 通过第二个参数进行滚动功能的相关设置 var myScroll = new IScroll('#wrapper', { mouseWheel: true...事件的绑定:仿造jquery的on绑定事件的方式 element.addEventListener('tap', doSomething, false); // 原生 $('#element').on(
,例如: $("ad").removeAttr("src"); 6.1.1 prop和removeProp prop和removeProp是jQuery1.6版本新增的函数,prop除了具备attr函数的功能外...scorllLeft和scrollTop函数用来获取滚动条的偏移位置。下面我们使用这三个函数实现一个跟随滚动条滚动的图片,参考代码如下所示。...的具体位置,并通过scrollTop和scrollLeft函数获得了滚动条的偏移位置,通过简单计算即可实现跟随滚动条滚动的广告图片 如果需要通过offset函数设置元素的具体位置,可以参考上述代码中的最后一行...目前在IE中会返回false,它会自动插入缺失的tbody。 下面通过一个示例来演示support的功能,参考代码如下所示。...通过prop函数设置的属性必须通过removeProp函数移除 C.
Chromatable JQuery Plugin - 固定表头,可滚动内容区,内容区滚动的时候表头位置保持不变。 ? ?...Grider - 一个简单的 jQuery 插件,可以对 HTML 表格进行计算,平均,累加,最大值,最小值等。 ? 表格功能增强 ?...jExpand - 一个非常轻量的 jQuery 插件,可以展开/关闭表格单元格,使表格可以容纳更多内容。 ? ?...PicNet Table Filter - 实时的,Google 式筛选功能 ? ? jQuery tinysort - http://www.21kaiyun.com在线紫微斗数星座排盘排序 ?...Quicksearch - 简单的搜索功能 jQuery 现场编辑 ?
1.x:兼容IE678,使用最为广泛的,官方只做BUG维护,功能不再新增。...六、操作标签 样式操作 样式类 addClass();// 添加指定的CSS类名。 removeClass();// 移除指定的CSS类名。...位置: offset()// 获取匹配元素在当前窗口的相对偏移或设置元素位置 position()// 获取匹配元素相对父元素的偏移 scrollTop()// 获取匹配元素相对滚动条顶部的偏移 scrollLeft...()// 获取匹配元素相对滚动条左侧的偏移 .offset()方法允许我们检索一个元素相对于文档(document)的当前位置。...用于checkbox和radio prop() // 获取属性 removeProp() // 移除属性 注意: 在1.x及2.x版本的jQuery中使用attr对checkbox进行复制操作时会出bug
的插件,发现原理很简单, (一个div中加入html的雪花----设置初始的css----执行从上到下的飘落动画同时雪花在过程中透明----动画完成移除该div),克隆多个div执行前边的过程,看着是不是很简单...我当时也这么认为,于是我就自己仿着做了一个(当时自己认为),其实就是照个抄了一遍,加了一点自己需要的功能(例如:随机雪花的颜色),然后我就认为这是自己的,在jquery的插件网站去发布,结果被拒绝了,我当时很失望但是没有找自己的原因...,就是先将所有楼层查找出来,然后将其需要的各个参数放入一个对象,滚动的监听的时候对该数组循环比对的思路。...思路对一个插件的制作很重要,就像我开始第一次制作这个插件的时候,就是将所有楼层的参数放到一个数组,然后对各个区间判断,这样就会使问题复杂话,同时还不好控制。...程序员的思路很重要,最开始可以很死板的按照步骤来,但是当我们慢慢的进化,就需要不断的对代码优化,每次优化都是一次学习,慢慢的不知不觉就会发现原来你会的雪莱越多。
jQuery 1.3 新增该函数,从jQuery 1.7开始被标记为已过时,在jQuery 1.9中被移除,请使用on()函数来替代。请使用on()函数来替代。 5,die 同上。...从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。...click事件: // 只有第一次点击时,执行该事件处理函数 // 执行后one()会立即移除绑定的事件处理函数 $("#btn").one("click", function(){ alert...= { id: 5, name: "张三" , hidden : 20}; // 只有第一次点击时,执行该事件处理函数 // 执行后one()会立即移除绑定的事件处理函数 $("#btn").one("...该事件一般仅适用于window对象或其他可滚动元素(一般会出现滚动条)。
JQuery中的DOM对象操作 1.查找节点 var li = (“ul li:eq(1)”); //查找元素 $li.attr(“title”); //查找元素的属性值 2,创建和插入节点: var...“重点”); //在ul前面插入b (“重点”).insertBefore(ul); 3,删除节点: var li = (“ul li”).remove(“li[title=hello]”); //移除...$ul.removeClass(); //移除所有class $ul.toogleClass(“another”); //在ul上切换another这个class,ul原有的class不受影响。...$(“select01”).val([“text1”, “text2”]); //使下拉框的第二项,第三项被选中。...$ul.scrollTop(300); //ul的滚动条滚动到距顶端300的位置。 $ul.scrollLeft(300); //ul的滚动条滚动到距左侧300的位置。