1,js判断进入可视区,参考(亲测不行):https://www.cnblogs.com/Marydon20170307/p/8830069.html

重点学习的话,可参考:

  js计算元素距离顶部的高度及元素是否在可视区判断:https://www.cnblogs.com/damonFeng/archive/2018/01/30/8378123.html

https://www.jb51.net/article/103459.htm

$(window).scroll(function() {
// 获取的是浏览器可见区域高度(网页的可视区域的高度)(不滚动的情况下)
var documentClientHeight = document.documentElement.clientHeight || window.innerHeight
var e = document.getElementById('header-nav');
// 元素顶端到可见区域(网页)顶端的距离
var htmlElementClientTop = document.getElementById('header-nav').getBoundingClientRect().top;
// 网页指定元素进入可视区域
if (documentClientHeight >= htmlElementClientTop) {
// TODO 执行你要做的操作
$("#header-nav").addClass("navbar-fixed-top");
}
});
/**
* 监听网页滚动事件
*/
window.onscroll = function(){
// 获取的是浏览器可见区域高度(网页的可视区域的高度)(不滚动的情况下)
var documentClientHeight = document.documentElement.clientHeight || window.innerHeight
var e = document.getElementById('header-nav');
// 元素顶端到可见区域(网页)顶端的距离
var htmlElementClientTop = document.getElementById('header-nav').getBoundingClientRect().top;
// 网页指定元素进入可视区域
if (documentClientHeight >= htmlElementClientTop) {
// TODO 执行你要做的操作
document.getElementById('header-nav').classList.add('navbar-fixed-top');
console.log([document.getElementById('header-nav')]);
}
}

  

getBoundingClientRect深度学习:

https://www.softwhy.com/article-10033-1.html

  https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect

2,监听页面滚动事件,参考:https://www.cnblogs.com/smalldy/p/10875654.html

3,getElementById与$()的区别,参考:https://blog.csdn.net/qq_36378302/article/details/81974246

getElememtById是获取当前对象,jquery()是获取一个jQuery的对象数组,给getElementById获取的对象加上数组后,这俩个还是不一样,一个是js的数组对象作为容器,也就是用数组做包装,
$()是封装了一个jQuery的对象数组作为容器,封装了很多方法,相当于与jQuery对象做包装,共同点是都是内部包装的内容都是一样的。

4,学习滚动插件iScroll

5,原生实现jquery的prepend,append,before,after

  参考:https://www.mmxiaowu.com/article/58481d53d4352863efb55443

同时要掌握appendChild函数和createElement和createTextNode函数

6,fadeIn和fadeOut的使用

$(document).on("mouseenter","#list-container #list-according .panel", function(){
// ohters panel-body fadeOut
var panels = $("#list-container .panel");
var panelSort = $(this).attr("sort");
panels.each(function(i,ele){
if(panelSort && panelSort != i){
$(ele).find(".panel-body").fadeOut(2000);
}
})
// next panel-body fadeIn
$(this).children().fadeIn(1000);
});

对比下面的注册两个事件mouseenter和mouseleave事件

$(document).on("mouseenter","#list-container #list-according .panel", function(){
$(this).find(".panel-body").fadeIn(1000);
});
$(document).on("mouseleave","#list-container #list-according .panel", function(){
$(this).find(".panel-body").fadeOut(2000);
});

7,递归遍历对象

function OS(obj){
for(var i in obj){
console.log("obj[i]", i);
if(typeof obj[i] === "object"){
OS(obj[i]);
}else{
if(typeof obj[i] === "function"){
console.log("function",obj[i]());
}else{
console.log(obj[i]);
}
}
}
}
(function(document){
var root = {
id : "001",
a : {
id : "001-001",
a1 : "bac",
a2 : function(){
return "a2";
}
},
b : {
id : "002-001",
b1 : "woer",
b2 : function(){
return "b2";
}
}
} function SSO (root,objName){
var obj = root;
//debugger;
var re = null ;
for(var i in obj){
if(i == objName){
if(typeof obj[i] === "object"){
return re = obj[i];
}else if(typeof obj[i] === "function"){
return re = obj[i]();
}else{
return re = obj[i];
}
}else{
if(typeof obj[i] === "object"){
re = SSO(obj[i],objName);
if(re){
return re;
}
}
}
}
return re;
}
console.log(SSO(root,"b2")); })();

8,最基础的页面js模板(单全局变量+对象搜索)

<script type="text/javascript">
var TabUserManager = TUM = {
namespace: function(ns){
var parts = ns.split("."),
object = this,
i,len;
for(i=0, len=parts.length; i<len; i++){
if(!object[parts[i]]){
object[parts[i]] = {};
}
object = object[parts[i]];
}
return object;
}, SSO : function(root,objName){
var obj = root;
//debugger;
var re = null ;
for(var i in obj){
if(i == objName){
if(typeof obj[i] === "object"){
return re = obj[i];
}else if(typeof obj[i] === "function"){
return re = obj[i]();
}else{
return re = obj[i];
}
}else{
if(typeof obj[i] === "object"){
re = TUM.SSO(obj[i],objName);
if(re){
return re;
}
}
}
}
return re;
}, uEditPanel : {
I : function(){
return $("#uEditPanel");
},
}, uListPanel : { // TRM.uListPanel.
I : function(){
return $("#uListPanel");
},
uToolbar : {
uCheckBtn : function(){
console.log("uCheckBtn");
},
uAddBtn : function(){
console.log("uAddBtn");
},
uEditBtn : function(){
console.log("uEditBtn");
},
uRemoveBtn : function(){
console.log("uRemoveBtn");
},
uSearchBtn : function(){
console.log("uSearchBtn");
} }
}
};
</script>

常用js代码积累的更多相关文章

  1. 常用JS代码片段

    1.隐藏部分数字,如手机号码,身份证号码 1 2 3 function (str,start,length,mask_char){ return str.replace(str.substr(star ...

  2. 常用js代码整理、收集

    个人整理了一下个人常用到的一些js代码,以方便学习以及日后使用,或许有一些是个人之前从网上摘下来的,但是不记得是具体从哪里来的了,如果你看到有一段代码跟你的文章很相似甚至一样,请不要气愤,请告诉我,我 ...

  3. 站长常用的200个js代码 站长常用js代码大全 站长常用js代码集合

    站长常用的200个js代码 1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect: ...

  4. 自动化测试-20.selenium常用JS代码执行

    前言: 在工作中有些控件定位不到,需要操作,使用JS代码去修改或者操作达到selenium不能做的操作. 1.Web界面的滑动 1 #coding:utf-8 2 from selenium impo ...

  5. 网页常用Js代码

    1.后退前进 <input type="button" value="后退" onClick="history.go(-1)"> ...

  6. 100个常用js代码(转载)

    作者:小萧ovo链接:https://zhuanlan.zhihu.com/p/23076321来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. JavaScript定点 ...

  7. 常用js代码学习

    1.用JS实现的radio图片选择按钮效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  8. !!!常用JS代码块 (jquery)

    jquery代码块 <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> ...

  9. 常用js代码

    common-function-lib.js /*产生随机颜色*/ function randomColor() { var rand = Math.floor(Math.random() * 0xF ...

随机推荐

  1. VGG16迁移学习实现

    VGG16迁移学习实现 本文讨论迁移学习,它是一个非常强大的深度学习技术,在不同领域有很多应用.动机很简单,可以打个比方来解释.假设想学习一种新的语言,比如西班牙语,那么从已经掌握的另一种语言(比如英 ...

  2. AI芯片体系结构目标图形处理

    AI芯片体系结构目标图形处理 AI chip architecture targets graph processing 可编程图形流处理器(GSP)能够执行"直接图形处理.片上任务图管理和 ...

  3. 开发平台支持Arm Cortex-M的微控制器上人工智能训练

    开发平台支持Arm Cortex-M的微控制器上人工智能训练 Development platform enables AI training on Arm Cortex-M-based microc ...

  4. 692. 前K个高频单词

    2021-05-20 LeetCode每日一题 链接:https://leetcode-cn.com/problems/top-k-frequent-words/ 标签:堆.字典序.哈希表 题目 给一 ...

  5. C# 设置Word文本框中的文字旋转方向

    在Word中可插入文本框,默认情况下插入的文本框中的文字方向为横向排列,对于一些特殊文档的设计要求,需要改变文字方向,如本次测试中的文档排版为考生试卷类型,考生信息栏的内容为下图中的这种, 本文将以C ...

  6. 并发王者课-铂金6:青出于蓝-Condition如何把等待与通知玩出新花样

    欢迎来到<[并发王者课](https://juejin.cn/post/6967277362455150628)>,本文是该系列文章中的**第19篇**. 在上一篇文章中,我们介绍了阻塞队 ...

  7. unity的安装,配置,及问题

    下载unity 在官网下载unity unity有三个版本,个人版免费,pro和专业版收费. 个人版 在导出exe文件时不能去掉水印片头.其他版本可以. 地址[https://store.unity. ...

  8. 试着给VuePress添加全局禁止爬取支持,基于vuepress-plugin-robots

    背景 有时候,我们有些内部网站希望不被外部抓取,那么我们可以借助vuepress-plugin-robots来生成robots.txt文件,来告诉爬虫不要抓取页面. 安装 npm install vu ...

  9. Linux-ansible批量管理

    1.ansible批量管理服务概念 (1)是基于Python语言开发的自动化软件工具 (2)是基于SSH远程管理服务实现远程主机批量管理 2.ansible批量管理服务意义 (1)提高工作的效率 (2 ...

  10. 基于C#的socket编程的TCP同步实现

    该博客源著地址https://www.cnblogs.com/sunev/archive/2012/08/05/2604189.html 一.摘要 总结一下基于C#的TCP传输协议的涉及到的常用方法及 ...