整合營銷服務商

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

          免費咨詢熱線:

          21-jquery-css樣式操作的方法

          lt;!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>21-jquery-css樣式操作的方法</title>

          <!-- <script src="../static/js/jquery-3.6.0.js"></script>

          <script>

          $(function(){


          })

          </script> -->

          <script src="../static/js/jquery-3.6.0.js"></script>

          <script>

          $(function(){


          // 1. 逐個設置,一次只設置一個

          // $("div").css("height", '100px'); // 設置div的高度為100

          // $("div").css("width", "100px"); // 設置div的寬度為100

          // $("div").css("background", "red"); // 設置div的背景為紅色


          // 2. 鏈式設置

          // 注意:鏈式操作如果大于3布建議分開, 因為可讀性就變差了

          // $("div").css("height", '200px').css("width", "150px").css("background", "blue"); // 把div設置成高200,寬150,藍色背景



          // 3.批量設置

          $("div").css({

          width: '300px',

          height: '250px',

          background: 'pink',

          });




          // 4.獲取css樣式值

          let h = $("div").css("height") // 獲取div的高度并賦值給h

          $("div").text(h) // 把h的值寫到div當中

          })

          </script>

          </head>

          <body>

          <div></div>

          </body>

          </html>

          近項目需求,寫了一個類似百度搜索框的功能。

          把代碼整理了一遍,然后分享出來給大家看看,如果有不對的地方請多指教。

          實現效果

          使用的語言:html,css,JavaScript,jQuery

          代碼部分

          html部分:


          1. <div style="color: #323232; ">
          2. 查找:
          3. <input id="input"/>
          4. <button>搜索</button>
          5. <!--輸入框下方的列表-->
          6. <ul id="ul" style="display:none;z-index: 2;">
          7. <li>1</li>
          8. <li>2</li>
          9. <li>3</li>
          10. </ul>
          11. <!--輸入框內的箭頭-->
          12. <span id="jiantou" style="padding:10px 20px 10px 20px;margin-left: -200px; background-image: url();background-repeat: no-repeat; background-position: center;"></span>
          13. </div>

          js部分:


          1. $(document).ready(function(){
          2. //先監聽input的值變化
          3. document.getElementById("input").oninput=function(){
          4. var val = $(this).val()
          5. if(val!=""){
          6. //當input中有值 的時候顯示ul列表
          7. $("#ul").css("display","block")
          8. var a = -1 //設置一個變量 用來控制鍵盤上下鍵選中的li標簽
          9. //開始監聽鍵盤事件
          10. document.onkeydown = function (e) {
          11. e = e || window.event;
          12. var code = e.keyCode //用來儲存 e.keycode
          13. if(code==40){
          14. console.log("下")
          15. //獲取ul中的li個數,使選擇不會超出
          16. if(a<$("#ul").children("li").length){
          17. a++;
          18. //開始獲取到選擇中的li標簽
          19. $("#ul").children("li").eq(a)
          20. }
          21. }else if(code==38){
          22. console.log("上")
          23. //獲取ul中的li個數,使選擇不會超出
          24. if(0<a){
          25. a--;//開始獲取到選擇中的li標簽
          26. $("#ul").children("li").eq(a)
          27. }
          28. }else if(code==13){
          29. console.log("回車")
          30. }
          31. }
          32. }else{
          33. //當input中沒有值的時候隱藏ul列表
          34. $("#ul").css("display","none")
          35. }
          36. }
          37. //給body添加一個點擊事件來隱藏ul,使用戶點擊頁面ul可以隱藏,不用input失去焦點是因為在選擇li的時候很容易出bug
          38. $("body").click(function(){
          39. $("#ul").css("display","none")
          40. })
          41. //好啦最后別忘了失去鍵盤焦點的時候要把鍵盤監聽事件關閉,不然很容易出BUG
          42. $("#input").blur(function(){
          43. document.onkeydown =null
          44. })
          45. })

          全部代碼:


          1. <!DOCTYPE html>
          2. <html>
          3. <head>
          4. <meta charset="UTF-8">
          5. <title>jQuery實現百度搜索輸入框</title>
          6. </head>
          7. <body>
          8. <!--
          9. 作者:380012546@qq.com
          10. 時間:2018-08-02
          11. 描述:實現百度搜索輸入框的功能
          12. -->
          13. <div style="color: #323232; ">
          14. 查找:
          15. <input id="input"/>
          16. <button>搜索</button>
          17. <!--輸入框下方的列表-->
          18. <ul id="ul" style="display:none;z-index: 2;">
          19. <li>1</li>
          20. <li>2</li>
          21. <li>3</li>
          22. </ul>
          23. <!--輸入框內的箭頭-->
          24. <span id="jiantou" style="padding:10px 20px 10px 20px;margin-left: -200px; background-image: url();background-repeat: no-repeat; background-position: center;"></span>
          25. </div>
          26. </body>
          27. <!--引入jQuery方便遍歷-->
          28. <script src="js/jquery-3.3.1.js"></script>
          29. <!--開始js-->
          30. <script>
          31. $(document).ready(function(){
          32. //先監聽input的值變化
          33. document.getElementById("input").oninput=function(){
          34. var val = $(this).val()
          35. if(val!=""){
          36. //當input中有值 的時候顯示ul列表
          37. $("#ul").css("display","block")
          38. var a = -1 //設置一個變量 用來控制鍵盤上下鍵選中的li標簽
          39. //開始監聽鍵盤事件
          40. document.onkeydown = function (e) {
          41. e = e || window.event;
          42. var code = e.keyCode //用來儲存 e.keycode
          43. if(code==40){
          44. console.log("下")
          45. //獲取ul中的li個數,使選擇不會超出
          46. if(a<$("#ul").children("li").length){
          47. a++;
          48. //開始獲取到選擇中的li標簽
          49. $("#ul").children("li").eq(a)
          50. }
          51. }else if(code==38){
          52. console.log("上")
          53. //獲取ul中的li個數,使選擇不會超出
          54. if(0<a){
          55. a--;//開始獲取到選擇中的li標簽
          56. $("#ul").children("li").eq(a)
          57. }
          58. }else if(code==13){
          59. console.log("回車")
          60. }
          61. }
          62. }else{
          63. //當input中沒有值的時候隱藏ul列表
          64. $("#ul").css("display","none")
          65. }
          66. }
          67. //給body添加一個點擊事件來隱藏ul,使用戶點擊頁面ul可以隱藏,不用input失去焦點是因為在選擇li的時候很容易出bug
          68. $("body").click(function(){
          69. $("#ul").css("display","none")
          70. })
          71. //好啦最后別忘了失去鍵盤焦點的時候要把鍵盤監聽事件關閉,不然很容易出BUG
          72. $("#input").blur(function(){
          73. document.onkeydown =null
          74. })
          75. })
          76. </script>
          77. </html>

          果你是一名前端人員,你單單的使用jq插件顯然不夠,js在大多時候比較擱置,但你如果前端技術想要提升,那么js的精通對你顯得很重要,本文只是他到js的document與css。

          1.Document與Element和TEXT是Node的子類。

          Document:樹形的根部節點

          Element:HTML元素的節點

          TEXT:文本節點

          >>HtmlElement與HtmlDocument

          a:HtmlElement對象表示HTML中的一個個元素。

          b:HtmlDocument對象表示 HTML 文檔樹的根。HTMLDocument 接口對 DOM Document 接口進行了擴展,定義 HTML 專用的屬性和方法。

          >>HTML的DOM對象

          a:DOM Event:Event 對象代表事件的狀態。

          b:DOM Attribute:Attr 對象表示 HTML 屬性。

          c:DOM Element:Element 對象表示 HTML 元素,Element 對象可以擁有類型為元素節點、文本節點、注釋節點的子節點。

          d:DOM Document:每個載入瀏覽器的 HTML 文檔都會成為 Document 對象。Document 對象使我們可以從腳本中對 HTML 頁面中的所有元素進行訪問。Document 對象是 Window 對象的一部分,可通過 window.document 屬性對其進行訪問

          #log span 與 #log>span的區別?

          <div id="log">
          <span>Span1</span>
          <span>Span2</span>
          <span>Span3</span>
          <div>
          <span>Span4</span>
          <span>Span5</span>
          </div>
          </div>

          #log span的效果:

          #log>span的效果:

          2.CSS選擇器

          與CSS選擇器的標準化一起的另外一個稱做"選擇器API"的W3C標準定義了獲取匹配一個給定選擇器的元素的JavaScript方法。該API的關鍵是Document方法querySelectorAll()。它接收包含一個CSS選擇器的字符串參數,返回一個表示文檔中匹配選擇器的所有元素的NodeList對象。

          querySelectorAll()返回的NodeList對象并不是實時的:它包含在調用時刻選擇器所匹配的元素,不包括后續的通過JavaScript更改文檔的匹配元素。

          querySelectorAll()強大到即使在沒有其的原生支持的瀏覽器中依舊可以使用CSS選擇器。它是一種終極的選取方法技術。

          基于jQuery的Web應用程序使用一個輕便的,跨瀏覽器的和querySelectorAll()等效的方法,命名為$().

          jQuery的CSS選擇器匹配代碼已經作為一個獨立的標準庫提出來并發布了,命名為Sizzle。

          3.HTML屬性作為Element的屬性

          表示HTML文檔元素的HTMLElement對象定義了讀寫屬性,他們映射了元素的HTML屬性。

          例如:

          var image=document.getElementById("my_image");

          var imgurl=image.src;

          可以使用<img>元素的HTMLElement對象的src屬性.

          4.數據集屬性

          有時候在HTML元素上綁定一些額外的信息。HTML5提供看一種方法。

          任意一”data-*“為前綴的小寫的屬性名字都是合法的。

          5.Web瀏覽器很擅長解析HTML,通常設置innerHTML效率非常高。但是:對innerHTML屬性使用”+=“操作符重復追加文本時效率低下,因為它既要序列化又要解析。

          插入節點方法:appendChild()與insertBefore()的異同?

          6.視口坐標與文檔坐標

          視口坐標:指的是顯式文檔內容的那一部分(也即我們在瀏覽器中能看到的那部分區域),不包括瀏覽器的外殼元素,比如菜單欄,工具條等。

          文檔坐標:指的是包含整個頁面的整個部分(也即我們在瀏覽器中能看的那部分區域以及需要依靠滾動條來滾動查看的區域)。

          該書中提供了幾個實用的方法:

          a:查詢窗口滾動條的位置

          //查詢窗口滾動條的位置

          functon getScrollOffsets(w){

          w = w || window;

          var sLeft,sTop;

          if(w.pageXOffset != null) {

          sLeft = w.pageXOffset;

          sTop = w.pageYOffset;

          return {x:sLeft,y:sTop};

          }

          b:查詢窗口的視口尺寸

          //查詢窗口的視口尺寸

          function getViewportSize(w){

          w = w || window;

          var cWidth,cHeight;

          if(w.innerWidth != null){

          cWidth = w.innerWidht;

          cHeight = w.innerHeight;

          return {w:cWidth,h:w.cHeight};

          }

          if(document.compatMode == "CSS1Compat"){

          cWidth = document.documentElement.clientWidth;

          cHeight = doument.documentElement.clientHeight;

          return {w:cWidth,h:w.cHeight};

          }else if(document.compatMode == "BackCompat"){

          cWidth = document.body.clientWidth;

          cHeight = doument.body.clientHeight;

          return {w:cWidth,h:w.cHeight};

          }

          }

          7.查詢元素的幾何尺寸

          getBoundingClientRect()方法

          具體見亂燉中的這篇文章:使用getBoundingClientRect()來獲取頁面元素的位置

          需要注意的是:getBoundingClientRect這個方法不同于getElementByTagName()這樣的DOM方法返回的結果是實時的,但是getBoundingClientRect卻不是,它類似于一種靜態快照。用戶滾動的時候,并不會去實時更新。

          getBoundingClientRect()與getClientRects()的區別?

          8.判斷元素在某點

          elementFromPoint()能夠用來判斷判定視口中的指定位置上有什么元素。

          傳遞X與Y坐標(使用視口或窗口坐標而不是文檔坐標)

          它有一個取代者,那就是target屬性。

          9.滾動

          Window的scrollBy()與scroll()和scrollTo()類似。

          只是scrollBy的參數是相對的,并在當前滾動條的偏移量上增加。

          如:

          scrollIntoView()的使用?

          offsetWidth()

          offsetHeight()

          offsetLeft()

          offsetTop()

          offsetParent()

          clientWidth()

          clientHeight()

          clientLeft()

          clientTop()

          scrollWidth()

          scrollHeight()

          scrollLeft()

          scrollTop()

          Client他就是Web瀏覽器客戶端-專指它定義的窗口或視口。

          10.HTML表單

          服務器端程序是基于表單提交動作的

          客戶端程序是基于事件的

          JavaScript的From。

          切圖網(qietu.com)是一家專門從事web前端開發的公司,專注we前端開發,關注用戶體驗,歡迎訂閱微信公眾號:qietuwang


          主站蜘蛛池模板: 国产一区二区女内射| 一区二区三区精品视频| 亚洲一区精品伊人久久伊人| 亚洲一区二区三区四区在线观看| 亚洲AV一区二区三区四区| 综合人妻久久一区二区精品| 精品国产一区二区二三区在线观看| 久久se精品动漫一区二区三区| 国产一区二区三区无码免费| 欲色aV无码一区二区人妻 | 国产伦精品一区二区三区女| 少妇无码AV无码一区| 男人的天堂精品国产一区| 成人精品视频一区二区三区尤物| 精品黑人一区二区三区| 老熟女五十路乱子交尾中出一区| 久久久91精品国产一区二区三区| 一区在线观看视频| 美女AV一区二区三区| 午夜视频在线观看一区| 国产精品久久久久久一区二区三区| 日本片免费观看一区二区| 一区二区三区视频在线观看| 亚洲电影一区二区| 性色av一区二区三区夜夜嗨| 国产精品毛片一区二区三区| 国精品无码一区二区三区左线| 亚洲线精品一区二区三区| 免费无码一区二区三区蜜桃| 亚洲熟女一区二区三区| 国产精品日本一区二区不卡视频| 亚洲综合无码AV一区二区| 国产熟女一区二区三区四区五区| 精品一区二区在线观看| 亚洲福利视频一区| 无码人妻精品一区二区蜜桃| 国产第一区二区三区在线观看| 日本中文一区二区三区亚洲| 97精品国产福利一区二区三区| 久久一本一区二区三区| 无码一区二区三区AV免费|