欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript的列表切換【實(shí)現(xiàn)代碼】

 更新時(shí)間:2016年05月03日 17:06:45   投稿:jingxian  
下面小編就為大家?guī)硪黄猨avascript的列表切換【實(shí)現(xiàn)代碼】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。

IE兼容性沒處理,確切的說不太會,還望指點(diǎn)一二

思路:

1、js獲取要給定點(diǎn)擊事件的按鈕組對象,如btns=document.xxx(),遍歷過程綁定事件之前先取得當(dāng)前對象的下標(biāo)eg:btns[i].index=i;

2、匹配index為將要顯示的DOM對象

3、點(diǎn)擊過程中要切換class,先判斷是否含有指定class,有就刪除,沒有就添加指定class。注:if(!null)為真.

4、onmouseover同理

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <link rel="stylesheet" href="css/index.css">
  <script src="js/index-banner.js"></script>
</head>
<body>
  <h3>javascript切換效果</h3>
  <section>
    <div class="baner_parent">
      <div class="will_left btn_left">
        <ul>
          <li data-i="0" class="selected js_btn"><img src="img/Ferrari.png"><span>法拉利</span></li>
          <li data-i="1" class="js_btn"><img src="img/Mercedes1.png"><span>奔馳</span></li>
          <li data-i="2" class="js_btn"><img src="img/BMW.png"><span>寶馬</span></li>
          <li data-i="3" class="js_btn"><img src="img/Audi.png"><span>奧迪</span></li>
        </ul>
      </div>
      <div class="will_left banner_right">
        <!--法拉利-->
        <div class="banner_lists">
          <img src="img/ferrari01.jpg" alt="">
          <ul>
            <li class="will_left btn selected">法拉利1</li>
            <li class="will_left btn">法拉利2</li>
            <li class="will_left btn">法拉利3</li>
            <li class="will_left btn">法拉利4</li>
          </ul>
        </div>
        <!--奔馳-->
        <div class="banner_lists">
          <img src="img/benchi01.jpg" alt="">
          <ul>
            <li class="will_left btn selected">奔馳1</li>
            <li class="will_left btn">奔馳2</li>
            <li class="will_left btn">奔馳3</li>
            <li class="will_left btn">奔馳4</li>
          </ul>
        </div>
        <!--寶馬-->
        <div class="banner_lists">
          <img src="img/baoma01.jpg" alt="">
          <ul>
            <li class="will_left btn selected">寶馬1</li>
            <li class="will_left btn">寶馬2</li>
            <li class="will_left btn">寶馬3</li>
            <li class="will_left btn">寶馬4</li>
          </ul>
        </div>
        <!--奧迪-->
        <div class="banner_lists">
          <img src="img/aodi01.jpg" alt="">
          <ul>
            <li class="will_left btn selected">奧迪1</li>
            <li class="will_left btn">奧迪2</li>
            <li class="will_left btn">奧迪3</li>
            <li class="will_left btn">奧迪4</li>
          </ul>
        </div>
      </div>
    </div>
  </section>
</body>
</html>

CSS

*{
  list-style: none;
  border:none;
  text-decoration: none;
  margin:0;
  padding:0;
  box-sizing: border-box;
}
h3{
  text-align: center;
  color: dimgrey;
}
.baner_parent{
  width: 1000px;
  margin:0 auto;
}
.will_left{
  float: left;
}
.will_right{
  float: right;
}
.btn_left ul li{
  text-align: center;
  width: 160px;
  height:98px;
  background-color: darkgrey;
  padding: 13px 0;
  cursor: pointer;
  -webkit-transition:all .5s ease-out;
  -moz-transition:all .5s ease-out;
  -o-transition:all .5s ease-out;
  -ms-transition:all .5s ease-out;
  transition:all .5s ease-out;
}
.btn_left ul li.selected{
  background-color: cornflowerblue;
}
.btn_left ul li:not(:nth-child(4)){
  border-bottom: 1px solid dimgrey;
}
.btn_left ul li img{
  width: 50px;
  height: 50px;
}
.btn_left ul li span{
  display:block;
}
.banner_right,.banner_lists img{
  width: 800px;
  height: 391px;
  position: relative;
}
.banner_lists{
  position: absolute;
  height: 391px;
}
.banner_lists:not(:nth-child(1)){
  display: none;
}
.banner_lists ul{
  overflow: hidden;
  position: absolute;
  bottom: 0;
  left: 0;
}
.btn{
  height: 33px;
  width: 200px;
  border-right: 1px solid #000;
  margin-top: -3px;
  text-align: center;
  line-height: 33px;
  background-color: darkgrey;
  opacity: .8;
  cursor: pointer;
  -webkit-transition:all .5s ease-out;
  -moz-transition:all .5s ease-out;
  -o-transition:all .5s ease-out;
  -ms-transition:all .5s ease-out;
  transition:all .5s ease-out;
}
.btn:hover,.btn.selected{
  background-color: cornflowerblue;
}

JS

/**
 * Created by Administrator on 2016/4/30 0030.
 * blog:wjf444128852.github.io
 *  不支持IE
 */
window.onload=function(){
  var arrFR = ['img/ferrari01.jpg','img/ferrari02.jpg','img/ferrari03.jpg','img/ferrari04.jpg'];
  var arrBC = ['img/benchi01.jpg','img/benchi02.jpg','img/benchi03.jpg','img/benchi04.jpg'];
  var arrBM = ['img/baoma01.jpg','img/baoma02.jpg','img/baoma03.jpg','img/baoma04.jpg'];
  var arrAD = ['img/aodi01.jpg','img/aodi02.jpg','img/aodi03.jpg','img/aodi04.jpg'];
  var array = [arrFR,arrBC,arrBM,arrAD];
  var btns=document.getElementsByClassName('js_btn');
  var divList=document.getElementsByClassName('banner_lists');
  // 品牌切換
  for(var i=0;i<btns.length;i++){
    btns[i].index=i;
    btns[i].onclick=showItems;
  }
  //ClassName切換,是否含有指定class
  function hasClass(elem,cls){
    return elem.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
  }
  // 沒有就追加指定class
  function addClass(elem,cls){
    if(!hasClass(elem,cls)){
      elem.className+=" "+cls;
    }
  }
  // 有就移除指定class
  function removeClass(elem,cls){
    if(hasClass(elem,cls)){
      var reg=new RegExp('(\\s|^)'+cls+'(\\s|$)');
      elem.className=elem.className.replace(reg,"");
    }
  }
  //ClassName切換,移除所有
  function removeAll(obj){
    for (var i = 0; i < obj.length; i++) {
      removeClass(obj[i],"selected");
    }
  }
  // DIV顯示切換
   function showItems(){
     removeAll(btns);
     addClass(this,"selected");
     for (var s = 0; s< divList.length; s++) {
      divList[s].style.display="none";
      divList[this.index].style.display="block";    
    }
    willHover(this.index);
  }
  // 右邊切換按鈕效果
  function willHover(sum){
    var hoverbtns=divList[sum].getElementsByClassName('btn');
    var img=divList[sum].getElementsByTagName('img')[0];
    for (var i = 0; i < hoverbtns.length; i++) {
      hoverbtns[i].index=i;
      hoverbtns[i].onmouseover=function(){
        removeAll(hoverbtns);
         addClass(this,"selected");
        var imgSrc=array[sum][this.index];
        img.src=array[sum][this.index];
      }
    }
  }
  // 默認(rèn)第一次可以切換
  willHover(0);
};

以上這篇javascript的列表切換【實(shí)現(xiàn)代碼】就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

  • JScript內(nèi)置對象Array中元素的刪除方法

    JScript內(nèi)置對象Array中元素的刪除方法

    JScript內(nèi)置對象Array中元素的刪除方法...
    2007-03-03
  • ES6中l(wèi)et、const的區(qū)別及變量的解構(gòu)賦值操作方法實(shí)例分析

    ES6中l(wèi)et、const的區(qū)別及變量的解構(gòu)賦值操作方法實(shí)例分析

    這篇文章主要介紹了ES6中l(wèi)et、const的區(qū)別及變量的解構(gòu)賦值操作方法,結(jié)合實(shí)例形式分析了ES6中l(wèi)et、const的功能、原理、使用方法及數(shù)組、字符串、函數(shù)參數(shù)等解構(gòu)賦值相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • BootStrap實(shí)用代碼片段之一

    BootStrap實(shí)用代碼片段之一

    這篇文章主要為大家詳細(xì)介紹了BootStrap實(shí)用代碼片段之一,總結(jié)在使用BootStrap中遇到的問題,并記錄解決方法,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Javascript控制頁面鏈接在新窗口打開具體方法

    Javascript控制頁面鏈接在新窗口打開具體方法

    今天看一個(gè)朋友說不在A標(biāo)題中加打開窗口形式要怎么讓頁面中所有頁面在新頁面打開,后來我找了幾種比較實(shí)用辦法,個(gè)人最喜歡的是最后一種方法哦
    2013-08-08
  • JavaScript實(shí)現(xiàn)繼承的4種方法總結(jié)

    JavaScript實(shí)現(xiàn)繼承的4種方法總結(jié)

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)繼承的4種方法總結(jié),本文給出了原型鏈繼承、構(gòu)造繼承、實(shí)例繼承、拷貝繼承等實(shí)現(xiàn)JS繼承的方法,需要的朋友可以參考下
    2014-10-10
  • 解決AJAX中跨域訪問出現(xiàn)''沒有權(quán)限''的錯(cuò)誤

    解決AJAX中跨域訪問出現(xiàn)''沒有權(quán)限''的錯(cuò)誤

    很多人在使用AJAX調(diào)用別人站點(diǎn)內(nèi)容的時(shí)候,JS會提示"沒有權(quán)限"錯(cuò)誤,這是XMLHTTP組件的限制-安全起見
    2008-08-08
  • 利用JavaScript編寫一個(gè)花里胡哨的點(diǎn)擊按鈕

    利用JavaScript編寫一個(gè)花里胡哨的點(diǎn)擊按鈕

    這篇文章主要介紹了如何利用HTML+CSS+JavaScript制作一個(gè)花里胡哨的點(diǎn)擊按鈕。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-03-03
  • JS中多種方式創(chuàng)建對象詳解

    JS中多種方式創(chuàng)建對象詳解

    下面小編就為大家?guī)硪黄狫S中多種方式創(chuàng)建對象詳解。小編覺得挺不錯(cuò)的?,F(xiàn)在分享給大家,給大家一個(gè)參考。一起跟隨小編過來看看吧
    2016-03-03
  • 基于事件冒泡、事件捕獲和事件委托詳解

    基于事件冒泡、事件捕獲和事件委托詳解

    這篇文章主要介紹了事件冒泡、事件捕獲和事件委托,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 最新評論