零基礎一篇文章實現網頁輪播圖效果,我太難了啊

你瞅啥?

有沒有想過?一直從事流水線操做的你,或許在編程中的流程控制方面天賦異稟。有沒有想過?一直以來左右逢源的你,或許也能靠手中的鍵盤作點大事?有沒有想過?平時好像平淡無奇的你,或許身上埋藏了「程序員」的驚奇骨骼。css

或者,也許你並無!那麼跟我一塊兒動手試試就知道了!html

不扯淡,上乾貨!

咱們要作的成果展現(輪播圖):前端

菜單(須要的材料):java

  1. html語言(處理頁面結構)
  2. css語言(美化頁面)
  3. javaScript語言(讓頁面動起來)

咱們分別用3大模塊來單獨實現,作這個就別想那個程序員

編寫頁面骨架html

  1. 咱們在某個文件夾內點擊鼠標右鍵,新建一個__文本文件__,像這樣
  2. 接着咱們在裏面編寫以下代碼
  3. 標籤有單、雙之分,雙標籤覺得結束,標籤內的標籤是裝在裏面的東西
  4. 下面的結構是yong_hu_kan包含lun_bo_tu_he_zi
<title>這是個人輪播圖頁面喲</title>
    
    
        <div id="yong_hu_kan">
           <div id="lun_bo_tu_he_zi">
           		<!-- 這裏將來放點東西 -->
            </div>     
        </div>
  1. 接着在裏面放入3組<div>盒子 <img src="">圖片(http的那個是圖片地址,不要去手抄喲編程

    1. <div>
                          <img src="https://oscimg.oschina.net/oscnet/psc.jpg">
                      </div>
                      <div>
                          <img src="https://oscimg.oschina.net/oscnet/psc.jpg">
                      </div>
                      <div>
                          <img src="https://oscimg.oschina.net/oscnet/psc.jpg">
                      </div>
  2. 接着運行程序,最簡單的方法就是把剛纔的編寫的文件__用鼠標左鍵脫到瀏覽器中再放手__,如無心外,你將看到<img src="https://oscimg.oschina.net/oscnet/2229d403d2fb9ddab946f01581441581.png" alt="image-20200211222322610" style="zoom:50%;">瀏覽器

兄嘚,那麼你的html頁面就完成了佈局

CSS美化一下

敲黑板了!image-20200211225738616學習

  1. 在head標籤中加入以下代碼,設置他們的寬高.net

    1. <style>
          #yong_hu_kan {
              width:200px;
              height:200px;
          }   
          #lun_bo_tu_he_zi {
      		width:600px;
              height:200px;
          }
      </style>
  2. 讓圖片橫着排列 ,那就讓luo_bo_tu_he_zi 裏面的3個div都向左漂浮就好,繼續在style標籤中加入以下代碼

    1. #lun_bo_tu_he_zi div {
          float:left;
      }
  3. 好了,記得Ctrl S 鍵來保存一下,保存之後,把文件丟到瀏覽器中,你將看到:image-20200211230247790

  4. 接下來還有一個障礙要掃清(別問爲何,我太難了)

    1. image-20200211231332879

    2. 接着咱們在style標籤中加入

    3. body { margin:0px; }

至此CSS美化就搞定!!!

JavaScript篇

這一篇呢,想比以前的會難一些,出現的知識盲點也是沒法避免的,因爲篇幅有限,你只用知道有什麼用、怎麼用就行了

先來個熱場,在body標籤的結束標籤上方編寫

<script>
			// 這裏將來會放代碼,下面的body不要照抄,
            // 寫出來是讓你們知道位置
	 </script>

img

image-20200211235418518

首先咱們先分析一下,我們如今3張圖應該都橫向排列了,那麼接下來分解一下任務,代碼寫到script標籤裏面

  1. 獲取已經設置600px寬度的lun_bo_tu_he_zi盒子(內有3組div img)

    1. var ele = document.getElementById('lun_bo_tu_he_zi')
  2. 讓圖1向左移動,出現圖2,再向左移動,出現圖3

    1. ele.style.left = ele.offsetLeft - 200   'px';
    2. 以上代碼的意思是 描述位置:設置有多靠左 = 如今有多靠左 - 200(圖片寬) 拼接 'px'

  3. 每次的移動須要間隔1秒再移動(代碼是固定格式

    1. setInterval(function() {
          // 你要作的是
      },1000)
  4. 目前設置了盒子的left屬性,盒子還不能移動,緣由是默認佈局方式相似擺貨架,左邊是牆壁,無法讓其往左邊移動,所以咱們給他設置絕對定位,就能夠隨處飛,甚至飛出屏幕外。image-20200211233903679

  5. 那麼來吧,理解了就往下寫

    1. ele.style.position = 'absolute';
      ele.style.left = '0px';
    2. 第一,設置絕對定位就能夠隨便飛absolute(絕對的意思)。第二,設置一個它開始的left位置爲牆壁靠邊邊(道理相似與善始善終)

  6. 整理一下,如今我們的代碼是這樣的(//是註釋,不影響程序運行,僅僅讓人能看懂代碼

    <style>
        // 獲取盒子
        var ele = document.getElementById('lun_bo_tu_he_zi');
        // 讓它飛
        ele.style.position = 'absolute';
        // 設置從哪飛
        ele.style.left = '0px';
        // 每隔一秒作什麼事
        setInterval(function () {
            // 設置它有多靠左 = 如今有多左 - 200 拼接'px'
         ele.style.left = ele.offsetLeft - 200   'px';
        },1000)
    </style>

好了,接下來能夠看效果了,記得保存文件和刷新瀏覽器

倒數第二效果

修修補補

哎喲哎喲,剛纔發現圖怎麼移動就都沒了?

究其緣由就是咱們沒有控制他何時回到初始繼續滾動 在這裏插入圖片描述

接下來問題來了,那麼第三步應該幹嗎? 還向左繼續移動嗎?那不就啥也沒有了!!所以咱們須要讓他回到起點,即:設置left = 0px; 還繼續後續的移動,咱們將代碼修改爲以下:

setInterval(function () {
    // 若是知足()裏面的條件就執行後續,不然執行else
    if (ele.offsetLeft &lt;= -400) {
        // 設置它有多靠左 = '0px'
     	ele.style.left ='0px';
    } else {
        // 設置它有多靠左 = 如今有多左 - 200 拼接'px'
    	 ele.style.left = ele.offsetLeft - 200   'px';
    }
},1000)

如今再好了,接下來就是美化的事了:

  1. 3個圖片同時出現很差看,咱們須要出現一個,則須要把隨着盒子不斷向左 移動而超出<div id="yong_hu_kan">盒子的內容隱藏掉。咱們用css給它設置3個樣式

    1. #yong_hu_kan {
       		overflow: hidden;
              position: relative;
      }
    2. 第一個屬性是超出部分隱藏,第二個屬性是因爲咱們以前設置絕對定位是起飛,所以讓頁面不在知道盒子之間的包含關係了,所以咱們這裏聲明一下,也就是#yong_hu_kan和#lun_bo_tu_he_zi的關係

  2. 再來加個慢慢過渡的效果

    1. 針對那個元素? 回答:#lun_bo_tu_he_zi

    2. 哪個屬性的改變須要過渡? 回答:left

    3. 過渡時間放緩,須要幾秒完成? 回答:1s

    4. #lun_bo_tu_he_zi {
          transition:left 1s;
      }

搞定!看效果倒數第1效果

寫在最後

哎喲,累死了,由於有些知識存在盲區,因此講解的時候幾乎都是左顧右盼來說解的,最後但願你們都能經過這個案例對於前端有必定的興趣,我是武漢人,但願你們能借着此次疫情明白,荒年餓不死手藝人的道理,也但願你們能夠多學習,少追星。。。另外:有須要源碼或者作到一半不會作的同窗能夠想辦法聯繫我,由於不能發第三方的聯繫方式,因此通常都是關注 私信之類的來聯繫了 圖片</div></div>

相關文章
相關標籤/搜索