💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
#### 1. 基础点: * * * * * ~~~ //获取元素的宽高 $('.carousel').width(); $('.carousel').height(); //相对窗口 $('.carousel').offset().top; $('.carousel').offset().left; //相对设置了定位的父级元素 $('.carousel').position().top; $('.carousel').position().left; //设置背景图片的方式 background-size: cover;//图片覆盖整个div background-position: center;//图片定位居中于div中间 background-size: contain; //禁止右键 $(document).bind("contextmenu",function(e){ return false; }) //禁止F12 document.onkeydown =document.onkeyup = document.onkeypress=function(){ if(window.event.keyCode == 123) { window.event.returnValue=false; return(false); } } //获取指定元素距离document顶部的距离,包括卷起来的部分,node为原生获取的指定元素 function getPositionTop(node) { var top = node.offsetTop; var parent = node.offsetParent; while(parent != null) { top += parent.offsetTop; parent = parent.offsetParent; } return top; } //关于iframe //获取当前页面中iframe标签中的子页面的window对象 var iframeWindow = document.getElementById('iframe').contentWindow; //在子页面中设置iframe标签父页面的url top.location.href = 'http://www.baidu.com'; //在iframe子页面中获取父页面的url,实现思路:在父页面中动态将父页面的url以参数的形式传入iframe标签的src属性值中,在子页面中获取url地址的参数即可 //关于swiper框架问题 //① 当要在swiper-slide中添加弹幕时会出现重叠,此时不能设置透明度为1,应为0.999则可。 ~~~ 2. 判断设备类型: * * * * * ~~~ function isPC(){ //使用用户代理信息判断 var info = navigator.userAgent.toLocaleLowerCase(); if(info.indexOf('mobile') != -1){ alert('这是移动设备!'); }else{ return true; alert('这是PC设备!'); } console.log(info); } ~~~ 3. 引入js文件的方法: * * * * * ~~~ //jQuery function importJs(src) { var hm = document.createElement("script"); hm.src = src; var h = document.getElementsByTagName('head')[0]; h.appendChild(hm); } //原生JS function importJs(src) { var hm = document.createElement("script"); hm.src = src; var s = document.getElementsByTagName("body")[0]; s.parentNode.insertBefore(hm, s); }; //示例,引入jquery importJs('https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js'); //引入文件 function loadjscssfile(filename,filetype){ if(filetype == "js"){ var fileref = document.createElement('script'); fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src",filename); }else if(filetype == "css"){ var fileref = document.createElement('link'); fileref.setAttribute("rel","stylesheet"); fileref.setAttribute("type","text/css"); fileref.setAttribute("href",filename); } if(typeof fileref != "undefined"){ document.getElementsByTagName("head")[0].appendChild(fileref); } } ~~~ 4. 适配,兼容所有屏幕大小的设备: * * * * * ~~~ function rem() { //说明:此方法适用所有页面,使用方法是页面宽度即为设计稿宽度 //计算时用设计稿的具体大小除以t即可得到对应的rem单位值,o值为设计稿实际宽度 //假如设计稿只占屏幕80%且剧中的话,计算出来的rem单位值再乘以0.8即可 //t表示一个rem所代表的像素数(建议不要修改,过小拖动时会出现卡顿现象) var t = 1000; //表示设计稿的实际宽度 var o = 1903; //n表示页面(浏览器)宽度 var n = document.documentElement.clientWidth || window.innerWidth; //h表示html页面根的字体大小 var h = Math.floor(n / o * t); document.querySelector("html").style.fontSize = h + "px"; }; rem(); window.onresize = function() { rem(); } ~~~ 5. 截图功能: * * * * * ~~~ //将DIV转换成图片,需引入[html2canvas.min.js] https://www.bootcdn.cn/html2canvas/ //#canv表示要转换的divID名 //转换方法:canvas.toDataURL() function print() { html2canvas($("#canv"), { onrendered: function(canvas) { $('.share_img>img').attr('src', canvas.toDataURL()); $('.share_product').hide(); } }); } ~~~ 6. 表格上下移动: * * * * * ~~~ function check($td, oper) { //$td当前点的所在td,oper表示方向:MoveUp:上移 var data_tr = $td.parent(); //获取到触发的tr if(oper == "MoveUp") { //向上移动 if($(data_tr).prev().html() == null) { //获取tr的前一个相同等级的元素是否为空 alert("已经是最顶部了!"); return; } else { $(data_tr).insertBefore($(data_tr).prev()); //将本身插入到目标tr的前面 } } else { if($(data_tr).next().html() == null) { alert("已经是最低部了!"); return; } else { $(data_tr).insertAfter($(data_tr).next()); //将本身插入到目标tr的后面 } } } ~~~ 7. 返回顶部功能: * * * * * ~~~ function scroll(scrollTo, time, obj) { //scrollTo:表示要返回到距离顶部的位置;time:表示整个过程的总时间;obj:表示原生获取的滚动对象 var scrollFrom = $(obj).scrollTop(); i = 0; runEvery = 5; scrollTo = parseInt(scrollTo); time /= runEvery; var interval = setInterval(function() { i++; var t = (scrollTo - scrollFrom) / time * i + scrollFrom; $(obj).scrollTop(t); if(i >= time) { clearInterval(interval); } }, runEvery) } ~~~ 8. 页面滚动到指定位置(动态瞄点)功能: * * * * * ~~~ 方法一:获取指定目标距离顶部距离,利用animate()函数完成。(推荐此方法) $('#section2 .nav-box ul li').click(function() { $(this).addClass('active').siblings('li').removeClass('active'); var target = $(this).attr('value'); //获取指定目标ID var scrollTo = $('#' + target).offset().top; //获取指定目标距离顶部距离 $("html,body").animate({ scrollTop: scrollTo + 'px', },600) }) 方法二:获取指定目标距离顶部距离与当前滚动条所在位置距离顶部距离的差值,利用setInterval()函数完成 $('#section2 .nav-box ul li').click(function() { $(this).addClass('active').siblings('li').removeClass('active'); var target = $(this).attr('value'); //获取指定目标ID var scrollTo = $('#' + target).offset().top; //获取指定目标距离顶部距离 scroll(scrollTo, 500); }) function scroll(scrollTo, time) { var scrollFrom = $(document).scrollTop(); //获取滚动条当前所在位置距离顶部的距离 i = 0; runEvery = 5; scrollTo = parseInt(scrollTo); time /= runEvery; var interval = setInterval(function() { i++; var t = (scrollTo - scrollFrom) / time * i + scrollFrom; $(document).scrollTop(t); if(i >= time) { clearInterval(interval); } }, runEvery) } ~~~ 9. 滚动到某个section时,动态添加关键(共用)classname,常用于进/出场动画展示。 ***** ``` html模板 <div id="responsiveWrapper_sub"> <section>...</section> <section>...</section> <section>...</section> ... </div> js部分 function pageSlideIn() { var items = $("#responsiveWrapper_sub").children("section"); var windowH = $(window).height(); var windowScroll = $(window).scrollTop(); var bottom_of_window = windowScroll + $(window).height(); for(var i = 0; i < items.length; i++) { var bottom_of_object = $(items[i]).offset().top; if(bottom_of_window >= bottom_of_object) { $(items[i]).addClass("is-active"); } } } ``` 10. 强制关闭页面: * * * * * ~~~ //强制关闭当前页面(已打开),实际是变成空页面 window.location.href="about:blank"; //适合所有主流浏览器,执行此方法后,页面打开时会自动关闭 function CloseWebPage(){ if (navigator.userAgent.indexOf("MSIE") > 0) { if (navigator.userAgent.indexOf("MSIE 6.0") > 0) { window.opener = null; window.close(); } else { window.open('', '_top'); window.top.close(); } }else if (navigator.userAgent.indexOf("Firefox") > 0) { window.location.href = 'about:blank '; } else { window.opener = null; window.open('', '_self', ''); window.close(); } } ~~~ 11. 复制页面中的信息: * * * * * ~~~ //复制页面中指定的信息,iOS移动端失效 $('.subtn').on('click',function(){ // 添加 copy 内容 var msg = $('.wechat').eq(0).text(); document.addEventListener('copy',function copy (e) { e.clipboardData.setData('text/plain', msg); e.preventDefault(); }) // 执行 copy 命令 document.execCommand('copy'); alert('复制成功'); window.location.href="mqqwpa://";//跳转到QQ window.location.href="weixin://";//跳转到微信 }) //页面写法 <p class="qq" id="qq" ></p> <button class="subtn" data-clipboard-action="copy" data-clipboard-target="#qq">点击按钮复制QQ群号</button> //引入文件 <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.1/clipboard.min.js"></script> var clipboard = new ClipboardJS('.subtn'); clipboard.on('success', function(e) { alert('复制成功'); }); clipboard.on('error', function(e) { console.log(e); }); ~~~ 12. 获取指定链接中指定的参数值: * * * * * ~~~ //获取指定url或当前url指定参数值 function getUrlParameter(url,parameter) { if(!url){ url = window.location.search; } var obj = {}; var arr = url.slice(1).split("&"); for(var i = 0, len = arr.length; i < len; i++) { var nv = arr[i].split("="); obj[decodeURIComponent(nv[0]).toLowerCase()] = decodeURIComponent(nv[1]); } //返回参数数组集合 return obj[parameter]; } ~~~ 13. 获取指定url搜索关键字 * * * * * ~~~ //获取上一级页面url var preUrl = decodeURI(document.referrer); //正则匹配,返回渠道名称--type var regexp = new RegExp("\.(baidu|sogou|so|soso|google|bing|ieche|yahoo)(\.(com|cn))","ig"); var typeName = regexp.exec(preUrl); //获取指定url搜索关键字 function getKeyWord(url, type) { switch(type) { case 'baidu': //百度 return getUrlParameter(url, 'wd') ? getUrlParameter(url, 'wd') : getUrlParameter(url, 'word'); break; case 'sogou': //搜狗 return getUrlParameter(url, 'query'); break; case 'so': //360 return getUrlParameter(url, 'q'); break; case 'soso': //搜搜 return getUrlParameter(url, 'query'); break; case 'google': //谷歌 return getUrlParameter(url, 'q'); break; case 'bing': //必应 return getUrlParameter(url, 'q'); break; case 'ieche': //IE return getUrlParameter(url, 'searchword'); break; case 'yahoo': //雅虎 return getUrlParameter(url, 'p'); break; case 'sm': //神马 return getUrlParameter(url, 'q'); break; default: //默认返回0,表示不存在或直接访问 return '0'; break; } } ~~~