整合營銷服務商

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

          免費咨詢熱線:

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

          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>

          .vue 優點?

          輕量級框架:只關注視圖層,是一個構建數據的視圖集合,大小只有幾十 kb;

          簡單易學:國人開發,中文文檔,不存在語言障礙 ,易于理解和學習;

          雙向數據綁定:保留了 angular 的特點,在數據操作方面更為簡單;

          組件化:保留了 react 的優點,實現了 html 的封裝和重用,在構建單頁面應用方面有著獨特的優勢;

          視圖,數據,結構分離:使數據的更改更為簡單,不需要進行邏輯代碼的修改,只需要操作數據就能完成相關操作;

          虛擬 DOM:dom 操作是非常耗費性能的, 不再使用原生的 dom 操作節點,極大解放 dom操作,但具體操作的還是 dom 不過是換了另一種方式;

          運行速度更快: 相比較與 react 而言,同樣是操作虛擬 dom,就性能而言,vue 存在很大的優勢。

          2.vue 父組件向子組件傳遞數據?

          通過 props

          3.子組件像父組件傳遞事件?

          $emit 方法

          4.v-show 和 v-if 指令的共同點和不同點?

          共同點:都能控制元素的顯示和隱藏;

          不同點:實現本質方法不同,v-show 本質就是通過控制 css 中的 display 設置為 none,控制隱藏,只會編譯一次;v-if 是動態的向 DOM 樹內添加或者刪除 DOM 元素,若初始值為false,就不會編譯了。而且 v-if 不停的銷毀和創建比較消耗性能。

          總結:如果要頻繁切換某節點,使用 v-show(切換開銷比較小,初始開銷較大)。如果不需要頻繁切換某節點使用 v-if(初始渲染開銷較小,切換開銷比較大)。

          5. 如何讓 CSS 只在當前組件中起作用?

          在組件中的 style 前面加上 scoped

          6. 的作用是什么?

          keep-alive 是 Vue 內置的一個組件,可以使被包含的組件保留狀態,或避免重新渲染。

          7.如何獲取 dom?

          ref="domName" 用法:this.$refs.domName

          8.說出幾種 vue 當中的指令和它的用法?

          答:v-model 雙向數據綁定;

          v-for 循環;

          v-if v-show 顯示與隱藏;

          v-on 事件;v-once: 只綁定一次。

          9.vue-loader 是什么?使用它的用途有哪些?

          答:vue 文件的一個加載器,將 template/js/style 轉換成 js 模塊。

          用途:js 可以寫 es6、style 樣式可以 scss 或 less、template 可以加 jade 等

          10.為什么使用 key?

          答:需要使用 key 來給每個節點做一個唯一標識,Diff 算法就可以正確的識別此節點。作用主要是為了高效的更新虛擬 DOM。

          11.axios 及安裝?

          答:請求后臺資源的模塊。npm install axios --save 裝好,js 中使用 import 進來,然后. get 或. post。返回在. then 函數中如果成功,失敗則是在.catch 函數中。

          12.v-modal 的使用。

          答:v-model 用于表單數據的雙向綁定,其實它就是一個語法糖,這個背后就做了兩個操作:

          v-bind 綁定一個 value 屬性;

          v-on 指令給當前元素綁定 input 事件。

          13. 請說出 vue.cli 項目中 src 目錄每個文件夾和文件的用法?

          答:assets 文件夾是放靜態資源;components 是放組件;router 是定義路由相關的配置;app.vue 是一個應用主組件;main.js 是入口文件。

          14. 分別簡述 computed 和 watch 的使用場景

          答:computed:

          當一個屬性受多個屬性影響的時候就需要用到 computed最典型的栗子: 購物車商品結算的時候

          watch:

          當一條數據影響多條數據的時候就需要用 watch

          栗子:搜索數據

          15.v-on 可以監聽多個方法嗎?

          答:可以

          16.$nextTick 的使用

          答:當你修改了 data 的值然后馬上獲取這個 dom 元素的值,是不能獲取到更新后的值,你需要使用 $nextTick 這個回調,讓修改后的 data 值渲染更新到 dom 元素之后在獲取,才能成功。

          17.vue 組件中 data 為什么必須是一個函數?

          答:因為 JavaScript 的特性所導致,在 component 中,data 必須以函數的形式存在,不可以是對象。

          組建中的 data 寫成一個函數,數據以函數返回值的形式定義,這樣每次復用組件的時候,都會返回一份新的 data,相當于每個組件實例都有自己私有的數據空間,它們只負責各自維護的數據,不會造成混亂。而單純的寫成對象形式,就是所有的組件實例共用了一個 data,這樣改一個全都改了。

          18. 漸進式框架的理解

          答:主張最少;可以根據不同的需求選擇不同的層級;

          19.Vue 中雙向數據綁定是如何實現的?

          答:vue 雙向數據綁定是通過 數據劫持 結合 發布訂閱模式的方式來實現的, 也就是說數據和視圖同步,數據發生變化,視圖跟著變化,視圖變化,數據也隨之發生改變;

          核心:關于 VUE 雙向數據綁定,其核心是 Object.defineProperty() 方法。

          20. 單頁面應用和多頁面應用區別及優缺點

          答:單頁面應用(SPA),通俗一點說就是指只有一個主頁面的應用,瀏覽器一開始要加載所有必須的 html, js, css。所有的頁面內容都包含在這個所謂的主頁面中。但在寫的時候,還是會分開寫(頁面片段),然后在交互的時候由路由程序動態載入,單頁面的頁面跳轉,僅刷新局部資源。多應用于 pc 端。

          多頁面(MPA),就是指一個應用中有多個頁面,頁面跳轉時是整頁刷新

          單頁面的優點:

          用戶體驗好,快,內容的改變不需要重新加載整個頁面,基于這一點 spa 對服務器壓力較小;前后端分離;頁面效果會比較炫酷(比如切換頁面內容時的專場動畫)。

          單頁面缺點:

          不利于 seo;導航不可用,如果一定要導航需要自行實現前進、后退。(由于是單頁面不能用瀏覽器的前進后退功能,所以需要自己建立堆棧管理);初次加載時耗時多;頁面復雜度提高很多。

          21.v-if 和 v-for 的優先級

          答:當 v-if 與 v-for 一起使用時,v-for 具有比 v-if 更高的優先級,這意味著 v-if 將分別重復運行于每個 v-for 循環中。所以,不推薦 v-if 和 v-for 同時使用。

          如果 v-if 和 v-for 一起用的話,vue 中的的會自動提示 v-if 應該放到外層去。

          22.assets 和 static 的區別

          答:相同點:assets 和 static 兩個都是存放靜態資源文件。項目中所需要的資源文件圖片,字體圖標,樣式文件等都可以放在這兩個文件下,這是相同點

          不相同點:assets 中存放的靜態資源文件在項目打包時,也就是運行 npm run build 時會將assets 中放置的靜態資源文件進行打包上傳,所謂打包簡單點可以理解為壓縮體積,代碼格式化。而壓縮后的靜態資源文件最終也都會放置在 static 文件中跟著 index.html 一同上傳至服務器。static 中放置的靜態資源文件就不會要走打包壓縮格式化等流程,而是直接進入打包好的目錄,直接上傳至服務器。因為避免了壓縮直接進行上傳,在打包時會提高一定的效率,但是 static 中的資源文件由于沒有進行壓縮等操作,所以文件的體積也就相對于 assets 中打包后的文件提交較大點。在服務器中就會占據更大的空間。

          建議:將項目中 template 需要的樣式文件 js 文件等都可以放置在 assets 中,走打包這一流程。減少體積。而項目中引入的第三方的資源文件如 iconfoont.css 等文件可以放置在 static中,因為這些引入的第三方文件已經經過處理,我們不再需要處理,直接上傳。

          23.vue 常用的修飾符

          答:.stop:等同于 JavaScript 中的 event.stopPropagation(),防止事件冒泡;

          .prevent:等同于 JavaScript 中的 event.preventDefault(),防止執行預設的行為(如果事件可取消,則取消該事件,而不停止事件的進一步傳播);.capture:與事件冒泡的方向相反,事件捕獲由外到內;

          .self:只會觸發自己范圍內的事件,不包含子元素;

          .once:只會觸發一次。

          24.vue 的兩個核心點

          答:數據驅動、組件系統

          數據驅動:ViewModel,保證數據和視圖的一致性。

          組件系統:應用類 UI 可以看作全部是由組件樹構成的。

          25.vue 和 jQuery 的區別

          答:jQuery 是使用選擇器($)選取 DOM 對象,對其進行賦值、取值、事件綁定等操作,其實和原生的 HTML 的區別只在于可以更方便的選取和操作 DOM 對象,而數據和界面是在一起的。比如需要獲取 label 標簽的內容:$("lable").val();, 它還是依賴 DOM 元素的值。

          Vue 則是通過 Vue 對象將數據和 View 完全分離開來了。對數據進行操作不再需要引用相應的DOM 對象,可以說數據和 View 是分離的,他們通過 Vue 對象這個 vm 實現相互的綁定。這就是傳說中的 MVVM。

          26. 引進組件的步驟

          答: 在 template 中引入組件;

          在 script 的第一行用 import 引入路徑;

          用 component 中寫上組件名稱。

          27.delete 和 Vue.delete 刪除數組的區別

          答:delete 只是被刪除的元素變成了 empty/undefined 其他的元素的鍵值還是不變。

          Vue.delete 直接刪除了數組 改變了數組的鍵值。

          28.SPA 首屏加載慢如何解決

          答:安裝動態懶加載所需插件;使用 CDN 資源。

          29.Vue-router 跳轉和 location.href 有什么區別

          答:使用 location.href='/url'來跳轉,簡單方便,但是刷新了頁面;

          使用 history.pushState('/url'),無刷新頁面,靜態跳轉;

          引進 router,然后使用 router.push('/url') 來跳轉,使用了 diff 算法,實現了按需加載,減少了 dom 的消耗。

          其實使用 router 跳轉和使用 history.pushState() 沒什么差別的,因為 vue-router 就是用了history.pushState(),尤其是在 history

          30. vue slot

          答:簡單來說,假如父組件需要在子組件內放一些 DOM,那么這些 DOM 是顯示、不顯示、在哪個地方顯示、如何顯示,就是 slot 分發負責的活。

          31. 你們 vue 項目是打包了一個 js 文件,一個 css 文件,還是有多個文件?

          答:根據 vue-cli 腳手架規范,一個 js 文件,一個 CSS 文件。

          32.Vue 里面 router-link 在電腦上有用,在安卓上沒反應怎么解決?

          答:Vue 路由在 Android 機上有問題,babel 問題,安裝 babel polypill 插件解決。

          33.Vue2 中注冊在 router-link 上事件無效解決方法

          答: 使用 @click.native。原因:router-link 會阻止 click 事件,.native 指直接監聽一個原生事件。

          34.RouterLink 在 IE 和 Firefox 中不起作用(路由不跳轉)的問題

          答: 方法一:只用 a 標簽,不適用 button 標簽;方法二:使用 button 標簽和Router.navigate 方法

          35.axios 的特點有哪些

          答:從瀏覽器中創建 XMLHttpRequests;

          node.js 創建 http 請求;

          支持 Promise API;

          攔截請求和響應;

          轉換請求數據和響應數據;

          取消請求;

          自動換成 json。

          axios 中的發送字段的參數是 data 跟 params 兩個,兩者的區別在于 params 是跟請求地址一起發送的,data 的作為一個請求體進行發送params 一般適用于 get 請求,data 一般適用于 post put 請求。

          36. 請說下封裝 vue 組件的過程?

          答:1. 建立組件的模板,先把架子搭起來,寫寫樣式,考慮好組件的基本邏輯。(os:思考 1 小時,碼碼 10 分鐘,程序猿的準則。)

          . 準備好組件的數據輸入。即分析好邏輯,定好 props 里面的數據、類型。

          . 準備好組件的數據輸出。即根據組件邏輯,做好要暴露出來的方法。

          . 封裝完畢了,直接調用即可

          37.params 和 query 的區別

          答:用法:query 要用 path 來引入,params 要用 name 來引入,接收參數都是類似的,分別是 this.$route.query.name 和 this.$route.params.name。

          url 地址顯示:query 更加類似于我們 ajax 中 get 傳參,params 則類似于 post,說的再簡單一點,前者在瀏覽器地址欄中顯示參數,后者則不顯示

          注意點:query 刷新不會丟失 query 里面的數據

          params 刷新 會 丟失 params 里面的數據。

          38.vue 初始化頁面閃動問題

          答:使用 vue 開發時,在 vue 初始化之前,由于 div 是不歸 vue 管的,所以我們寫的代碼在還沒有解析的情況下會容易出現花屏現象,看到類似于 {{message}} 的字樣,雖然一般情況下這個時間很短暫,但是我們還是有必要讓解決這個問題的。

          首先:在 css 里加上 [v-cloak] {

          display: none;

          }。

          如果沒有徹底解決問題,則在根元素加上 style="display: none;" :style="

          {display:'block'}"

          39.vue 更新數組時觸發視圖更新的方法

          答: push();pop();shift();unshift();splice(); sort();reverse()

          40.vue 常用的 UI 組件庫

          答:Mint UI,element,VUX

          41. Vue的生命周期?

          beforeCreate 、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed(創建、掛載、更新、卸載)掛載中可以操作DOM,創建中不能操作DOM;常用掛載或者創建生命周期就行了

          42.虛擬DOM和DIFF算法?

          將DOM抽象為虛擬DOM, 然后通過新舊虛擬DOM 這兩個對象的差異(Diff算法),最終只把變化的部分重新渲染,提高渲染效率的過程;

          diff 是通過JS層面的計算,返回一個patch對象,即補丁對象,在通過特定的操作解析patch對象,完成頁面的重新渲染

          43.vue2和vue3原理?

          1. vue2和vue3雙向數據綁定原理發生了改變

          vue2 的雙向數據綁定是利用ES5 的一個 API Object.definePropert()對數據進行劫持 結合 發布訂閱模式的方式來實現的。

          vue3 中使用了 es6 的 ProxyAPI 對數據代理。

          相比于vue2.x,使用proxy的優勢如下

          defineProperty只能監聽某個屬性,不能對全對象監聽

          可以省去for in、閉包等內容來提升效率(直接綁定整個對象即可)

          可以監聽數組,不用再去單獨的對數組做特異性操作 vue3.x可以檢測到數組內部數據的變化

          2、默認進行懶觀察(lazy observation)

          在 2.x 版本里,不管數據多大,都會在一開始就為其創建觀察者。當數據很大時,這可能會在頁面載入時造成明顯的性能壓力。3.x 版本,只會對「被用于渲染初始可見部分的數據」創建觀察者,而且 3.x 的觀察者更高效。

          3、更精準的變更通知

          比例來說:2.x 版本中,使用 Vue.set 來給對象新增一個屬性時,這個對象的所有 watcher 都會重新運行;3.x 版本中,只有依賴那個屬性的 watcher 才會重新運行。

          4vue3新加入了TypeScript以及PWA的支持

          5、vue2和vue3組件發送改變

          44.生命周期鉤子的一些使用方法:

          1.beforecreate:可以在加個loading事件,在加載實例是觸發

          2.created:初始化完成時的事件寫在這里,如在這結束loading事件,異步請求也適宜在這里調用

          3.mounted:掛載元素,獲取到dom節點

          4.updated:如果對數據統一處理,在這里寫上相應函數

          5.beforeDestroy:可以一個確認停止事件的確認框

          6.nextTick:更新數據后立即操作dom

          45.開發中常用的指令有哪些?

          v-model:一般用在表達輸入,很輕松的實現表單控件和數據的雙向綁定

          v-html:更新元素的innerHTML

          v-show與v-if:條件渲染,注意二者區別

          v-on:click:可以簡寫為@click,@綁定一個事件。如果事件觸發了,就可以指定事件的處理函數

          v-for:基于源數據多次渲染元素或模板

          v-bind:title=”msg”簡寫:title="msg"

          Query選擇器:

          jQuery選擇器類似于CSS選擇器,用來選取網頁中的元素;示例:

          $("h3").css("background","#09F");

          注釋:獲取并設置網頁中所有<h3>元素的背景

          “h3”為選擇器語法,必須放在$()中

          $(“h3”)返回jQuery對象

          .css()是為jQuery對象設置樣式的方法

          1、基本選擇器(標簽選擇器、類選擇器、ID選擇器、并集選擇器和全局選擇器)

          

          2、層次選擇器(后代選擇器、子選擇器、相鄰元素選擇器、同輩元素選擇器)——層次選擇器通過DOM 元素之間的層次關系來獲取元素

          3、屬性選擇器:屬性選擇器通過HTML元素的屬性來選擇元素

          $("#news a[class]").css("background","#c9cbcb");

          $("#news a[class='hot']").css("background","#c9cbcb");

          $("#news a[href$='html']").css("background","#c9cbcb");

          (屬性選擇器可以根據是否包含某屬性來選取元素)


          4、基本過濾選擇器

          :eq(index)選取索引等于index的元素(index從0開始)$("li:eq(1)" )選取索引等于1的<li>元素

          :gt(index)選取索引大于index的元素(index從0開始)$(" li:gt(1)" )選取索引大于1的<li>元素(注:大于1,不包括1)

          :lt(index)選取索引小于index的元素(index從0開始)$(“li:lt(1)” )選取索引小于1的<li>元素(注:小于1,不包括1)

          :header選取所有標題元素,如h1~h6$(":header" )選取網頁中所有標題元素

          :focus選取當前獲取焦點的元素$(":focus" )選取當前獲取焦點的元素

          :animated選擇所有動畫$(":animated" )選取當前所有動畫元素


          6、可見性過濾選擇器

          :visible選取所有可見的元素$(":visible" )選取所有可見的元素

          :hidden選取所有隱藏的元素$(":hidden" ) 選取所有隱藏的元素

          $("p:hidden").show();

          $("p:visible").hide();


          制作示例:

          <!DOCTYPE html>

          <html lang="en">


          <head>

          <meta charset="UTF-8">

          <meta http-equiv="X-UA-Compatible" content="IE=edge">

          <meta name="viewport" content="width=device-width, initial-scale=1.0">

          <title>制作全網熱播視頻頁面</title>

          </head>

          <style>

          * {

          margin: 0;

          padding: 0;

          font-family: "微軟雅黑";

          font-size: 14px;

          }


          ul,

          ol,

          li {

          list-style: none;

          }


          #play {

          margin: 0 auto;

          width: 680px;

          overflow: hidden;

          }


          #play h1 {

          line-height: 40px;

          font-size: 22px;

          }


          #play ul>li {

          float: left;

          width: 220px;

          height: 308px;

          overflow: hidden;

          position: relative;

          }


          #play ol li {

          height: 37px;

          padding: 0px 0px 0 10px;

          position: relative;

          }


          #play ul>li>span {

          display: block;

          position: absolute;

          left: 0;

          bottom: 0;

          font-size: 25px;

          color: #ffffff;

          font-weight: bold;

          padding: 5px 10px;

          z-index: 100;

          }


          #play ul>li>p {

          position: absolute;

          left: 50px;

          bottom: 10px;

          color: #ffffff;

          }


          #play ol {

          padding-top: 13px;

          padding-right: 5px;

          }


          #play ol li span {

          display: inline-block;

          color: #ffffff;

          margin-right: 5px;

          width: 20px;

          height: 20px;

          font-size: 12px;

          font-weight: bold;

          text-align: center;

          }


          #play ol li p {

          position: absolute;

          right: 0;

          top: 3px;

          color: #ffffff;

          background: #f0a30f;

          padding: 0 8px;

          font-size: 12px;

          display: none;

          }

          </style>

          <script src="js/jquery-2.1.4.min.js"></script>

          <body>

          <section id="play">

          <h1>全網熱播視頻</h1>

          <ul>

          <li><img src="img/flv01.jpg">

          <p>昊花夢</p><span>1</span>

          </li>

          <li><img src="img/flv02.jpg">

          <p>好先生</p><span>2</span>

          </li>

          <li>

          <ol>

          <li><span>3</span>三八線<p>加入看單</p>

          </li>

          <li><span>4</span>吉詳天寶<p>加入看單</p>

          </li>

          <li><span>5</span>親愛的翻譯官<p>加入看單</p>

          </li>

          <li><span>6</span>仙劍云之凡<p>加入看單</p>

          </li>

          <li><span>7</span>權力的游戲第五季<p>加入看單</p>

          </li>

          <li><span>8</span>瑯琊榜<p>加入看單</p>

          </li>

          <li><span>9</span>那年青春我們正好<p>加入看單</p>

          </li>

          <li><span>10</span>鄉村受情8(上)<p>加入看單</p>

          </li>

          </ol>

          </li>

          </ul>

          </section>

          </body>

          </html>

          <script>

          $(function () {

          // 設置圖片與標題與文字內容邊距

          $("#play ul>li:not(li:last)").css("margin-right","10px");


          // 設置右側列表背景顏色

          $("ul>li:last").css("background-color","#f0f0f0");


          // 設置數字的背景顏色

          $("ul>li>span").css("background-color","#f0a30f");

          $("ul>li>ol>li>span:first").css("background-color","#f0a30f");

          $("ul>li>ol>li:not(li:eq(0)) span").css("background-color","#a4a3a3");

          // 設置圖標

          $("ul>li>ol>li:lt(5)").css("background","url(../sixClass/img/orange.jpg) right -4px no-repeat");

          $("ul>li>ol>li:eq(1)").css("background","url(../sixClass/img/green.jpg) right -4px no-repeat");

          $("ul>li>ol>li:gt(4)").css("background","url(../sixClass/img/green.jpg) right -4px no-repeat");

          // 設置右邊列表隱藏、顯示效果

          $("ul>li>ol>li").mouseover(function(){

          $(this).find(":hidden").show();

          })

          $("ul>li>ol>li").mouseout(function(){

          $("#play ol>li p:visible").hide();

          })


          })


          </script>


          主站蜘蛛池模板: 在线播放国产一区二区三区| 夜色福利一区二区三区| 欧美亚洲精品一区二区| 久久中文字幕一区二区 | 国产在线视频一区| 99精品国产一区二区三区2021| 国产在线精品一区二区中文| 国产一区二区视频在线播放| 无码人妻一区二区三区免费视频 | 少妇一晚三次一区二区三区| 97精品国产福利一区二区三区| 午夜DV内射一区区| 久久精品国产第一区二区三区| 成人精品一区二区三区不卡免费看 | 国产波霸爆乳一区二区| 乱码人妻一区二区三区| 福利在线一区二区| 人妻天天爽夜夜爽一区二区| 精品一区二区三区四区电影 | 亚州日本乱码一区二区三区| 亚洲综合av一区二区三区不卡| 久久无码人妻精品一区二区三区| 国产精华液一区二区区别大吗| 亚洲欧美一区二区三区日产| 国产一区二区三区高清在线观看| 国产精品一区二区在线观看| 亚洲AV无码一区二区乱子伦| 精品国产一区二区三区免费| 99久久精品费精品国产一区二区| 成人精品一区二区不卡视频| 国产成人精品一区二三区熟女| 无码人妻精品一区二区三区久久久| 亚洲AV成人精品日韩一区18p| 久久se精品一区二区影院| 狠狠色成人一区二区三区| 亚洲综合一区二区精品导航| 精品国产一区二区三区| 国产精品99无码一区二区| 亚洲一区二区三区免费观看| 精品久久久久久无码中文字幕一区| 国产一区二区在线观看视频|