JavaScript-client、offset、scroll、定時器

  • client

  • offset

  • scroll

client、offset、scroll系列

他們的作用主要與計算盒模型,盒子的偏移量和滾動有關

clientTop 內容區域到邊框頂部的距離, 說白了, 就是邊框的高度
clientLeft 內容區域到邊框左部的距離, 說白了, 就是邊框的寬度
clientWidth 內容區域+左右padding        可視寬度
clientHeight 內容區域+上下padding       可視高度

client演示

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">*{padding: 0;margin: 0;}.box{width: 200px;height: 200px;position: absolute;border: 10px solid red;padding: 80px;}</style>
</head>
<body><div class="box" id="box">專業豐富的課程體系,博學多聞的實力講師以及風趣生動的課堂,在路飛,不是灌輸知識,而是點燃你的學習火焰。專業豐富的課程體系,博學多聞的實力講師以及風趣生動的課堂,在路飛,不是灌輸知識,而是點燃你的學習火焰。專業豐富的課程體系,博學多聞的實力講師以及風趣生動的課堂,在路飛,不是灌輸知識,而是點燃你的學習火焰。專業豐富的課程體系,博學多聞的實力講師以及風趣生動的課堂,在路飛,不是灌輸知識,而是點燃你的學習火焰。</div></body>
<script type="text/javascript">var oBox = document.getElementById("box");console.log(oBox.clientTop);console.log(oBox.clientLeft);console.log(oBox.clientWidth);console.log(oBox.clientHeight);
</script>
</html>
View Code

屏幕的可視區域

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body></body><script type="text/javascript">// 屏幕的可視區域window.onload = function(){// document.documentElement 獲取的是html標簽
            console.log(document.documentElement.clientWidth);console.log(document.documentElement.clientHeight);// 窗口大小發生變化時,會調用此方法window.onresize = function(){    console.log(document.documentElement.clientWidth);console.log(document.documentElement.clientHeight);}         }</script>
</html>
View Code

offset演示

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">*{padding: 0;margin: 0;}</style></head><body style="height: 2000px"><div><div class="wrap" style=" width: 300px;height: 300px;background-color: green"><div id="box" style="width: 200px;height: 200px;border: 5px solid red;position: absolute;top:50px;left: 30px;">            </div></div></div></body><script type="text/javascript">window.onload = function(){var box = document.getElementById('box')/*offsetWidth占位寬  內容+padding+borderoffsetHeight占位高 offsetTop: 如果盒子沒有設置定位 到body的頂部的距離,如果盒子設置定位,那么是以父輩為基準的top值offsetLeft: 如果盒子沒有設置定位 到body的左部的距離,如果盒子設置定位,那么是以父輩為基準的left值* */console.log(box.offsetTop)console.log(box.offsetLeft)console.log(box.offsetWidth)console.log(box.offsetHeight)}</script>
</html>
View Code

scroll演示

實施監聽滾動事件

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><style type="text/css">*{padding: 0;margin: 0;}</style></head><body style="width: 2000px;height: 2000px;"><div style="height: 200px;background-color: red;"></div><div style="height: 200px;background-color: green;"></div><div style="height: 200px;background-color: yellow;"></div><div style="height: 200px;background-color: blue;"></div><div style="height: 200px;background-color: gray;"></div><div id = 'scroll' style="width: 200px;height: 200px;border: 1px solid red;overflow: auto;padding: 10px;margin: 5px 0px 0px 0px;"><p>學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界學習新技能,達成人生目標,開始用自己的力量影響世界</p></div></body><script type="text/javascript">window.onload = function(){//實施監聽滾動事件window.onscroll = function(){
//                console.log(1111)
//                console.log('上'+document.documentElement.scrollTop)
//                console.log('左'+document.documentElement.scrollLeft)
//                console.log('寬'+document.documentElement.scrollWidth)
//                console.log('高'+document.documentElement.scrollHeight)
}var s = document.getElementById('scroll');s.onscroll = function(){
//            scrollHeight : 內容的高度+padding  不包含邊框console.log(''+s.scrollTop)console.log(''+s.scrollLeft)console.log(''+s.scrollWidth)console.log(''+s.scrollHeight)}}</script>
</html>
View Code

?

定時器

  • setTimeout()

  • setInterval()

在js中有兩種定時器:

  • 一次性定時器:setTimeout()
  • 周期性循環定時器:setInterval()

setTimeout()

只在指定的時間后執行一次

/定時器 異步運行  
function hello(){  
alert("hello");  
}  
//使用方法名字執行方法  
var t1 = window.setTimeout(hello,1000);  
var t2 = window.setTimeout("hello()",3000);//使用字符串執行方法  
window.clearTimeout(t1);//去掉定時器

setInterval()

在指定時間為周期循環執行

/實時刷新  時間單位為毫秒  
setInterval('refreshQuery()',8000);   
/* 刷新查詢 */  
function refreshQuery(){  console.log('每8秒調一次') 
}

對于這兩個方法,需要注意的是如果要求在每隔一個固定的時間間隔后就精確地執行某動作,那么最好使用setInterval,而如果不想由于連續調用產生互相干擾的問題,尤其是每次函數的調用需要繁重的計算以及很長的處理時間,那么最好使用setTimeout

轉載于:https://www.cnblogs.com/Xuuuuuu/p/10510461.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279956.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279956.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279956.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 五大原則

1、單一職責 不論是在設計類&#xff0c;接口還是方法&#xff0c;單一職責都會處處體現&#xff0c;單一職責的定義&#xff1a;我們把職責定義為系統變化的原因。所有在定義類&#xff0c;接口&#xff0c;方法的時候。定義完以后再去想一想是不能多于一個的動機去改變這個類…

馬化騰發飆:很多業務該砍就砍,一批員工要被裁了

最近騰訊內部會議&#xff0c;馬化騰內部講話&#xff0c;頻頻上了熱搜。在會議中&#xff0c;馬化騰難得發飆表示&#xff1a;很多不盈利的業務該砍就砍。從網絡新聞報道來看&#xff0c;可能超過40個業務即將關掉&#xff0c;甚至包括幻核、QQ影音、看點快報、搜狗地圖、騰訊…

在ASP.Net和IIS中刪除不必要的HTTP響應頭

引入 每次當瀏覽器向Web服務器發起一個請求的時&#xff0c;都會伴隨著一些HTTP頭的發送.而這些HTTP頭是用于給Web服務器提供一些額外信息以便于處理請求。比如說吧。如果瀏覽器支持壓縮功能&#xff0c;則瀏覽器會發送Accept-Encoding HTTP頭&#xff0c;這樣一來服務器便知道…

SAP Customer Data Cloud(Gigya)的用戶搜索實現

我在Gigya前臺根據email搜索&#xff0c;輸入一個郵箱地址&#xff0c;回車&#xff0c;在Chrome開發者工具里觀察到到后臺的網絡請求&#xff1a; 這是一個post請求&#xff1a; __RequestVerificationToken 請求體&#xff1a; {"query":"SELECT * FROM accou…

C# ComboBox枚舉量綁定的 兩種方法

概述ComboBox綁定枚舉量的方法有很多&#xff0c;今天列舉比較常用的兩種&#xff0c;希望對讀者們一些幫助&#xff01;代碼講解前臺XMAL:<StackPanel><ComboBox Name"EvenType1" SelectedIndex"0" Margin"5"/><ComboBox Name&…

springboot + mybatis + gradle項目構建過程

1.從Spring boot官網根據需求下載腳手架或者到GitHub上去搜索對應的腳手架項目,D_iao ^0^ ? 文件目錄如下&#xff08;此處generatorConfig.xml 和 log4j2.xml文件請忽略&#xff0c;后續會講解&#xff09; 2.使用Mybatis代碼自動構建插件生成代碼 ? gradle 相關配置 // My…

基于間隔推送全量更新數據狀態的設計方法

2019獨角獸企業重金招聘Python工程師標準>>> 假如有個直播間&#xff0c;在數據有更新的時候&#xff0c;能及時反映在客戶端上。通信方式來說&#xff0c;有兩種&#xff1a; 1、拉取模式。 2、推送拉取模式&#xff08;或者純推送&#xff09; 拉取模式&#xff0…

Redis 哈希(Hash)

哈希hash又稱為散列、雜湊等&#xff0c;是將任意長度的輸入通過散列算法變換為固定長度的輸出&#xff0c;最終輸出也就是哈希值。這種轉換是一種壓縮映射。也就是說&#xff0c;散列值的空間通常要遠小于輸入控件&#xff0c;不同的輸入可能會散列成相同的輸出&#xff0c;所…

京東Vue組件庫NutUI 2.0發布:將支持跨平臺!

NutUI 是一套來自京東用戶體驗設計部&#xff08;JDC&#xff09;前端開發部的移動端 Vue 組件庫&#xff0c;NutUI 1.0 版本于 2018 年發布。據不完全統計&#xff0c;目前在京東至少有30多個 web 項目正在使用 NutUI。 經過一段時間緊鑼密鼓的開發&#xff0c;近期&#xff0…

macbook 下載時睡眠_MacBook進入睡眠狀態時如何自動使其靜音

macbook 下載時睡眠You open your MacBook to take notes in class or during a meeting, and your music starts playing. Loudly. Not only did you disrupt everyone, you also revealed your passion for 90’s boy bands to a room full of people who once respected you…

Mac 的mysql5.7沒有配置文件,如何解決only_full_group_by 問題

數據庫版本是5.7.19&#xff0c;在寫語句的時候&#xff0c;只要涉及ORDER BY,就會報錯&#xff0c; ERROR 1055 (42000): Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column postscan.verifyDelayLog.auditor which is not function…

Spring MVC 入門(一)

什么是 Spring MVC 學習某一樣東西之前&#xff0c;我們一定要大致知道這個東西是什么&#xff0c;能干什么&#xff0c;為什么要用它。 Spring MVC 是一個開源平臺&#xff0c;一個基于 Spring 的 MVC 框架&#xff0c;它支持基于 Java 開發 Web 應用程序。MVC 架構很利于開發…

開源網關 Apache APISIX 認證鑒權精細化實戰講解

關注公眾號并添加到“星標?”&#xff0c;防止錯過消息后臺回復【資料包】獲取學習資料GitOps 新手入門到專家進階實戰詳細教程作者錢勇&#xff0c;API7.ai 開發工程師&#xff0c;Apache APISIX Committer在當下云原生越發成熟的環境下&#xff0c;API 網關最核心的功能可以…

python應用POP3、IMAP、SMTP 協議,獲取郵箱驗證碼

&#xff30;&#xff2f;&#xff30;&#xff13;和&#xff29;&#xff2d;&#xff21;&#xff30;是郵件相關的協議&#xff0c;&#xff29;&#xff2d;&#xff21;&#xff30;是比&#xff30;&#xff2f;&#xff30;&#xff13;更高級一點的協議&#xff0c;實…

固件中啟用的虛擬化否_哪些固件或硬件機制可啟用強制關機?

固件中啟用的虛擬化否At one time or another, all of us have had to force our computers to shut down by pushing and holding the power button down until they powered off. Is this mechanism hardware-based, firmware-based, or both? Today’s SuperUser Q&A p…

簡述閉包

閉包 這是我對閉包的一點小理解.有問題請直接指出,在此先謝過! 閉包的含義 封閉隔離的空間,在javascript中,只有函數能夠符合這種特性; 為什么要用閉包呢? 因為在引用外部js文件(如jquery,各種框架)時防止變量重名造成的問題,同時也使代碼更具隱私性; 獲取閉包中數據的方法: …

Confluence 6 配置服務器基礎地址備注

使用不同 URL。如果你配置了不同的基礎 URL 地址或者你站點的訪問者使用了不同的 URL 地址來訪問你的 Confluence 地址&#xff0c;你有很大概率可能會受到錯誤信息。修改上下文地址。如果你修改了基礎 URL 地址的上下文地址&#xff0c;你同時也需要修改下面的配置&#xff1a…

2019第10周知識總結

react 事件綁定 函數寫法 文檔總結 https://react.docschina.org/docs/handling-events.html 1 通過 constroucor綁定 class Toggle extends React.Component {constructor(props) {super(props);this.state {isToggleOn: true};// This binding is necessary to make this wo…

.NET 云原生架構師訓練營(基于 OP Storming 和 Actor 的大型分布式架構二)--學習筆記...

▲ 點擊上方“DotNet NB”關注公眾號回復“1”獲取開發者路線圖學習分享 丨作者 / 鄭 子 銘 這是DotNet NB 公眾號的第202篇原創文章目錄為什么我們用 OrleansDapr VS OrleansActor 模型Orleans 的核心概念結合 OP Storming 的實踐結合 OP Storming 的實踐業務模型設計模型代…

PHP 多維數組轉json對象

PHP 多維數組轉json對象 php 數組轉json對象&#xff0c;可能大家都知道要用json_encode,但是轉換出來的格式多有不同&#xff0c;此處做個小小的記錄&#xff01; 1. 一維數組轉json對象 <?php $arr_1 [one, two, three]; var_dump(json_encode($arr_1)); $arr_2 [0 >…