整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          使用CSS3做一個帶動畫的下拉列表,來學(xué)習(xí)一下吧


          下拉列表select在表單中應(yīng)該算是使用頻率比較高的一個元素,而我們也知道頁面上默認(rèn)的select標(biāo)簽樣式是很難看的。基本所有的團(tuán)隊都會選擇使用Bootstrap或者自己封裝一個下拉列表的組件,今天我們也試著使用CSS3新特性來寫一個帶動畫效果的下拉列表樣式吧。

          CSS3

          感興趣的可以自行去github上學(xué)習(xí)源碼,github地址如下。

          https://github.com/zhouxiongking/article-pages/blob/master/articles/dropdown/dropdown.html

          頁面效果

          首先,我們來看看帶動畫效果的下拉列表效果是什么樣的,如下圖所示。

          效果圖

          頁面組成

          這里我們簡單分析下頁面的構(gòu)成,實際上非常的簡單,主要包含以下三個元素。

          1. 表示外層容器的div元素

          2. 上面是一個span元素

          3. 下面是一個ul元素,每個li表示一個列表項

          在整個下拉列表中,主要有兩個動畫。

          1. 下拉菜單旁邊的小三角圖標(biāo),在鼠標(biāo)懸浮和離開時動態(tài)變換

          2. 下方的列表,在鼠標(biāo)懸浮和離開上面的span元素時,列表會有動畫顯示和消失的效果。

          代碼構(gòu)成

          下面我們來看看整個頁面的代碼構(gòu)成。

          • HTML

          首先是頁面的HTML代碼,正如上一部分所講,頁面主要為一個外層容器div,內(nèi)部是一個span和ul元素,每個列表項li內(nèi)包含一個a元素,所有HTML部分代碼如下所示。

          HTML代碼

          • CSS

          CSS部分的代碼才是整個實現(xiàn)效果的核心,我們具體來分析。

          首先是頁面的全局基本配置樣式。

          全局配置

          然后是外層容器的樣式。

          外層容器樣式

          然后是span元素的樣式,旁邊的上三角形通過偽元素::after來實現(xiàn),在::after偽元素中通過border-color屬性來控制三角形的朝向,然后通過transition屬性設(shè)置變換樣式。

          span元素以及上三角形

          當(dāng)鼠標(biāo)停留在span元素上時,span元素背景色會改變,上三角會變成下三角。

          鼠標(biāo)停留后span的樣式

          緊接著是下面的ul以及l(fā)i元素的樣式,都是一些很普通的屬性。

          ul與li樣式

          然后是li下的a元素的樣式。

          li下a元素樣式

          然后是css中最核心的地方,ul的動畫效果,通過translate3d屬性改變ul所處的位置,再以transform屬性添加動畫效果。

          ul初始狀態(tài)

          至此,所有代碼講解完畢,如果運行成功后,會得到文章開始時的下拉列表效果。

          結(jié)束語

          本篇文章主要給大家介紹了如何使用CSS編寫一個帶動畫的下拉列表效果,你學(xué)會了嗎?

          有下拉列表的表單

          題目只能有30個字,不能寫全,其實今天我們要學(xué)習(xí)的內(nèi)容有三個,第一,下拉列表表單,第二,多行文字輸入表單,第三,數(shù)據(jù)集表單。

          開始學(xué)習(xí)吧!

          前天和昨天我們在《HTML表單元素初識1——零基礎(chǔ)自學(xué)網(wǎng)頁制作》和《HTML表單元素初識2——零基礎(chǔ)自學(xué)網(wǎng)頁制作》中基本上把<input/>標(biāo)簽的type屬性里不同的值進(jìn)行了講解與實踐,今天我們來學(xué)習(xí)其他包含在<form></form>之間的元素。

          帶有下拉列表的表單

          我們在一些網(wǎng)站填寫注冊信息時,經(jīng)常會遇到選擇"生活所在地"的操作,因為中國的地名是固定的,因此頁面會為我們提供一個下拉列表選項,我們直接點選即可,就不需要輸入文字了,這樣操作的好處在于不會出現(xiàn)拼寫錯誤。例如:

          寫這個功能我們需要介紹一組新標(biāo)簽<select></select>。"select"(選擇)。在這個標(biāo)簽中再添加<option></option>。"option"(選項)。這樣就可以寫出帶有下拉列表的表單了,示例代碼如下:

          <select><option></option></select>

          這段代碼我們繼續(xù)在昨天的"表單.html"文件中添加即可,在<input type = "image" src = "img/示例圖片/submit.jpg"/><br>這段代碼之前即可!與這個圖片提交按鈕共用一個<form></form>標(biāo)簽!

          下面我們?yōu)槎噙x表單添加名稱,示例代碼如下:

          請選擇省份<select><option></option></select>

          下面我們添加不同選項,示例代碼如下:

          請選擇省份
            <select >
            <option >河北</option>
            <option >山東</option>
            <option >河南</option>
            <option >海南</option>
            <option >江蘇</option>
            <option >安徽</option>
            </select>
            <br><br>

          為了規(guī)范起見,我們?yōu)楸韱涡畔⑻砑觧ame和value屬性,示例代碼如下:

          請選擇省份
            <select name = "province">
            <option value="Hebei">河北</option>
            <option value="Shandong">山東</option>
            <option value="Henan">河南</option>
            <option value="Hainan">海南</option>
            <option value="Jiangsu">江蘇</option>
            <option value="Anhui">安徽</option>
            </select>
            <br><br>

          大家要注意的是,在下拉列表表單中,name寫在<select>中,value寫在<option>中。

          頁面效果如下:

          這里告訴大家一個規(guī)律,下拉列表表單默認(rèn)顯示第一個<option></option>中的文字內(nèi)容。

          如果您想改變這個默認(rèn)顯示,請在需要顯示的<option>中添加selected屬性,并賦值為"selected"。

          示例代碼如下:

          請選擇省份
            <select name = "province">
            <option value="Hebei">河北</option>
            <option value="Shandong">山東</option>
            <option value="Henan" selected="selected">河南</option>
           <!--選中這個選項--><option value="Hainan">海南</option><option value="Jiangsu">江蘇</option><option value="Anhui">安徽</option></select><br><br>

          頁面效果如圖:

          多行文字輸入表單

          我們在西瓜視頻上發(fā)布視頻時會被要求填寫視頻描述,頁面中的輸入框不是像下圖這么短的單行輸入框。

          而是多行輸入框,如圖:

          使用<textarea></textarea>標(biāo)簽即可添加這樣的輸入框,不過要設(shè)置row(列)和cols(行)屬性的數(shù)值。示例代碼如下:

          <br>請簡要描述您的劇本的情節(jié)<br><textarea row="3" cols="20"></textarea><br>

          這段代碼添加到</select><br><br>之后,與其共同使用一個<form></form>標(biāo)簽。

          下面我們?yōu)檫@個多行輸入框添加一些提示和限制。

          首先,添加提示文字,和type="text"的<input/>標(biāo)簽一樣,都是使用placeholder屬性。

          第二,我們限制一下字?jǐn)?shù),使用maxlength(最大長度)屬性。

          第三,在頁面加載完成后,直接讓光標(biāo)停留在輸入框中,使用autofocus屬性。

          下面看看如何寫吧,示例代碼如下:(不要忘記寫好name屬性!)

          <br>
          請簡要描述您的劇本的情節(jié)<br>
          <textarea row="3" cols="20" name ="storyOutLine"placeholder="最多輸入80字"maxlength="80"autofocus></textarea><br>

          頁面效果如圖:

          如果刷新頁面不能正確顯示,請嘗試關(guān)閉后重新打開!

          數(shù)據(jù)集表單

          數(shù)據(jù)集表單實際上就是一個將不同選項或信息打包上傳的設(shè)置。

          當(dāng)一組表單元素放到 <fieldset> 標(biāo)簽內(nèi)時,瀏覽器會以特殊方式來顯示它們,它們可能有特殊的邊界、3D 效果,或者甚至可創(chuàng)建一個子表單來處理這些元素。(W3school)

          這個數(shù)據(jù)集有三個部分組成,首先是<fliedset></fliedset>,這個標(biāo)簽不會顯示,只是告訴瀏覽器這里的數(shù)據(jù)要打包。

          第二是<legend></legend>,"legend"(說明),這里添加數(shù)據(jù)集名稱。

          第三就是我們之前學(xué)到的那些標(biāo)簽了。

          示例代碼如下:

          <fliedset> <legend>信息打包</legend> </fliedset>

          下面我們使用這段代碼把form2打包一下吧。示例代碼如下:

          <form>
            <fieldset><!--開始-->
            <legend>信息打包</legend><br>
            <!--標(biāo)題-->興趣愛好:<br>
            <input type = "checkbox" name = "hobby" value = "reading"/>讀書
            <input type = "checkbox" name = "hobby" value = "film"/>電影
            <input type = "checkbox" name = "hobby" value = "painting"/>繪畫
            <input type = "checkbox" name = "hobby" value = "music"/>音樂
            <br>
            最高學(xué)歷:<br>
            <input type = "radio" name = "education" value = "highSchool"/>高中
            <input type = "radio" name = "education" value = "bachelor"/>本科
            <input type = "radio" name = "education" value = "master"/>碩士
            <input type = "radio" name = "education" value = "doctor"/>博士
            <br>
            請選擇省份
            <select name = "province">
            <option value="Hebei">河北</option>
            <option value="Shandong">山東</option>
            <option value="Henan" selected="selected">河南</option><!--選中這個選項-->
            <option value="Hainan">海南</option>
            <option value="Jiangsu">江蘇</option>
            <option value="Anhui">安徽</option>
            </select>
            <br><br><br>
            請簡要描述您的劇本的情節(jié)<br>
            <textarea row="3" cols="20" name ="storyOutLine"placeholder="最多輸入80字"maxlength="80"autofocus></textarea>
            <br>
            </fieldset><!--結(jié)尾-->
            <input type = "image" src = "img/示例圖片/submit.jpg"/><br>
            <input type="reset" /><br>
            <input type = "submit" value = "submit"/>
            </form>

          頁面效果如下:

          今天的內(nèi)容結(jié)束了!

          如果您喜歡我的教程請關(guān)注我,點贊也能讓我充滿動力!

          HTML完整學(xué)習(xí)目錄

          HTML序章(學(xué)習(xí)目的、對象、基本概念)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML是什么?——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          第一個HTML頁面如何寫?——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML頁面中head標(biāo)簽有啥用?——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          初識meta標(biāo)簽與SEO——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML中的元素使用方法1——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML中的元素使用方法2——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML元素中的屬性1——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML元素中的屬性2(路徑詳解)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          使用HTML添加表格1(基本元素)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          使用HTML添加表格2(表格頭部與腳部)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          使用HTML添加表格3(間距與顏色)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          使用HTML添加表格4(行顏色與表格嵌套)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          16進(jìn)制顏色表示與RGB色彩模型——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML中的塊級元素與內(nèi)聯(lián)元素——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          初識HTML中的<div>塊元素——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          在HTML頁面中嵌入其他頁面的方法——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          封閉在家學(xué)網(wǎng)頁制作!為頁面嵌入PDF文件——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML表單元素初識1——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML表單元素初識2——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML表單3(下拉列表、多行文字輸入)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML表單4(form的action、method屬性)——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML列表制作講解——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          為HTML頁面添加視頻、音頻的方法——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          音視頻格式轉(zhuǎn)換神器與html視頻元素加字幕——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          HTML中使用<a>標(biāo)簽實現(xiàn)文本內(nèi)鏈接——零基礎(chǔ)自學(xué)網(wǎng)頁制作

          見的用戶界面元素之一是下拉列表(Dropdown List),提供一組可選項供用戶選擇。該元素通常顯示為展開的列表形式,用戶可以通過單擊或選擇列表中的選項。對于下拉列表的選項,一般由系統(tǒng)代碼組成,因此通常無法對其進(jìn)行維護(hù),但有時會需要動態(tài)更新下拉列表的選項值。本文將介紹如何通過輸入框?qū)崿F(xiàn)下拉列表選項值的動態(tài)更新。

          下拉列表(Dropdown List)是一種常見的用戶界面元素,用于提供一組選項供用戶選擇。它通常以一個展開的列表形式出現(xiàn),用戶可以點擊或選擇列表中的一個選項。

          一般來說,他的選項值是由系統(tǒng)代碼組成的,所以一般是不能維護(hù)里面的選項值,但是經(jīng)常會出現(xiàn)需要動態(tài)維護(hù)下拉列表的選項這種需求。所以今天就教大家如何通過輸入框動態(tài)維護(hù)下拉列表里面的選項值。

          一、效果展示

          1. 在輸入框里新增或者修改選項,維護(hù)后下拉列表選項和輸入框里的一致
          2. 選項可以手動修改,也可以批量復(fù)制到輸入框

          二、制作教程

          1. 下拉列表的原理

          我們?nèi)绻胊xure自帶的下拉列表,他只能在編輯界面修改下拉列表的值,沒有辦法在演示界面修改。但是如果我們知道下拉列表的原型,就可以通過修改代碼的方式,實現(xiàn)在演示界面動態(tài)維護(hù)下拉列表的效果

          我們知道axure演示是通過瀏覽器來實現(xiàn)的,歸根到底就是html、js、css代碼,這個在以前的js調(diào)用的文章里也有詳細(xì)講解,所以我們可以通過代碼調(diào)用,調(diào)用下拉列表,那下拉列表的html代碼其實就是:

          <select>

          <option value=”值”>選項1</option>

          <option value=”值”>選項2</option>

          <option value=”值”>選項3</option>

          <option value=”值”>選項4</option>

          </select>

          可以看到其實他的選項值就是 <option value=”值”>選項1</option>,所以我們要對輸入框里的文本值做變換,變換成上面的格式,然后在修改代碼,這樣就可以替換下拉列表里的選項值了。

          2. 文本框里文本的處理

          那我們怎樣對文本框里的值進(jìn)行處理呢?如果可以有特殊標(biāo)記的話,例如用每個選項用包圍,這樣我們用replace函數(shù)就可以實現(xiàn)了, 將【的值替換成<option value=”值”>,將】的值替換成</option>,但是這種方式會限制了用戶輸入,必須【選項】這種格式來輸入,這樣就很不方便了。

          所以我們就要比較麻煩對函數(shù)就行分割了,首先我們要準(zhǔn)備幾個文本,用來記錄和處理文本,我們可以用slice函數(shù),slice函數(shù)可以去指定段落的文本出來,例如取前三位就把選項1取出來了,這樣我們把選項1組成新的文本,加上以前一后,就變成 <option value=”值”>選項1</option>,然后繼續(xù)取選項2,直到輸入框里的值都取完。

          但是這里還有一個問題,用戶輸入每個選項的長度值是未知的,我們怎樣去確定要取多少位呢?這里我們可以用第二個函數(shù)indexOf來確認(rèn),這個函數(shù)可以找出指定內(nèi)容第一次出現(xiàn)的位置,那我們只需要尋找換行的位置,提取換行之前的內(nèi)容,再將文本以前一后添加,這樣就可以將字符轉(zhuǎn)為對應(yīng)的格式。

          那我們只需要寫個循環(huán),先提取第一行的選項1,將格式轉(zhuǎn)為 <option value=”值”>選項1</option>,然后在去第二行的選項2,將格式轉(zhuǎn)為<option value=”值”>選項2</option>,在通過設(shè)置文本,將他和前面記錄的<option value=”值”>選項1</option>合在一起,這里用在target.text后面增加新提取合并的文本即可。

          上面是存在換行的條件,如果已經(jīng)是最后一行,就沒有換,那我們就判斷輸入框是否為空,那如果不為空,最后一個選項就是輸入框里的文本你,我們直接將他提取合并即可。

          那如果值為空,我們就提取完成結(jié)束循環(huán),結(jié)束循環(huán)我們用設(shè)置文本的交互,將提取完成的選項值設(shè)置到通過設(shè)置文本,設(shè)置到<select></select>里面,然后觸發(fā)js重新調(diào)用輸入框就可以了。

          到這里我們基本級完成了,如果需要調(diào)整下拉列表的尺寸,我們也可以通過width和height字段修改,例如寬200高30的輸入框,我們就可以寫成這樣<select style=”width: 200px; height: 30px;” >。

          這樣我們就制作完成了通過文本框維護(hù)下拉列表選項的原型模板了,下次使用時,只需要復(fù)制粘貼,修改輸入框里的選項文字,即可自動實現(xiàn)動態(tài)維護(hù)下拉列表選項的效果了,是不是很方便呢?當(dāng)然,后續(xù)你們也可以根據(jù)需要,增加一些效果,例如把輸入框放在彈窗里,通過按鈕顯示彈窗,再修改下拉列表的值。

          那以上就是本期教程的全部內(nèi)容,感興趣的同學(xué)們可以動手試試哦,感謝您的閱讀,我們下期見。

          本文由 @AI產(chǎn)品人 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

          題圖來自 Unsplash,基于 CC0 協(xié)議

          該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。


          主站蜘蛛池模板: 国产成人一区二区三中文| 亚洲av高清在线观看一区二区| 国产一区二区三区免费| 精品国产一区在线观看| 韩国美女vip福利一区| 一区二区乱子伦在线播放| 亚洲日本一区二区一本一道| 精品国产亚洲第一区二区三区| 亚洲一区综合在线播放| 亚洲成AV人片一区二区密柚| 国产乱码精品一区二区三| 国产美女口爆吞精一区二区| 一区二区三区免费精品视频 | 在线观看国产区亚洲一区成人| 国产精品女同一区二区久久 | 国模私拍福利一区二区| 久久久久人妻一区精品色| 亚洲综合无码一区二区| 加勒比无码一区二区三区| 亚洲AV日韩AV一区二区三曲| 大帝AV在线一区二区三区| 成人国产精品一区二区网站| 波多野结衣免费一区视频| 精品无人区一区二区三区| 精品视频一区二区观看| 熟女大屁股白浆一区二区| 亚洲一区精品视频在线| 国产AV天堂无码一区二区三区| 精品乱子伦一区二区三区| 日韩精品人妻一区二区三区四区| 国产精品一区二区三区久久| 久久久久国产一区二区| 亚洲色精品VR一区区三区| 性色AV 一区二区三区| 成人中文字幕一区二区三区| 一区二区三区免费视频网站| 国产乱人伦精品一区二区在线观看| 不卡一区二区在线| 鲁丝丝国产一区二区| 亚洲国产一区在线观看| 国产凹凸在线一区二区|