整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript實現頁面到滾動到指定位置執行某些操作

          用JavaScript實現頁面滑動到指定位置加載動畫。

          若頁面滾動到class名為group-pic的元素的位置時開始加載


          1. $(document).ready(function(){
          2. var a,b,c;
          3. a = $(window).height(); //瀏覽器窗口高度
          4. var group = $(".group-pic");
          5. $(window).scroll(function(){
          6. b = $(this).scrollTop(); //頁面滾動的高度
          7. c = group.offset().top; //元素距離文檔(document)頂部的高度
          8. if(a+b>c){
          9. ...
          10. }else{
          11. ...
          12. }
          13. });
          14. });

          原理: 1.獲取瀏覽器窗口的高度;

          2.獲取頁面滾動的高度;

          3.獲取頁面距離文檔(document)頂部的高度

          offset().top具體指的是距哪里的高度呢?

          一些獲寬高度的屬性:

          網頁可見區域寬: document.body.clientWidth;

          網頁可見區域高: document.body.clientHeight;

          網頁可見區域寬: document.body.offsetWidth (包括邊線的寬);

          網頁可見區域高: document.body.offsetHeight (包括邊線的寬);

          網頁正文全文寬: document.body.scrollWidth;

          網頁正文全文高: document.body.scrollHeight;

          網頁被卷去的高: document.body.scrollTop;

          網頁被卷去的左: document.body.scrollLeft;

          網頁正文部分上: window.screenTop;

          網頁正文部分左: window.screenLeft;

          屏幕分辨率的高: window.screen.height;

          屏幕分辨率的寬: window.screen.width;

          屏幕可用工作區高度: window.screen.availHeight;

          屏幕可用工作區寬度:window.screen.availWidth;

          obj.offsetTop 指 obj 距離上方或上層控件的位置,整型,單位像素。

          obj.offsetLeft 指 obj 距離左方或上層控件的位置,整型,單位像素。

          obj.offsetWidth 指 obj 控件自身的寬度,整型,單位像素。

          obj.offsetHeight 指 obj 控件自身的高度,整型,單位像素。

          1.offsetTop : 當前對象到其上級層頂部的距離.

          不能對其進行賦值.設置對象到頁面頂部的距離請用style.top屬性.

          2.offsetLeft : 當前對象到其上級層左邊的距離.

          不能對其進行賦值.設置對象到頁面左部的距離請用style.left屬性.

          3.offsetWidth : 當前對象的寬度.

          與style.width屬性的區別在于:如對象的寬度設定值為百分比寬度,則無論頁面變大還是變小,style.width都返回此百分比,而offsetWidth則返回在不同頁面中對象的寬度值而不是百分比值

          4.offsetHeight : 與style.height屬性的區別在于:如對象的寬度設定值為百分比高度,則無論頁面變大還是變小,style.height都返回此百分比,而offsetHeight則返回在不同頁面中對象的高度值而不是百分比值

          avascript中制作滾動代碼的常用屬性

          1.網頁可見區域寬: document.body.clientWidth; 網頁可見區域高: document.body.clientHeight; 網頁可見區域寬: document.body.offsetWidth (包括邊線的寬); 網頁可見區域高: document.body.offsetHeight (包括邊線的寬); 網頁正文全文寬: document.body.scrollWidth; 網頁正文全文高: document.body.scrollHeight; 網頁被卷去的高: document.body.scrollTop; 網頁被卷去的左: document.body.scrollLeft; 網頁正文部分上: window.screenTop; 網頁正文部分左: window.screenLeft; 屏幕分辨率的高: window.screen.height; 屏幕分辨率的寬: window.screen.width; 屏幕可用工作區高度: window.screen.availHeight;

          2.假設 obj 為某個 HTML 控件。

          obj.offsetTop 指 obj 距離上方或上層控件的位置,整型,單位像素。 obj.offsetLeft 指 obj 距離左方或上層控件的位置,整型,單位像素。 obj.offsetWidth 指 obj 控件自身的寬度,整型,單位像素。 obj.offsetHeight 指 obj 控件自身的高度,整型,單位像素。

          我們對前面提到的“上方或上層”與“左方或上層”控件作個說明。 例如:

          “提交”按鈕的 offsetTop 指“提交”按鈕距“tool”層上邊框的距離,因為距其上邊最近的是 “tool” 層的上邊框。 “重置”按鈕的 offsetTop 指“重置”按鈕距“tool”層上邊框的距離,因為距其上邊最近的是 “tool” 層的上邊框。 “提交”按鈕的 offsetLeft 指“提交”按鈕距“tool”層左邊框的距離,因為距其左邊最近的是 “tool” 層的左邊框。 “重置”按鈕的 offsetLeft 指“重置”按鈕距“提交”按鈕右邊框的距離,因為距其左邊最近的是“提交”按鈕的右邊框。

          以上屬性在 FireFox 中也有效。

          3.offsetTop 與 style.top 的區別

          預備知識:offsetTop、offsetLeft、offsetWidth、offsetHeight 我們知道 offsetTop 可以獲得 HTML 元素距離上方或外層元素的位置,style.top 也是可以的,二者的區別是:

          (1)offsetTop 返回的是數字,而 style.top 返回的是字符串,除了數字外還帶有單位:px。 (2)offsetTop 只讀,而 style.top 可讀寫。 (3)如果沒有給 HTML 元素指定過 top 樣式,則 style.top 返回的是空字符串。

          offsetLeft 與 style.left、offsetWidth 與 style.width、offsetHeight 與 style.height 也是同樣道理。 offsetWidth與style.width屬性的區別在于:如對象的寬度設定值為百分比寬度,則無論頁面變大還是變小,style.width都返回此百分比,而offsetWidth則返回在不同頁面中對象的寬度值而不是百分比值

          4.scrollLeft : 對象的最左邊到對象在當前窗口顯示的范圍內的左邊的距離. 即是在出現了橫向滾動條的情況下,滾動條拉動的距離. scrollTop 對象的最頂部到對象在當前窗口顯示的范圍內的頂邊的距離. 即是在出現了縱向滾動條的情況下,滾動條拉動的距離.

          擊上方“Web前端進階指南”關注我呦

          跟程序員小強一起學前端

          這一篇呢,我們來說說CSS3一些高級有趣的屬性,幫助我們更好的,更高效的去開發我們的頁面,不僅在效率上提高很多,而且頁面效果上更炫酷,下面一起來看看吧。

          CSS3多列屬性

          CSS3多列屬性有很多,我們一一來介紹一下,包括以下幾個屬性:

          • column-count
          • column-gap
          • column-rule-style
          • column-rule-width
          • column-rule-color
          • column-rule
          • column-span
          • column-width

          1、CSS3創建多列

          column-count屬性指定了需要分割的列數,就是說你想要讓你的文本顯示多少列,我們不需要寫很多個div,然后去限制字數,分別在每個div里調用多少字,還需要讓div浮動,麻煩滴很啊,這是用CSS3多列我們自己就可以達到這樣的需求。如圖所示:

          效果如下:

          這樣一來,我們就可以將文本分成3列顯示,超出的文本自動隱藏,我們在寫響應式頁面的時候就可以用到它哦!

          2、CSS3 多列中列與列間的間隙

          調整多列中列與列間的間隙的時候我們就可以用column-gap,它就指定了列與列間的間隙,我們再也不需要專門給div設定浮動,還要設置它們之間的margin,有了它就可以像Swiper那樣一個屬性,輕輕松松設置間距,效果如上圖那樣,分成三列,并設置間距。代碼如下:

          3、CSS3 列邊框

          還有更好玩的多列屬性。上面我們設置完了列與列的間距,這呢我們用column-rule-style屬性來設置列與列之間的邊框樣式,我們不再用圖片或者更多的CSS去寫,它就可以了,例如:

          這樣我們就可以將文本分成3列,間距40px,列邊框的樣式為虛線,此外,我們還設定邊框的寬度(column-rule-width),顏色(column-rule-color),并且像CSS中那樣去用(column-rule)簡寫我們的多列邊框,例如:

          達到的效果如下:

          順便給大家說一下CSS有哪些邊框樣式,直接上圖啦:

          4、指定元素跨越多少列

          就是給被指定的某個元素應該跨多少列,這時候我們就要用到(column-span)這個屬性了,這個屬性有兩個值,一個是1,一個是all,這就是說如果有個文本我們把它分成3列,我們就可以指定它的標題占1列或者所有的列。如下圖:

          5、指定列的寬度

          我們不僅可以把文本分成幾列,還可以專門指定被分成列的寬度,這時候我們可以用column-width屬性,來指定列的寬度。例如:

          CSS3行數限制

          限制在一個塊元素顯示的文本的行數,我們就可以用-webkit-line-clamp,由于它是一個不規范的屬性,他沒有出現在CSS規范草案中,不過并不代表我們不能用,為了使用它達到我們想要的效果,我們得結合一些屬性,例如:

          這樣一來,我們就可以讓我們的文本顯示6行,其余的用省略號代替。

          此外,我們也可以顯示一行文本,多余的用省略號代替,例如:

          CSS3 writing-mode 屬性

          writing-mode 屬性定義了文本在水平或垂直方向上如何排版,這樣我們就可以省去大量的CSS代碼,一個屬性就可以搞定,writing-mode有5個值,分別是:

          • horizontal-tb:水平方向自上而下的書寫方式。即 left-right-top-bottom
          • vertical-rl:垂直方向自右而左的書寫方式。即 top-bottom-right-left
          • vertical-lr:垂直方向內內容從上到下,水平方向從左到右
          • sideways-rl:內容垂直方向從上到下排列
          • sideways-lr:內容垂直方向從下到上排列

          我們可以讓元素以任何形式放置在我們的表格當中,例如下圖:

          CSS3彈性盒子

          這也是我們常用的知識,彈性盒子由彈性容器(Flex container)和彈性子元素(Flex item)組成。通過設置 display 屬性的值為 flex 或 inline-flex將其定義為彈性容器。容器內包含了一個或多個彈性子元素。

          正常情況下,我們只需設置display:flex即可,彈性子元素元素就會在一行內顯示(彈性子元素通常在彈性盒子內一行顯示。默認情況每個容器只有一行),從左到右。

          當然我們也可以修改排列方式,例如我們將body設置direction 屬性為 rtlright-to-left),彈性子元素的排列方式也會改變,頁面布局也跟著改變,所有的子元素會靠近左側排列,并且以倒序排列。

          1、flex-direction

          flex-direction 屬性指定了彈性子元素在父容器中的位置。其屬性值:

          • row:橫向從左到右排列(左對齊),默認的排列方式。
          • row-reverse:反轉橫向排列(右對齊,從后往前排,最后一項排在最前面。
          • column:縱向排列。
          • column-reverse:反轉縱向排列,從后往前排,最后一項排在最上面。

          例如我們用row-reverse將子元素倒序排列

          2、justify-content 屬性

          內容對齊(justify-content)屬性應用在彈性容器上,把彈性項沿著彈性容器的主軸線(main axis)對齊。這樣我們就可以更好地排列我們的文本了,它呢有5個值,例如:

          • flex-start:彈性項目向行頭緊挨著填充。這個是默認值。第一個彈性項的main-start外邊距邊線被放置在該行的main-start邊線,而后續彈性項依次平齊擺放。
          • flex-end:彈性項目向行尾緊挨著填充。第一個彈性項的main-end外邊距邊線被放置在該行的main-end邊線,而后續彈性項依次平齊擺放。
          • center:彈性項目居中緊挨著填充。(如果剩余的自由空間是負的,則彈性項目將在兩個方向上同時溢出)。
          • space-between:彈性項目平均分布在該行上。如果剩余空間為負或者只有一個彈性項,則該值等同于flex-start。否則,第1個彈性項的外邊距和行的main-start邊線對齊,而最后1個彈性項的外邊距和行的main-end邊線對齊,然后剩余的彈性項分布在該行上,相鄰項目的間隔相等。
          • space-around:彈性項目平均分布在該行上,兩邊留有一半的間隔空間。如果剩余空間為負或者只有一個彈性項,則該值等同于center。否則,彈性項目沿該行分布,且彼此間隔相等(比如是20px),同時首尾兩邊和彈性容器之間留有一半的間隔(1/2*20px=10px)。

          效果如下:

          平時space-between用的最多,它會讓彈性子元素均勻的分布在彈性盒子呢,而且是響應式的排列。

          CSS3多媒體查詢

          CSS3多媒體查詢可以針對不同的媒體類型(包括顯示器、便攜設備、電視機,等等)設置不同的樣式規則。但是這些多媒體類型在很多設備上支持還不夠友好。目前很多針對蘋果手機,Android 手機,平板等設備都會使用到多媒體查詢。像別的媒體,例如打印機、屏幕閱讀器等的兼容性還不是很好。

          使用 @media 查詢,你可以針對不同的媒體類型定義不同的樣式。

          @media 可以針對不同的屏幕尺寸設置不同的樣式,特別是如果你需要設置設計響應式的頁面,@media 是非常有用的。

          當你重置瀏覽器大小的過程中,頁面也會根據瀏覽器的寬度和高度重新渲染頁面。

          比如說我們常用的響應式頁面,我們想在媒體寬度最大500px顯示圖片,其余媒體不顯示,我們就可以這樣寫:

          總結

          在使用本篇講解的CSS3屬性時,一定要注意其瀏覽器的兼容性,因為很多的CSS3屬性都不支持主流的低版本的瀏覽器,基本IE10以上、FireFox3.5以上、Chrome21.0以上、Safari4.0以上才能很好地兼容,希望小伙伴們注意。

          本期的CSS3到這里就全部講解完了,也希望小伙伴們學的快樂,馬上也到了寒假過年的好日子,希望大家不要忘記學習哈!

          接下來的我們會很長一段時間去學習JavaScript,如果你想學,關注我,我將帶領大家一起去學習。


          主站蜘蛛池模板: 3d动漫精品啪啪一区二区中| AV怡红院一区二区三区| 国模少妇一区二区三区| 在线电影一区二区三区| 亚洲爆乳精品无码一区二区| 亚洲国产精品乱码一区二区 | 国产一区二区三区高清视频| 国产精品日韩欧美一区二区三区| 亚洲国产精品一区二区第一页| 无码国产精品一区二区免费式直播| 日韩一区在线视频| 亚洲色婷婷一区二区三区| 亚洲一区二区三区高清不卡 | 精品无码一区二区三区爱欲九九| 一区二区在线视频| 精品一区二区三区波多野结衣| 亚欧成人中文字幕一区| 精品福利一区二区三区免费视频| 中文乱码字幕高清一区二区| 人妻夜夜爽天天爽一区| 美女视频一区二区| 99久久国产精品免费一区二区| 国产精品免费一区二区三区四区| 少妇激情一区二区三区视频| 国产主播在线一区| 色综合视频一区二区三区| 久久精品无码一区二区app| 亚洲AV无码一区二区二三区入口| 精品无码人妻一区二区免费蜜桃| 波多野结衣一区二区三区| 深田咏美AV一区二区三区| 日韩精品电影一区亚洲| 国产丝袜视频一区二区三区| 国产91精品一区二区麻豆网站| 成人免费一区二区三区在线观看| 精品人妻一区二区三区四区| 亚洲色大成网站www永久一区| 亚洲视频一区二区在线观看| 日韩高清一区二区| 日韩电影一区二区| 日本免费一区二区三区最新|