單一順序答題效果

前端入坑紀 41

最近做了個單一的答題手機頁咙边,分享走一個!

OK劫哼,first things first叮趴! github項目地址

真實項目截圖
HTML 結構
    <div class="mainWrp">
        <div class="tiBd">
            ![](wrap/img/2-1.png)
            <div class="mainBos">
                <h3>第<span id="tiNum">1</span>題</h3>
                <div class="tiWrp">
                    <p id="tiMu">目前你有好多的雞和好多的蛋,這樣子权烧,那么你會先去吃哪個眯亦?</p>
                </div>
                <div class="ansWrp">
                    <ul id="tiAn">
                        <li>
                            <a href="javascript:;">
                                <p><span>A</span>.<strong>先吃雞</strong></p>
                            </a>
                        </li>
                        <li>
                            <a href="javascript:;">
                                <p><span>B</span>.<strong>先吃蛋</strong></p>
                            </a>
                        </li>
                        <li>
                            <a href="javascript:;">
                                <p><span>C</span>.<strong>全吃</strong></p>
                            </a>
                        </li>
                        <li>
                            <a href="javascript:;">
                                <p><span>D</span>.<strong>先吃你妹啊</strong></p>
                            </a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

div.tiBd里面包裹了圖片2-1.png,撐開了它般码,然后里面的div.mainBos妻率,也就是整個題目的html結構都是相對于div.tiBd,來絕對定位板祝。之所以這么做宫静,而不用背景,是為了不讓2-1的大小比例變形,而是正常的展示孤里。當然這樣的前提是伏伯,題目不長,答案也不長捌袜。
答案的背景是會隨著它的li大小變形的说搅。

CSS 結構
        html,
        body {
            background-color: #9DD1FF;
            height: 100%;
        }
        
        .mainWrp {
            padding-top: 5%;
            height: 100%;
            box-sizing: border-box;
            background-image: url(wrap/img/2b.png);
            background-repeat: no-repeat;
            background-position: center 100%;
            background-size: 100% auto
        }
        
        .tiBd {
            margin: 2%;
            position: relative;
        }
        
        .ansWrp li {
            margin: 10px 0;
            line-height: 36px;
        }
        
        .ansWrp li a {
            padding: 6px;
            display: inline-block;
            color: #fff;
            width: 70%;
            background-image: url(wrap/img/2-2.png);
            background-repeat: no-repeat;
            background-position: center 100%;
            background-size: 100% 100%
        }
        
        .ansWrp li a:active {
            background-image: url(wrap/img/2-2-1.png);
        }
        
        .ansWrp li a p {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        
        .ansWrp li a strong {
            margin-left: 5px;
        }
        
        .mainBos {
            width: 100%;
            position: absolute;
            left: 0;
            top: 0;
        }
        
        .mainBos h3 {
            line-height: 45px;
            text-align: center;
            font-size: 22px;
            color: #AD6303;
            background-image: url(wrap/img/2-1-1.png);
            background-repeat: no-repeat;
            background-position: 50% 50%;
            background-size: auto 100%
        }
        
        .tiWrp {
            line-height: 26px;
            font-size: 16px;
            margin: 20px 15%;
            width: 70%;
            font-weight: bold;
            color: #333;
        }
        
        .ansWrp {
            padding-top: 3%
        }
        
        .ansWrp li {
            color: #fff;
            font-size: 16px;
            text-align: center;
        }

這里我引用了外部的一個重置樣式的rest.css,去github源文件可以查看到虏等。一個小技巧: 當 html,body 都設置 height: 100%;那么div.mainWrp的 height: 100%時就可以和視窗一樣高了弄唧。

JS 結構
//  獲取要用到的元素
        var tiNum = document.getElementById('tiNum'),
            tiMu = document.getElementById('tiMu'),
            tiAn = document.getElementById('tiAn'),
            tiAnStrong = tiAn.getElementsByTagName('strong'),//  答案內(nèi)容包裹的strong
            tiLiAs = tiAn.getElementsByTagName('li'),
            answers = [],//  設置空數(shù)組存放用戶的答案
            indx = 0;//  答題過程的順序數(shù)

//  初始化,第一題開始
        function inital() {
            indx = 1;
            tiMu.innerText = guessTs["t1"].title;
            for (var j = 0; j < 4; j++) {
                tiAnStrong[j].innerText = guessTs["t1"]["answer"][j];
            }
        }
        inital();

//  給用戶點擊答案時霍衫,執(zhí)行的事件
        for (var i = 0; i < 4; i++) {
            ! function(i) {
                tiLiAs[i].onclick = function() {
                    var answer = this.getElementsByTagName('span')[0].innerText;//  獲取點擊時的答案(A?B?C?D)

                    //  還沒到最后一題時的操作
                    if (indx < 15) { 
                        answers[indx - 1] = answer;//  數(shù)組從零開始計數(shù)
                        // console.log(answers);
                        indx++; //  每次點完加一
                        tiNum.innerText = indx;//  改變下一題的顯示
                        tiMu.innerText = guessTs["t" + indx].title;//  改變下一題題目的內(nèi)容

                        //  改變下一題答案的內(nèi)容
                        for (var j = 0; j < 4; j++) {
                            tiAnStrong[j].innerText = guessTs["t" + indx]["answer"][j];
                        }
                    } else if (indx == 15) {
                        answers[indx - 1] = answer;
                        // 答完最后一道題目候引,輸出答案,跳轉結果                    
                        console.log(answers);
                        // location.href = ""
                    }
                }
            }(i)
        }

就是這樣敦跌,答案可以直接前端判斷對錯澄干,也可以后端來判斷再輸出答案。安全性而言峰髓,后端判斷高傻寂!

好了,到此携兵,本文告一段落!感謝您的閱讀搂誉!祝您和您的家人身體健康徐紧,闔家幸福!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炭懊,一起剝皮案震驚了整個濱河市并级,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侮腹,老刑警劉巖嘲碧,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異父阻,居然都是意外死亡愈涩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門加矛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來履婉,“玉大人,你說我怎么就攤上這事斟览』偻龋” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長已烤。 經(jīng)常有香客問我鸠窗,道長,這世上最難降的妖魔是什么胯究? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任稍计,我火速辦了婚禮,結果婚禮上唐片,老公的妹妹穿的比我還像新娘丙猬。我一直安慰自己,他們只是感情好费韭,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布茧球。 她就那樣靜靜地躺著,像睡著了一般星持。 火紅的嫁衣襯著肌膚如雪抢埋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天督暂,我揣著相機與錄音揪垄,去河邊找鬼。 笑死逻翁,一個胖子當著我的面吹牛饥努,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播八回,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼酷愧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缠诅?” 一聲冷哼從身側響起溶浴,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎管引,沒想到半個月后士败,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡褥伴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年谅将,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片噩翠。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡戏自,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伤锚,到底是詐尸還是另有隱情擅笔,我是刑警寧澤志衣,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站猛们,受9級特大地震影響念脯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弯淘,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一绿店、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庐橙,春花似錦假勿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浆竭,卻和暖如春浸须,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背邦泄。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工删窒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顺囊。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓肌索,卻偏偏與公主長得像,于是被迫代替她去往敵國和親特碳。 傳聞我的和親對象是個殘疾皇子驶社,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,737評論 1 92
  • ?前端面試題匯總 一测萎、HTML和CSS 21 你做的頁面在哪些流覽器測試過?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,220評論 0 8
  • 寶寶從出生之后的24小時內(nèi)就開始接種疫苗腕唧,一直到3歲后接種疫苗的頻率才開始下降。某些疫苗可能會引起小孩發(fā)燒瘾英,看著難...
    小廣成長記_zizi閱讀 743評論 0 0