Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 中文字幕在线观看免费视频,欧美在线影院,在线观看亚洲免费

          整合營銷服務商

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

          免費咨詢熱線:

          04《Vue 入門教程》Vue 常用指令

          04《Vue 入門教程》Vue 常用指令

          . 簡介

          本小節我們將介紹在 Vue 項目中常用的一些指令。包括每個指令的含義以及如何使用他們。我們在日常項目中會大量地使用指令,指令是 Vue 中相對基礎和簡單的知識點。同學們只需要了解每個指令的含義,對案例中的代碼反復練習就可以熟練掌握。

          2. 木子解釋

          指令 (Directives) 是帶有 v- 前綴的特殊 attribute。指令 attribute 的值預期是單個 JavaScript 表達式 (v-for 是例外情況,稍后我們再討論)。指令的職責是,當表達式的值改變時,將其產生的連帶影響,響應式地作用于 DOM。 — 官方定義

          Vue 指令是帶有 v- 前綴的特殊 attribute,它的值是一個表達式,指令幫助我們操作 DOM,當表達式的值發生改變時更新渲染 DOM。

          3. 常用指令介紹

          接下來我們將逐個介紹各個指令的含義和使用方式。

          3.1 v-text

          v-text是元素的 InnerText 屬性,它的作用和之前我們使用的 {{}} 一樣,用于數據綁定:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app"> 
              <div v-text="message"></div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script>
           var vm=new Vue({
              el: '#app',
            data: {
              message: "Hello!"
            },
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 代碼第 2 行,我們使用了 v-text 指令,它綁定 message 值,會將 message 的值動態插入 <div> 標簽內。

          3.2 v-html

          v-html是元素的 innerHTML,它用于綁定一段 html 標簽:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div v-html="message"></div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script>
           var vm=new Vue({
              el: '#app',
              data: {
                  message: "<div>您好,我是小慕!</div>",
              }
            })
          </script>
          </html>
          
          123456789101112131415161718192021222324

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 代碼第 2 行,我們使用了 v-html 指令,它綁定 message 值,會將 html 元素插入 <div> 標簽內。

          3.3 v-bind

          v-bind用于給元素的屬性賦值。v-bind后面是 :屬性名=[變量名]。例如:v-bind:title="message"

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div v-bind:title="title">
                鼠標懸停查看消息!
              </div>
              <div>
                <a v-bind:href="href">慕課網</a>
              </div>
              <div>
                <img v-bind:src="src"/>
              </div>
              <div>
                <button v-bind:disabled="disabled">禁用按鈕</button>
              </div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
            var vm=new Vue({
              el: '#app',
              data: {
                  title: "您好,我是小慕,歡迎來到慕課網!希望你可以在慕課網學到更多的東西!",
                href: 'https://www.imooc.com/',
                src: 'http://img2.mukewang.com/szimg/5df1deec09ba554712000676-360-202.png',
                disabled: true
              }
            })
          </script>
          </html>
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 代碼第 2 行,我們使用了 v-bind 指令給 div 標簽的 title 屬性賦值。 在 HTML 代碼第 6 行,我們使用了 v-bind 指令給 a 標簽的 href 屬性賦值。 在 HTML 代碼第 9 行,我們使用了 v-bind 指令給 img 標簽的 src 屬性賦值。 在 HTML 代碼第 12 行,我們使用了 v-bind 指令給 bitton 標簽的 disabled 屬性賦值。

          vue 還提供了指令 v-bind 的簡寫方式,可以直接通過:屬性名的方式。例如在上述例子中我們可以改寫成:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div :title="title">
                鼠標懸停查看消息!
              </div>
              <div>
                <a :href="href">慕課網</a>
              </div>
              <div>
                <img :src="src"/>
              </div>
              <div>
                <button :disabled="disabled">禁用按鈕</button>
              </div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
            var vm=new Vue({
              el: '#app',
              data: {
                  title: "您好,我是小慕,歡迎來到慕課網!希望你可以在慕課網學到更多的東西!",
                href: 'https://www.imooc.com/',
                src: 'http://img2.mukewang.com/szimg/5df1deec09ba554712000676-360-202.png',
                disabled: true
              }
            })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          3.4 v-for

          v-for 用于列表的循環渲染。基本語法:v-for="item in data",data 可以是數組或者對象,接下來我們介紹對兩種數據類型的循環。

          3.4.1 v-for 對數組的循環渲染

          當我們對數組進行循環的時候,item 表示數組中具體的某一項:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <ul>
                <li v-for="item in music">{{item.name}}</li>
              </ul>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
            el: '#app',
            data() {
              return {
                // 要循環的數組
                music: [
                  { name: '青花瓷' },
                  { name: '陽光總在風雨后' },
                  { name: '十年' }
                ]
              }
            }
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 JS 代碼第 6-10 行,我們定義了數組 music。 在 HTML 第 3 行,我們使用 v-for 對數組進行遍歷,循環輸出<li></li>,并在每次循環的時候將 name 插入到 <li> 標簽內。 頁面展現結果:

          3.4.2 v-for 對象的循環渲染

          當我們對數組進行循環的時候,item 表示對象中某一屬性的值:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <ul>
                <li v-for="item in obj">{{item}}</li>
              </ul>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
            el: '#app',
            data() {
              return {
                obj: {
                  name: '句號',
                  age: 18,
                  sex: '男'
                }
              }
            }
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 JS 代碼第 5-9 行,我們定義了對象 obj; 在 HTML 第 3 行,我們使用 v-for 對數組進行遍歷,循環輸出<li></li>,并在每次循環的時候將屬性的值插入到 <li> 標簽內。

          3.5 v-if和v-show

          vue提供了v-ifv-show兩個指令來控制頁面元素的顯示和隱藏。我們先通過一段代碼來看一下使用兩個指令各有什么效果:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div>
                <button>我是添加按鈕,我一直在</button>
              </div>
              <div>
                <button id="show" v-show="deleteButton">我是刪除按鈕,我通過v-show控制顯隱</button>
                <button v-on:click="deleteButton=true">設置顯示</button>
                <button v-on:click="deleteButton=false">設置隱藏</button>
              </div>
              <div>
                <button id="if" v-if="editButton">我是修改按鈕,我通過v-if控制顯隱</button>
                <button v-on:click="editButton=true">設置顯示</button>
                <button v-on:click="editButton=false">設置隱藏</button>
              </div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
             el: '#app',
             data() {
               return {
                 deleteButton: true,
                 editButton: true
               }
             }
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 中我們設置了兩個按鈕:1. id 為 show 的 button 通過 v-show 控制顯隱。2. id 為 if 的按鈕通過 v-if控制顯隱。通過點擊事件修改綁定的值。

          細心的同學可能會想,既然v-ifv-show都能實現元素的顯示隱藏,那為什么需要提供兩個指令呢?在回答這個問題之前,我們先看一下剛剛寫的案例頁面。打開瀏覽器開發者工具,通過元素審查找到刪除按鈕和修改的DOM元素。

          接下來我們通過點擊隱藏,將兩個按鈕設置為隱藏狀態,頁面效果如下:

          從圖中可以發現:通過v-show設置狀態的按鈕元素還在頁面中,只是通過樣式display:none設置隱藏。而通過v-if設置狀態的按鈕元素從頁面中刪除了?,F在同學們是不是已經知道v-showv-if的區別了呢?

          v-if:根據表達式的值在 DOM 中生成或移除一個元素。

          v-show:根據表達式的值通過樣式的改變來顯示或者隱藏 HTML 元素。

          3.6 v-if、v-else-if、v-else

          上面我們已經了解了v-if的使用方法。事實上,v-if的條件渲染和JavaScript條件判斷語句中的if、else、else if非常類似。

          3.6.1 使用 v-else 指令來表示 v-if 的 “else 塊”:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div v-if="Math.random() > 0.5">
                你好,慕課網!
              </div>
              <div v-else>
                Hello, imooc!
              </div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
             el: '#app'
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 代碼中,當隨機數大于 0.5 的時候會顯示中文的“你好,慕課網!”,否則,顯示英文的 “Hello, imooc!”。

          3.6.2 v-else-if,充當 v-if 的“else-if 塊”,可以連續使用:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div v-if="number===1">
                A
              </div>
              <div v-else-if="number===2">
                B
              </div>
              <div v-else>
               C
              </div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
             el: '#app',
             data() {
               return {
                 number: 1
               }
             }
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          在 HTML 代碼中,我們通過判斷 number 的值來控制元素的顯示隱藏。首先判斷 number 是否為 1 ,如果是顯示 A,如果不是,則判斷 number 是否為 2,如果是顯示 B,否則顯示 C。

          3.7 v-on

          有時候,我們需要給元素綁定事件,vue 中提供了指令 v-on 來進行事件的綁定。用法:v-on:事件名="方法",例如:v-on:click=“alert”。

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <button v-on:click="hello">hello</button>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
            el: '#app',
            data: {},
            methods: {
              hello() {
                  alert('hello')
              }
            }
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 代碼第 2 行,我們給按鈕定義來點擊事件,并在點擊的時候觸發 methods 中的 hello 方法。

          v-bind一樣vue同樣給v-on提供了簡寫方式,只需要通過@事件類型的方式就可以了。例如:@click="hello"。

          當然,v-on不僅只有click一種事件,還有 v-on:keyup.enter、v-on:keyup.page-down、v-on:submit等。

          更多用法我們在接下來的章節中繼續深入。

          3.8 v-model

          在原生 Javascript 的項目中,要獲取用戶輸入框輸入的內容,需要通過DOM對象的方式。在Vue項目中則不用這么繁瑣,因為vue通過了指令v-model來實現數據的雙向綁定。我們通過下面一段代碼來學習一下:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div>
                <label>年齡:</label>
                <input v-model="age"/>
              </div>
              <div>當前輸入的年齡是: {{age}}</div>
              <button @click="add">加一歲</button>
              <button @click="alertYear">彈出年齡</button>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
              el: '#app',
            data: {
              age: 10
            },
            methods: {
              add(){
                  this.age=this.age + 1;
              },
              alertYear() {
                  alert(this.age)
              }
            }
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 上述代碼中,我們通過給input元素綁定指令v-model, 使得輸入框中的數據 和 data中的age形成雙向綁定。這樣當用戶在輸入框內輸入值的時候age也會同時改變。同樣,當我們在methods中通過add方法修改age的值時,輸入框中的值也會同時改變。

          3.9 v-pre

          該指令會跳過所在元素和它的子元素的編譯過程,也就是把這個節點及其子節點當作一個靜態節點來處理,例如:

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div v-pre>當前輸入的年齡是: {{age}}</div>
              <div>當前輸入的年齡是: {{age}}</div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
              el: '#app',
            data: {
              age: 10
            },
            
          })
          </script>
          </html>
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 代碼第 2 行,我們給 div 添加了 v-pre 指令,所以 插值表達式 {{age}} 并不會生效。同樣,第三行的 div 沒有添加 v-pre 指令,能正常編譯顯示。

          其渲染結果為:

          當前輸入的年齡是: {{age}}
          當前輸入的年齡是: 10
          

          3.10 v-once

          模板只會在第一次更新時顯示數據,此后再次更新該 DOM 里面引用的數據時,內容不會自動更新。

          實例演示

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>Document</title>
          </head>
          <body>
            <div id="app">
              <div>
                <label>年齡:</label>
                <input v-model="age"/>
              </div>
              <div v-once>當前輸入的年齡是: {{age}}</div>
              <div>當前輸入的年齡是: {{age}}</div>
            </div>
          </body>
          <script src="https://unpkg.com/vue/dist/vue.js"></script>
          <script type="text/javascript">
          var vm=new Vue({
              el: '#app',
            data: {
              age: 10
            }
          })
          </script>
          </html>
          
          

          "運行案例" 可查看在線運行效果

          代碼解釋: 在 HTML 代碼第 6 行,我們給 div 添加了 v-once 指令,當輸入框內的數據發生改變時,被v-once作用的 div 并不會實時更新數據。

          4. 小結

          本小節我們學習了 Vue 中的一些常用的指令,主要有以下知識點:

          • v-text、v-html 用于頁面渲染;
          • v-show、v-if、v-else-if、v-else 條件渲染指令;
          • v-model 用于數據雙向綁定;
          • v-on 用于事件綁定;
          • v-for 用于循環。

          人人都是產品經理【起點學院】,BAT實戰派產品總監手把手系統帶你學產品、學運營。

          用戶體驗在網站建設過程中的被重視程度,在近些年得到越來越大的提升。很多從事網頁設計的朋友都會在設計網頁的時候考慮到用戶體驗這一關鍵因素,因為不重視用戶體驗的網站,很難在當下愈發成熟的互聯網環境中得到用戶的青睞與肯定。在文章中心內容開始前,我們來看一組圖片:

          (2003年的騰訊網首頁)

          (2003年的新浪網首頁)

          (2003年的搜狐網首頁)

          (2003年的百度首頁)

          (2003年的淘寶網首頁)

          十二年前的網站都是這般的,簡單的table布局,可能現在那些抱著ipad上網的00后小朋友很難想象會有這么丑的網頁吧。但現在div+css布局方便了我們設計很多精美的網頁,界面上的美化從很大程度上提升了網站的用戶體驗。不過,除了界面呢?影響用戶體驗的因素還會有哪些?

          正文開始,我們從用戶體驗的角度聊聊,讓訪客反感的12種網頁設計。

          總有那么些網頁,讓我們一打開就迫不及待想要離開的。留不住用戶的網站,花再多的心思引流也都是徒勞。想要增加網站的用戶粘性,提升網站用戶體驗,這12個因素千萬要注意了。

          來,從最糟糕的開始說吧……

          影響用戶體驗的網頁設計因素一:漫長的加載時間;

          這是本人認為最糟糕的一個因素,網頁加載時間太漫長。要是在十二年前,打開一個網頁要一兩分鐘的話可能大家愿意忍受,畢竟這是很正常一件事;但在十二年后的今天,如果還要我花費一兩分鐘去等待你的網頁加載,我是絕對沒這個耐心忍受這一切的,不知道你們是不是贊同。

          因此,提升網頁加載速度,是提升用戶體驗的一個非常重要的因素。影響網頁加載速度的因素也有很多,袁程旭在之前的文章中多次有提及這方面知識。你可以買一臺配置好點兒的服務器,當然不建議買港臺或海外的,部分地區的訪客瀏覽網頁時加載會很吃力;除了服務器以外,網站程序的選擇也很有講究,不過這不是一兩句話可以說完的。另外,諸如網頁延遲加載(點擊閱讀),或圖片異步延遲加載(點擊閱讀)之類的技術使用可以很好地提升網頁加載速度,感興趣的朋友可自行了解。

          影響用戶體驗的網頁設計因素二:自動播放的聲音;

          說實話,這樣的網站經常會嚇到我,尤其是在半夜的時候。請試想一下,你打開一個網頁,突然就聽到了一些亂七八糟的聲音,沒有心理準備的話是不是會被這東西給嚇到?這樣的網頁設計常見于那些搞銷售類的頁面,一進入網頁就自動播放音樂或者廣告宣傳,實在讓人抓狂。

          玩QQ空間的時候感覺設置一個自動播放的背景音樂很酷炫,但設計網頁的時候如果采用自動播放聲音的設計其實是很影響用戶體驗的。你大可以在網頁某處放置音頻或視頻文件,讓用戶自主選擇是否打開播放,我想這樣更尊重用戶選擇的設計才會更受用戶歡迎吧?

          影響用戶體驗的網頁設計因素三:彈窗 & 廣告;

          可能現在有很多攔截廣告的插件,但這并不影響我們對廣告的厭惡。最討厭的廣告形式就是那些永無止境的彈窗了,這是對用戶非常不友好的一種廣告形式。當然,彈窗這一讓人反感的東西也不一定表現在廣告上,很多企業的官網經常彈出“點擊咨詢”類窗口,關閉了沒幾秒又自動打開,這是很讓用戶反感的一個設計。信息還沒瀏覽多少,你就不斷要我點擊咨詢,我只好退出你的網站了。

          再說說廣告,最惡心的廣告形式是那些偽裝著騙你去點擊的,常見于那些下載站,你經常不知道哪個才是正確的下載鏈接,是不是經常就下載了一些莫名其妙的軟件下來?袁程旭并不是說網站不能投放廣告,是希望大家在用戶體驗的考慮前提下合理設計廣告位,比如代碼君網站的廣告位分布。

          影響用戶體驗的網頁設計因素四:關鍵信息不在顯眼位置;

          設計網頁的時候,你必須要知道用戶第一眼看到網頁時,視線的集中點會落在哪里??赡苣阏J為網頁設計只是往頁面上堆砌信息那般簡單,但其實信息的分配布局是很有講究的。頁面的關鍵信息必須要在顯眼的位置突出展現,才能更方便地被用戶獲取,不然的話其實很影響用戶體驗。

          就這么說吧,之前我瀏覽過一個主題酒店的網頁,但找了半天沒發現在哪里查看房型、價錢這些用戶比較關心的信息和資訊,反倒是其企業文化介紹、發展歷程這些并不太重要的信息,擺在了非常明顯的位置。這樣的設計是反人類的,在顯眼位置放置用戶關心的關鍵信息,才是正確的設計。

          影響用戶體驗的網頁設計因素五:過早地要求注冊;

          我去一個網站尋找一張設計圖,你要我注冊會員才能查看,那我肯定不干了。這些過早地要求注冊的網站也是很讓用戶反感的,除非你是那種什么真愛、相親類的網站。比如百合網這類,你要我注冊了才有權限查看更多會員的信息,為了找到真愛那我也認了。但如果只是下載一張圖片或者一首歌就要求我注冊的話,哪兒有那閑工夫理會你,網上的免費資源多得是。

          從用戶體驗的角度出發,就應該給予用戶更多的自主選擇權。比如我一部分資源是免費對外提供給所有用戶瀏覽或下載的,但還有很多精品資源是會員才有權限瀏覽和下載,只要資源足夠優秀還怕吸引不到用戶來注冊么?別強迫用戶去做他們不喜歡做的事情,不然很容易遭受用戶反感。

          影響用戶體驗的網頁設計因素六:糟糕的導航設計;

          網站的導航欄往往是為了更好地引導用戶,如果導航欄設計得太過糟糕的話,還怎么能起到引導用戶的作用呢?設計網站導航欄的時候,一般要遵循鼠標的最短路徑原則,還要盡可能的方便用戶去到他們想要去的頁面。網站設計的每一點一滴其實都有講究,要不然怎么配得上設計二字?

          還是以那個主題酒店的網頁為例,試想一下,如果你現在迫切需要預定一個房間,但找了半天沒找到訂房的鏈接入口,內心會不會很崩潰?一邊是即將噴涌而出的荷爾蒙,一邊是對這糟糕網頁體驗上的各種差評,兩者無論哪一個都夠讓你瘋狂的,內心難免會大罵道:這都TM什么網站?。?/p>

          影響用戶體驗的網頁設計因素七:Flash(特別是主頁只有Flash展現);

          在之前的SEO類文章中,袁程旭多次提到,Flash的應用很不利于網站SEO。目前為止,搜索引擎爬蟲還不能夠很好地爬取Flash文件內容,對網站的收錄會有一定的影響。而網站主頁恰巧是SEO過程中非常值得重視的一個頁面,如果只有一個Flash文件在網站主頁展現的話,那就未免太搞笑了。

          撇去SEO的因素不談,如果你進入一個網站主頁發現只有一個Flash文件展現,會不會有種摸不著頭腦的感覺?一般這樣的網頁設計也多見于那些產品推廣、企業推廣類站點,而展現的Flash文件內容多半是對產品或企業進行介紹的。這是一種強硬推廣手法,很容易讓用戶產生反抗的逆反心理。

          影響用戶體驗的網頁設計因素八:色彩搭配太過耀眼;

          網頁色彩搭配給用戶視覺上的沖擊是非常強的,袁程旭個人還是比較喜歡采用那些簡約樸素的色彩搭配方式來設計網站。我可不喜歡進入一個網站看到五顏六色的模塊,色彩搭配太過耀眼會讓眼睛很容易感到疲倦。如果你網站的文字信息比較多,就更不能采用太鮮艷的色彩了,不然用戶視覺疲勞了還怎么有心思去閱讀資訊呢?多參考一下大型互聯網公司的網頁配色,或許值得你去學習模仿。

          袁程旭強烈建議各位朋友,設計網頁時要保證頁面的主色調搭配不超過三種,除非你有特殊的需求而不得不將網頁設計成萬花筒那般。各位可以閱讀《三分鐘帶你快速入門極簡色彩學》這篇文章來學習一些基本的色彩學知識,我想會非常有利于你在網頁設計過程中進行合理配色。

          影響用戶體驗的網頁設計因素九:table布局 or 界面過丑;

          正如文章開頭所言,現在的網頁之所以可以設計得比十二年前精美,是因為div+css的布局結構能夠營造出很多table布局實現不了的效果。如果你還沉迷于table布局的網頁中無法自拔的話,那么請原諒我實在看不下去,只好默默退出你的網站了。table布局的網頁非常難看,總之我是忍受夠了。

          不過,就算是div+css布局,竟然也有人能夠把網頁設計得非常丑的。這樣的網頁一般多是采用類似于dreamweaver的軟件拖動設計出來的,沒有代碼寫出來的網頁來得精致。界面過丑的網頁總之不會太讓人喜歡,畢竟大家還是更樂于追求美感的,沒有人會喜歡在那些丑陋的界面上多加停留。

          影響用戶體驗的網頁設計因素十:網站太過“業余”;

          這里所謂的業余,不僅體現在網站資訊表達上,也體現在網站所有者的運營上。如果網站的主題不夠明確,網站文章對某件事物所表達的觀點也不是很讓大部分人贊同,那么就可以說這樣的網站很是業余。網站所有者在日常運營工作中,如果未及時更新網站資訊,或者甚至連網站的關于我們和聯系我們等重要信息都未及時更新,那么這樣的網站也可以稱為業余網站。

          如果我進入一個網站,發現首頁最新推薦的文章還是2002年的,那我肯定不會多看就馬上退出這個網站了。你如果在編碼技術上或者SEO基礎常識上略顯業余,我還是可以忍受的,畢竟那跟我沒有多大的關系。但如果我想獲取的東西找不到,或者找到了但卻很業余可笑的,那肯定也不會有好感。

          影響用戶體驗的網頁設計因素十一:設計上的一些瑕疵;

          這些因素可能不會導致大量用戶對你的網站產生反感情緒,但如果能注意到這些問題并且有針對性地進行改進,一定能更好地提升網站用戶體驗。接下來我們就簡單聊聊,這些設計上的瑕疵。

          1、分頁瀏覽圖片

          工作中,為了提升工作效率與持續學習,常常會收集整理很多素材,有網站案例源碼,有片段的代碼特,在這里我收集的一些CSS小技巧。

          我自己是一名從事了多年開發的web前端老程序員,目前辭職在做自己的web前端私人定制課程,今年我花了一個月整理了一份最適合2020年學習的web前端學習干貨,各種框架都有整理,送給每一位前端小伙伴,想要獲取的可以關注我的頭條號并在后臺私信我:前端,即可免費獲取。

          1. 容器水平居中

          先該容器設置一個明確寬度,然后將margin的水平值設為auto即可

          div.horizontal-center {
            width: 760px;
            margin: 0 auto;
          }
          
          // HTML
          <div class="horizontal-center "></div

          2. 容器垂直居中

          比如,有一大一小兩個容器,請問如何將小容器垂直居中?

          //首先,將大容器的定位為relative。
          div.large {
            position: relative;
            height: 200px;
            background: red; //非必須
          }
          
          // 然后,將小容器定位為absolute,再將它的左上角沿y軸下移50%,
          // 最后將它margin-top上移本身高度的50%即可。
          div.small {
            position: absolute;
            top: 50%;
            height: 100px;
            margin-top: -50px;
            background: purple; //非必須
          }
          
          // HTML
          <div class="large">
            <div class="small">xxx</div>
          </div>

          3. 用Flexbox 擺脫外邊距的各種 hack

          當需要用到列分隔符時,通過flexbox的 space-between 屬性,你就可以擺脫nth-,first-,和 last-child 的hack了:

          .list {
            display: flex;
            justify-content: space-between;
          }
          
          .list .person {
             flex-basis: 23%;
          }


          現在,列表分隔符就會在均勻間隔的位置出現。

          4. 如何使得較大的圖片,能夠自動適應小容器的寬度?

          CSS可以這樣寫:

          img {max-width: 100%}

          5. 黑白圖像

          img.desaturate {
            -webkit-filter: grayscale(100%);
            -moz-filter: grayscale(100%);
            -ms-filter: grayscale(100%);
            -o-filter: grayscale(100%);
            filter: grayscale(100%);
          }
          
          // HTML
          <img class="desaturate" src="img01.png"/>

          6. 圖片水平反轉

           img.flip-h {
            -ms-filter: "FlipH";
            -moz-transform: scaleX(-1);
            -o-transform: scaleX(-1);
            -webkit-transform: scaleX(-1);
            transform: scaleX(-1);
            filter: FlipH;
          }
          
          // HTML
          <img class="flip-h" src="avatar.jpg" />

          7. font-size基準

          瀏覽器的缺省字體大小是16px,你可以先將基準字體大小設為10px:

          html { font-size:62.5%;}

          后面統一采用rem作為字體單位,2.4rem就表示24px

          h1 {font-size: 2.4 em}

          8. text-transform

          text-transform用于將所有字母變成小寫字母、大寫字母或首字母大寫

          // 把字母轉換成大寫
          .transform-uppercase {
            text-transform: uppercase;
          }
          
          // 把字母轉換成小寫
          .transform-lowercase {
            text-transform: capitalize;
          }
          
          // 首字母大寫
          .transform-capitalize {
            text-transform: capitalize;
          }
          
          // HTML
          <div class="transform-uppercase">upper case</div> // UPPER CASE
          <div class="transform-lowercase">LOWER CASE</div> // lower case
          <div class="transform-capitalize">capitalize</div> // Capitalize

          9. font-variant

          用于將字體變成小型的大寫字母(即與小寫字母等高的大寫字母)

          .font-small {
            font-variant: small-caps;
          }
          
          // html
          <div class="font-small">abcd</div> 

          10. 模糊文本

          簡單但很漂亮的文本模糊效果,簡單又好看!

          .blur {
            color: transparent;
            text-shadow: 0 0 3px rgba(0, 0, 0, 0.9);
          }
          
          // HTML
          <div class="blur">blur</div>

          11. CSS首字放大

          p:first-letter {
            display: block;
            float: left;
            margin: -3px 0px 0 0;
            color: red;
            font-size: 1.4em;
            font-family: Helvetica;
          }

          12. user-select 禁止用戶選中文本

          .unselect { user-select: none; }

          13. 優化顯示文本

          有時,字體并不能在所有設備上都達到最佳的顯示,所以可以讓設備瀏覽器來幫助你

          html {
            -moz-osx-font-smoothing: grayscale;
            -webkit-font-smoothing: antialiased;
            text-rendering: optimizeLegibility;
          }

          注:請負責任地使用 optimizeLegibility。此外,IE /Edge沒有 text-rendering 支持

          14. 容器透明度設置

          將一個容器設為透明,可以使用下面的代碼:

          .element {
            -moz-opacity: 0.5; // Firefox
            -khtml-opacity: 0.5; // webkit核心的瀏覽器
            filter: alpha(opacity=50); // IE專用的
            opacity: 0.5; // Opera
          }
          
          // HTML
          <div class="element"></div>

          15. CSS三角形

          如何使用CSS生成一個三角形?

          .triangle {
            height: 0px;
            width: 0px;
            border-style: solid;
            border-width: 0px 300px 300px 300px;
            border-color: transparent transparent green transparent;
          }
          
          // HTML
          <div class="triangle"><div>

          16. 取消IE文本框的滾動條

          textarea { overflow: auto; }

          17. 使用 :not() 取消底部邊框

          .nav li:not(:last-child) {
            border-bottom: 1px solid #666;
          }
          
          // 通過此方法也可以取消第一個元素的頂部邊框
          // .nav li:not(:first-child) {}
          
          // HTML
          <ul class="nav">
            <li>1111</li>
            <li>2222</li>
            <li>3333</li>
            <li>4444</li>
          </ul>

          18. 頁面頂部陰影

          body:before {
            content: "";
            position: fixed;
            top: -10px;
            left: 0;
            width: 100%;
            height: 10px;
            z-index: 100;
            box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.8);
            -webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.8);
            -moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.8);
          }

          19. 繼承 box-sizing

          讓 box-sizing 繼承 html,這樣在插件或杠桿其他行為的其他組件中就能更容易地改變 box-sizing 了

          html {
            box-sizing: border-box;
          }
          
          *, *:before, *:after {
            box-sizing: inherit;
          }

          20. 禁用鼠標點擊事件

          .disabled { pointer-events: none; }
          
          // HTML
          <a href="https://www.baidu.com" class="disabled">xxx</a>

          21. 使用屬性選擇器用于空鏈接

          當a元素沒有文本值,但 href 屬性有鏈接的時候顯示鏈接:

          a[href^="http"]:empty::before {
            content: attr(href);
          }
          
          // HTML
          <a href="https://www.baidu.com"></a> // 有效
          <a href="https://www.baidu.com" /> // 這種標簽無效

          在工作中,為了提升工作效率與持續學習,常常會收集整理很多素材,有網站案例源碼,有片段的代碼特,在這里我收集的一些CSS小技巧。




          作者:ikonan
          鏈接:https://www.jianshu.com/p/f09eb7f19013


          主站蜘蛛池模板: 国偷自产视频一区二区久| 日韩视频一区二区在线观看| 精品无码成人片一区二区98| 一区二区视频在线免费观看| 国精品无码一区二区三区在线蜜臀| 日韩一区精品视频一区二区| 立川理惠在线播放一区| 免费无码A片一区二三区| 亚洲高清偷拍一区二区三区| 在线视频一区二区三区四区| 少妇一晚三次一区二区三区| 日本内射精品一区二区视频| 亚洲无线码在线一区观看| 无码av免费一区二区三区| 国产一区三区二区中文在线 | 人妻少妇一区二区三区| 国产成人精品视频一区| 日韩AV片无码一区二区不卡| 国产色欲AV一区二区三区| 99精品国产一区二区三区2021| 色狠狠AV一区二区三区| 久久国产精品最新一区| 99久久国产精品免费一区二区| 亚洲第一区精品观看| 亚洲国模精品一区| 成人免费av一区二区三区| 色老板在线视频一区二区| 国产免费无码一区二区| 性色AV一区二区三区| 亚洲AV无码一区东京热久久 | 日本免费一区二区在线观看| 精品成人乱色一区二区| 国产SUV精品一区二区四| 国产午夜精品一区二区三区小说 | 国产一区二区三区播放心情潘金莲| 国产91大片精品一区在线观看| 色窝窝免费一区二区三区| 日本一区二区三区精品视频| 国产精品主播一区二区| 无码人妻一区二区三区在线视频| 91久久精品国产免费一区|