在前端的開發中,我們會經常遇到這樣的一個問題,就是當頁面滾動到一定的時候;會有回到頂部的需求,那麼在每一個頁面上都寫這麼一個方法就會使程式碼很冗餘;所以為了解決這個問題;我把程式碼抽了出來,封裝成一個公用的函數,方便使用。封裝的還不是很好,有不同見解,可以互相討論討論~
/** * 页面回顶部 * @obj //对象{}传入 ; 其中回顶部的imgSrc路径必传 ; 其他参数说明看函数内部的默认defaults对象 */ function _backToTop(obj){ var defaults = { pageHeight: 2, //默认当向下滚动2页时,显示 aId: 'aToTop', //a标签的id href: 'backTop', //跳转到指定body元素的顶部 aStyle: { //a标签样式 width: '40px', height: '40px', display: 'block', position: 'fixed', right: '20px', bottom: '50px', zIndex: 99999 //z-index:999的这种样式以 zIndex:999的方式传值 }, imgStyle: { //img标签样式 width: '100%', height: '100%' } }; for (var def in defaults) { if (typeof obj[def] === 'undefined') { obj[def] = defaults[def]; } else if (typeof obj[def] === 'object') { for (var deepDef in defaults[def]) { if (typeof obj[def][deepDef] === 'undefined') { obj[def][deepDef] = defaults[def][deepDef]; } } } } //把样式对象转化为样式字符串,有如:z-index:999;的样式按 zIndex:999;的 方式传值 obj.aStyle = JSON.stringify(obj.aStyle).replace(/{|}|"/g,'').replace(/,/g,';').replace(/[A-Z]/g, function(ch) {return '-'+String.fromCharCode(ch.charCodeAt(0) | 32);}); obj.imgStyle = JSON.stringify(obj.imgStyle).replace(/{|}|"/g,'').replace(/,/g,';').replace(/[A-Z]/g, function(ch) {return '-'+String.fromCharCode(ch.charCodeAt(0) | 32);}); var winHeight = document.documentElement.clientHeight || document.body.clientHeight; var scrollValue; document.getElementsByTagName('body')[0].setAttribute('id',obj.href); var box = document.createElement('a'); var img = document.createElement('img'); box.setAttribute('id',obj.aId); box.setAttribute('href','#'+obj.href); box.setAttribute('style',obj.aStyle); img.setAttribute('style',obj.imgStyle); img.setAttribute('src',obj.imgSrc); box.appendChild(img); window.addEventListener('scroll',function(e){ scrollValue = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; if(scrollValue > (winHeight * obj.pageHeight)){ document.body.appendChild(box); }else{ document.getElementById(obj.aId) ? document.body.removeChild(document.getElementById(obj.aId)) : null; } }); }
以上是如何將js常用函數進行封裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!