[ 藍橋杯Web真題 ]-冬奧大抽獎

目錄

介紹

準備

目標

規定

思路

知識補充

解法參考


介紹

藍橋云課慶冬奧需要舉行一次抽獎活動,我們一起做一個頁面提供給云課冬奧抽獎活動使用。

準備

開始答題前,需要先打開本題的項目代碼文件夾,目錄結構如下:

├── css
│   └── style.css
├── effect.gif
├── index.html
└── js├── index.js└── jquery.js

其中:

  • css/style.css?是樣式文件 。
  • index.html?是主頁面。
  • js/jquery.js?是 jQuery 文件。
  • js/index.js?是需要補充的 js 文件。
  • effect.gif?是最終實現的效果圖。

注意:打開環境后發現缺少項目代碼,請手動鍵入下述命令進行下載:

cd /home/project
wget https://labfile.oss.aliyuncs.com/courses/9791/05.zip && unzip 05.zip && rm 05.zip

在瀏覽器中預覽?index.html?頁面效果如下:

初始效果

目標

找到?index.js?中?rolling?函數,使用?jQuery?或者?js?完善此函數,達到以下效果:

1.點擊開始后,以?class?為?li1?的元素為起點,黃色背景(.active?類)在獎項上順時針轉動。

2.當轉動停止后,將獲獎提示顯示到頁面的?id?為?award?元素中。獲獎提示必須包含獎項的名稱,該名稱需與題目提供的名稱完全一致。

3.轉動時間間隔和轉動停止條件已給出,請勿修改。

規定

  • 轉動時間間隔和轉動停止條件已給出,請勿修改。
  • 請嚴格按照考試步驟操作,切勿修改考試默認提供項目中的文件名稱、文件夾路徑等。
  • 請勿修改項目中提供的?idclass、函數名等名稱,以免造成無法判題通過。
  • 先自己做一下吧:傳送門

思路

這道題目主要需要使用到jQuery的知識點,使用jQuery來進行相關的操作,類名的添加以及刪除等,DOM中文字的獲取。類名的添加使用addClass,類名的刪除使用removeClass。兄弟節點的獲取使用siblings()方法。

知識補充

選擇器

Jquery中的后代選擇器:我們使用 $("#father p") 來選擇 id 名為 father 的 div 元素中的所有后代 p 元素。

子代選擇器:我們使用 "#father>p" 只選擇出 "id="father" 的子代 p 元素,即兒子節點,這就是它和后代選擇器的區別

兄弟選擇器:$(“M~N”);

相鄰選擇器:$(“M+N”); (選擇下一個兄弟節點 N)

屬性選擇器:

偽類選擇器:

綁定事件

綁定事件:jQuery對象.on(事件類型, 事件處理函數);

jQuery對象.bind(事件類型, 事件處理函數);

創建元素節點

$(“<標簽名>文本內容</標簽名>”);

$(“<標簽名 屬性=‘屬性值’>文本內容</標簽名>”);

 var div = $("<div style='width:50px; height:50px; background-color: #ddffbc'>嗨</div>"); // 創建帶有屬性的元素節點$("body").append(div); // 將創建的 div 元素放入 body 中

元素的插入
prepend()?與?prependTo()?是在元素子級的開頭插入元素。

// 在 A 元素的子級最前面的位置插入B
$(A).prepend(B);// 在 A 元素的子級最前面的位置插入B
$(B).prependTo(A);

append() 與 appendTo() 是在元素子級的尾部插入元素。

before() 與 insertBefore() 是在該元素的前面插入元素。

after() 與 insertAfter() 是在元素的后面插入元素。

empty 方法是用來清空指定元素的后代元素和內容的。

replaceWith 方法和 replaceAll 方法都可以用來把指定元素替換成其他元素,只是在使用格式上有些差別。

// 將 A 替換為 B
$(A).replaceWith(B);// 將 A 替換為 B
$(B).replaceAll(A);

元素的遍歷

$().each(function (index, element) {});

each?方法會接收一個匿名函數作為參數,函數中的?index?表示元素的索引號;而函數中的?element?表示當前元素。

attr?方法可以用來獲取指定元素的屬性值,也可以用來設置指定屬性的屬性值。

jQuery對象.attr("屬性名"); // 獲取屬性
jQuery對象.attr("屬性名", "屬性值"); // 修改屬性

removeAttr 方法可以刪除指定元素的某個屬性。

toggleClass 方法是用來切換類選擇器的。通過使用 toggleClass 讓 div 元素的 circle1 樣式在添加和移除之間切換,沒有 circle1 這個類就加上,有則移除。

val 方法用于獲取表單元素的值,也可以給表單元素設置值。

$().prev(); // 查找指定元素前向第一個元素
$().preAll(); // 查找指定元素前向所有元素
$().next(); // 查找指定元素的第一個后向兄弟元素
$().nextAll(); // 查找指定元素的所有后向兄弟元素
$().siblings();//查找所有兄弟元素
jQuery對象.children();//獲取元素的兒子節點
jQuery對象.find(selector);//查找到指定元素的所有后代元素
$().hasClass("類名");//用來判斷指定元素是否包含該類名的元素
$().eq(n);//使用 eq 方法可以實現下標過濾
$().is(selector);//使用 is 方法來判斷指定元素中是否有符合條件的存在
$().not(selector|function)//用 not 方法可以選擇不符合條件的元素。

解法參考

let num = 0;function rolling() {time++; // 轉動次數加1num++;if(num>8){num=1;}$(".li"+num).addClass('active').siblings().removeClass('active');clearTimeout(rollTime);rollTime = setTimeout(() => {window.requestAnimationFrame(rolling); // 進行遞歸動畫}, speed);// time > times 轉動停止if (time > times) {$("#award").text(`恭喜你抽到了${$(".li"+num).text()}`); clearInterval(rollTime);num = 0;time = 0;return;}
}

我們先聲明一個num賦值為0,用于來進行追蹤轉盤中轉到的元素,當開始進行轉動時,先將num增加,當num大于8時,說明轉了一圈,則給它賦值為1,回到起點。然后為對應的元素添加類,使用addClass來進行增加,其他的兄弟節點去除到該類,使用removeClass,兄弟節點的獲取直接調用siblings()方法。

當停止轉動時,使用text()方法來獲取元素的文本。最后再將num重新賦值為0

好啦,本文就到這里啦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215920.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215920.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215920.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

甲醛處理企業網站效果如何

甲醛往往是新裝房間主所擔心的問題&#xff0c;而甲醛處理公司則可以處理甲醛問題&#xff0c;市場需求也比較高&#xff0c;雖然具備同城服務屬性&#xff0c;但外地或連鎖經營也非常適合&#xff0c;而品牌們也遇到一些痛點&#xff1a; 1、品牌宣傳拓客難 甲醛處理公司也需…

公司app定制開發 ,打造專屬企業移動應用

公司app定制&#xff1a;打造專屬企業移動應用 在當今數字化時代&#xff0c;移動應用已經成為了人們生活中不可或缺的一部分&#xff0c;越來越多的企業也意識到了移動應用對于企業形象和業務拓展的重要性&#xff0c;為了滿足企業的需求&#xff0c;公司app定制服務應運而生…

基于查表法的水流量算法設計與實現

寫在前面 本文分享的是一種基于查表法的水流量的算法方案設計與實現&#xff0c;算法簡單易懂&#xff0c;主要面向初學者&#xff0c;有兩個目的&#xff1a;一是給初學者一些算法設計的思路引導&#xff1b;二是引導初學者學習怎樣用C語言編程實現。 一、設計需求 基于“19…

C++ 中的引用

文章目錄 C 引用的應用1. 修改函數中傳遞的參數2. 避免復制大型結構3. for 循環中修改所有對象4. for 循環中避免復制對象 References vs Pointers引用的限制使用引用的優點練習Quesition 1Question 2Question 3Question 4Question 5Question 6 如果一個變量被聲明為引用&#…

Android-Framework 默認橫屏、dpi設置

一、環境 高通865 Android 10 二、源碼修改位置 1、修改dpi device/qcom/kona/kona.mk -116,7 116,7 TARGET_USES_RRO : true# system prop for Bluetooth SOC typePRODUCT_PROPERTY_OVERRIDES \vendor.qcom.bluetooth.sochastings \ - ro.sf.lcd_density480ro.sf.lcd_d…

Python中的logging介紹

Python中的logging模塊是一個強大的、靈活的、可配置的日志記錄系統。它允許你在不修改源代碼的情況下記錄錯誤和調試信息&#xff0c;同時也可以對日志信息進行各種處理&#xff0c;例如寫入到文件、輸出到控制臺、記錄到數據庫等。 logging模塊提供了一種用于日志記錄的通用接…

液態二氧化碳儲存罐遠程無線監測系統

二氧化碳強化石油開采技術&#xff0c;須先深入了解石油儲層的地質特征和二氧化碳的作用機制。現場有8輛二氧化碳罐裝車&#xff0c;每輛罐車上有4臺液態二氧化碳儲罐&#xff0c;每臺罐的尾部都裝有一臺西門子S7-200 smart PLC。在注入二氧化碳的過程中&#xff0c;中控室S7-1…

國產單片機XL32F001,價格便宜,性價比高,32位M0+內核

XL32F001芯片簡介 1、是一個32位ARM架構Cortex -M0系列的單片機 2、系統工作頻率最高為24MHz 3、擁有24Kbytes Flash存儲器和3Kbytes SRAM 4、擁有內部24MHz和32.768MHz的RC振蕩器&#xff08;HSI和LSI&#xff09;&#xff0c;擁有32.768KHz低速晶體振蕩器&#xff08;LSE…

JVM內存模型+JVM類加載機制

jvm內存模型包括哪些以及各自作用 主要包括類加載 對象創建 方法調用 本地方法區 程序計數 方法區&#xff1a; class文件加載到方法區 堆&#xff1a; 對象創建在堆內存中 jvm棧&#xff1a;方法調用入棧 本地方法棧&#xff1a;主要是c寫的一些方法 程序計數器&#xff1a;存…

OneNote for Windows10 徹底刪除筆記本

找了超多方法&#xff0c;都沒有用&#xff0c;我的OneNote都沒有文件選項&#xff0c;要在OneDrive中刪除&#xff0c;但是一直登不進&#xff0c;然后又找到一個方法&#xff1a; 在網頁中打開Office的控制面板 "Sign in to your Microsoft account" 在“最近”一…

【強化學習-讀書筆記】多臂賭博機 Multi-armed bandit

參考 Reinforcement Learning, Second Edition An Introduction By Richard S. Sutton and Andrew G. Barto強化學習與監督學習 強化學習與其他機器學習方法最大的不同&#xff0c;就在于前者的訓練信號是用來評估&#xff08;而不是指導&#xff09;給定動作的好壞的。 …

第21章網絡通信

網絡程序設計基礎 網絡程序設計編寫的是與其他計算機進行通信的程序。Java 已經將網絡程序所需要的元素封 裝成不同的類&#xff0c;用戶只要創建這些類的對象&#xff0c;使用相應的方法&#xff0c;即使不具備有關的網絡支持&#xff0c;也可 以編寫出高質量的網絡通信程序…

2023年【危險化學品生產單位安全生產管理人員】考試題庫及危險化學品生產單位安全生產管理人員考試技巧

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 危險化學品生產單位安全生產管理人員考試題庫是安全生產模擬考試一點通總題庫中生成的一套危險化學品生產單位安全生產管理人員考試技巧&#xff0c;安全生產模擬考試一點通上危險化學品生產單位安全生產管理人員作業…

【教程】制作 iOS 推送證書

如需向 iOS 設備推送數據&#xff0c;您首先需要在消息推送控制臺上配置 iOS 推送證書。iOS 推送證書用于推送通知&#xff0c;本文將介紹消息推送服務支持的證書類型&#xff0c;并引導您制作 iOS 推送證書。 證書類型 消息推送服務僅支持 Apple Push Service 類型的證書。有…

react Hooks之useDebugValue

1、作用&#xff1a; 用于在開發過程中幫助開發者調試自定義 Hook。它的作用是將自定義 Hook 中的某些值暴露給 React 開發工具&#xff08;例如 React DevTools&#xff09;以便于調試。 當我們使用 React 開發工具查看組件的狀態時&#xff0c;React DevTools 會從組件和其…

鴻蒙(HarmonyOS)應用開發——保存應用數據

保存應用數據 harmonyOS系統提供了四種數據存儲方式 #mermaid-svg-kZlN0CFY1VGySIPo {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kZlN0CFY1VGySIPo .error-icon{fill:#552222;}#mermaid-svg-kZlN0CFY1VGySIPo .…

競賽保研 LSTM的預測算法 - 股票預測 天氣預測 房價預測

0 簡介 今天學長向大家介紹LSTM基礎 基于LSTM的預測算法 - 股票預測 天氣預測 房價預測 這是一個較為新穎的競賽課題方向&#xff0c;學長非常推薦&#xff01; &#x1f9ff; 更多資料, 項目分享&#xff1a; https://gitee.com/dancheng-senior/postgraduate 1 基于 Ke…

Android RecyclerView 動畫處理 流程 原理(源碼分析第二篇)

零、本文主題 本文要解決的問題&#xff1a; 1. Recyclerview 動畫的實現原理是什么&#xff1f; 2. 處理的主要流程大概是怎樣的&#xff1f; 一、核心原理 我們拋開代碼&#xff0c;想一下&#xff0c;RecyclerView中的view動畫有幾種&#xff1f; 添加一個view&#xff1a;…

react Hooks之useLayoutEffect和useInsertionEffect

在介紹這兩個hooks之前。讓我們先對比一下useEffect、useLayoutEffect、useInsertionEffect 執行時機&#xff1a; useEffect 在組件渲染完成后執行&#xff0c;屬于異步執行。useInsertionEffect 在組件渲染并插入 DOM 后執行&#xff0c;也屬于異步執行。useLayoutEffect 在組…

互聯網公司,哪個部門才是鄙視鏈最頂端?

文章目錄 每日一句正能量前言財務部法務部公關部銷售部前臺行政IT部創意部后記 每日一句正能量 我們必須在失敗中尋找勝利&#xff0c;在絕望中尋求希望。 前言 在互聯網公司中&#xff0c;不同職位的鄙視鏈是存在的。有些職位享有高尚的地位&#xff0c;而有些則被看作是次要…