国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

用CSS3 transition屬性實現淡入淡出輪播圖

Heier / 3871人閱讀

摘要:最近想自己寫下輪播圖,在網上發現一個網友用屬性實現的輪播,趕腳超簡單哦,自己學習了后整理如下。如果我們用給加上類,的就要變成對吧,由于有屬性,所以要等,才能完全變為,實現了淡入。

最近想自己寫下輪播圖,在網上發現一個網友用CSS transition屬性實現的輪播,趕腳超簡單哦,自己學習了后整理如下。(找不到原網址了-.-...就不貼了...)
(如果不了解transition,先去這里(點我,點我)學習下)

思路

圖片淡入淡出效果是不透明度(CSS opacity屬性)的變換過程。舉例,讓圖片淡出,就是圖片的opacity屬性在一段時間內逐漸從1變為0,淡入呢,則是圖片的opacity屬性在一段時間內逐漸從0變為1,用transition可以輕松實現啊。

我們設置圖片的CSS樣式如下,先不考慮布局和寬高這些。

img{
  opacity: 0;
  transition: opacity 1s;
}
img.active{
  opacity: 1;
}

這段CSS能實現什么呢?

一開始,img的opacity為0,所以我們看不見。如果我們用JS給img加上active類,img的opacity就要變成1對吧,由于有transition屬性,所以要等1s,opacity才能完全變為1,實現了淡入。

那淡出呢?你想下,等img淡入完了之后,我又用JS刪掉img的active類會怎么樣?這時候img的opacity應該從1變為0對吧,又由于有transition屬性,所以opacity要等1s才能變為0,這就實現了淡出。

JS的setInterval(code,millisec)(點我學習該函數)可以每隔一段時間就執行指定代碼。如果我每隔1s就更改下img的類名,如果有active類就刪掉,如果沒有就加上,這樣圖片就不斷地淡入 → 淡出 → 淡入 →  淡出。

怎么實現多張圖片輪流淡入淡出呢?

你每次刪掉當前圖片的active類(淡出),然后給下一張圖片加上active類(淡入),這樣就實現了圖片的切換。

剩下的就是每隔固定時間間隔,執行切換圖片函數就行了。

先上兩個效果圖。

點我跳轉CodePen看本文代碼最終效果,打開可能有點慢,耐心等等。這個是圖片自動輪播,也可以通過圖片底部的頁碼選擇圖片。

點我跳轉看稍微變動后的另一種效果(這是仿的京東首頁輪播圖效果,鼠標滑到圖片上時會顯示左右按鈕框,點擊左右按鈕框也可實現圖片切換。)

只有圖片的輪播

HTML比較簡單,就是一個

里面扔三個(假設是三張輪播圖哈)。第一張圖片已經加上了active類,這樣網頁加載的時候就會有圖片,通過JS來添加active類初始化比較慢,要等JS加載。

     

CSS如下。設置好

的尺寸,讓重疊在一起,并且opacity為0。而具有active類的的opacity為1。當然,別忘了設置transition: opacity 1s linear;。

*{
  padding: 0;
  margin: 0;
}
#slideshow{
  width: 800px;  
  height: 350px;
  margin: 0 auto; /*設置在頁面水平居中*/
  overflow: hidden;
  position: relative;  
}
#slideshow img{
  width: 800px;
  position: absolute; /*圖片采取絕對定位,均位于左上角,重疊在一起*/
  top: 0;
  left: 0;
  opacity: 0; /*初始不透明度為0,圖片都看不見*/
  transition: opacity 1s linear; /*--重點--定義一個關于透明度的transition*/
}
#slideshow img.active{
  opacity: 1; /*有active類的圖片不透明度為1,即顯示圖片*/
}

JS如下。在輪播函數slideshow()里,定義了圖片淡出函數slideOff(),圖片淡入函數slideOn()和切換圖片函數changeSlide()。

//---------主角:輪播圖函數-------------
function slideshow() {
  var slideshow=document.getElementById("slideshow"),
  imgs=slideshow.getElementsByTagName("img"), //得到圖片們
  current=0; //current為當前活躍的圖片編號

  function slideOff() {
    imgs[current].className=""; //圖片淡出
  }
  function slideOn() {
    imgs[current].className="active"; //圖片淡入
  }

  function changeSlide() { //切換圖片的函數
    slideOff(); //圖片淡出
    current++; //自增1
    if(current>=3) current=0;
    slideOn(); //圖片淡入
  }
  
  //每2s調用changeSlide函數進行圖片輪播
  var slideon=setInterval(changeSlide,2000);  
}

slideshow();

這里有個問題哦,輪播圖一般鼠標移入圖片后,輪播就停止了,當鼠標移出后,輪播又開始對吧。我們用JS的onmouseover和onmouseout來實現。

在JS的slideshow()函數中加入以下代碼即可。

slideshow.onmouseover=function () {
  clearInterval(slideon); //當鼠標移入時清除輪播事件
}
slideshow.onmouseout=function () {
  slideon=setInterval(changeSlide,2000); //當鼠標移出時重新開始輪播事件
}

具體效果見CodePen鏈接。

加上頁碼

恩,然后我們加上和每張圖片相對應的頁碼,并實現鼠標移上去就會顯示相應圖片這個功能。

在HTML的

中要添加如下。

1  2  3

第一個我也是已經添加了active類。

然后設置頁碼的樣式,讓它們位于圖片的底部,一字排開。

/* 設置頁碼的樣式 */
#slideshow div{
  width: 100%;
  position: absolute;
  bottom: 10px;
  text-align: center;
}
#slideshow span{
  display: inline-block;
  width: 25px;
  line-height: 25px;  /*當只有一行文本時height等于line-height*/
  border-radius: 25px;  /*設置頁碼為圓形*/
  margin: 0 15px;  
  background: white;
  font-size: 16px;
}
#slideshow span.active{
  color: white;
  background: #FFDD55;
}

在JS中,slideOff()和slideOn()函數都要更新下,因為淡入淡出時的類名也要進行變更。

function slideOff() {
  imgs[current].className=""; //圖片淡出
  pages[current].className="";
}
function slideOn() {
  imgs[current].className="active"; //圖片淡入
  pages[current].className="active";
}

再就是鼠標移入時,需要顯示對應的圖片對吧。我們先把當前圖片淡出,然后得到當前對應的current,再讓圖片淡入就好啦。

for(var i=0; i<pages.length; i++)="" {="" 定義鼠標移入和移出頁碼事件="" pages[i].onmouseover="function(){" slideoff();="" 圖片淡出="" current="this.innerHTML-1;" 得到鼠標停留的頁碼對應的current="" slideon();="" }="" }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/115351.html

相關文章

  • CSS3 transition屬性實現淡入淡出播圖

    摘要:首先,巧妙的使用這一標記,將游覽器從所有情況中分離出來。元素不能用作語義用途以外的其他目的。空白段落元素并非用于跳行。當瀏覽器支持時,它們會自動地呈現出來并發揮作用。Html1、Html5有哪些新特性,移除了哪些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區別HTML和HTML5?HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。拖拽釋放(D...

    姘存按 評論0 收藏0
  • 基于CSS3實現淡入(fadeIn)淡出(fadeOut)效果

    摘要:網上的淡入淡出效果大多是依照中和的方法使用來控制元素的透明度達到目的,但缺點是有輕微的卡頓感,并且運行效率一般。思路是將淡入,淡出的效果做成預先定義好的樣式類,然后用改變元素的類來達到圖片輪播。 網上的淡入淡出效果大多是依照jquery中fadeIn和fadeOut的方法使用js來控制元素的透明度達到目的,但缺點是有輕微的卡頓感,并且運行效率一般。 這里提供另外一個思路,即通過預先定義...

    XUI 評論0 收藏0
  • React動畫

    摘要:一實現動畫通過讓界面迅速發生變化但動畫的哲學告訴我們變化要慢得用一個逐漸變化的過程來過渡從而幫助用戶理解頁面界面的變化可以分為節點或組件的增與減以及節點或屬性的變化其中提供的能夠幫助我們便捷的識別出增加或刪除的組件從而讓我們能夠專注于更加簡 一.React實現動畫 1.React通過setState讓界面迅速發生變化,但動畫的哲學告訴我們,變化要慢,得用一個逐漸變化的過程來過渡,從而幫...

    ThinkSNS 評論0 收藏0
  • 移動端布局與適配

    摘要:實戰之微信錢包騰訊服務界面網格布局是讓開發人員設計一個網格并將內容放在這些網格內。對于移動端適配,不同的公司不同的團隊有不同的解決方案。柵格系統用于處理頁面多終端適配的問題。 grid實戰之微信錢包 騰訊服務界面 CSS3網格布局是讓開發人員設計一個網格并將內容放在這些網格內。而不是使用浮動制作一個網格,實際上是你將一個元素聲明為一個網格容器,并把元素內容置于網格中。 移動端頁面適配—...

    Clect 評論0 收藏0
  • 原生js + css3 + 定時器 無縫播圖(部分)

    摘要:起因現在自學前端中,學到移動端,在做一個項目,課程開始用原生的方法寫輪播圖無縫,但是視頻講的是面向過程的方式,現在自己用面向對象的方式寫一下。 ## 起因 ## 現在自學前端中,學到移動端,在做一個項目,課程開始用原生的方法寫輪播圖(無縫),但是視頻講的是面向過程的方式,現在自己用面向對象的方式寫一下。 ## 上代碼 ## html的代碼 分類 ...

    IamDLY 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<