最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生JS實現(xiàn)旋轉(zhuǎn)輪播圖+文字內(nèi)容切換效果【附源碼】

 更新時間:2018年09月29日 08:58:42   作者:騎碼行天下  
這篇文章主要介紹了原生JS實現(xiàn)旋轉(zhuǎn)輪播圖+文字內(nèi)容切換效果,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

廢話不多說,直接上圖看效果:

需求: 點(diǎn)擊左右按鈕實現(xiàn)切換用戶圖片與信息;

原理: 點(diǎn)擊右側(cè)左側(cè)按鈕,把3號的樣式給2號,2號的給1號,1號的給5號,5號的給4號,4號的樣式給3號,然后根據(jù)現(xiàn)在是第幾張圖片切換成對應(yīng)的文字;

步驟:

1.讓頁面加載出所有盒子的樣式;

2.把兩側(cè)按鈕綁定事件(調(diào)用同一個方法,只有一個參數(shù),true為正向旋轉(zhuǎn),false為反向旋轉(zhuǎn));

3.書寫函數(shù): 操作函數(shù):左按鈕:刪除第一個,添加到最后一個; 右按鈕:刪除最后一個,添加到第一個;

4.定義變量,根據(jù)對應(yīng)變量切換對應(yīng)的文字內(nèi)容;

代碼事例如下:

HTML代碼:

寫法思路:

1.定義好5張圖片,進(jìn)行圖片信息切換;

2.書寫好你需要切換的文字內(nèi)容,定義一個ID;

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>學(xué)員信息輪播圖</title>
 <link rel="stylesheet" href="css/css.css" rel="external nofollow" />
 <script src="js/jquery1.0.0.1.js"></script>
 <script src="js/js.js"></script>
</head>
<body>
 <div class="feedbackwrap" id="feedbackwrap">
  <div class="feedbackslide" id="feedbackslide">
   <ul>
    <!--五張圖片-->
    <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/1.png" alt=""/></a></li>
    <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/2.png" alt=""/></a></li>
    <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/3.png" alt=""/></a></li>
    <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/4.png" alt=""/></a></li>
    <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="images/5.png" alt=""/></a></li>
   </ul>
   <!--左右切換按鈕-->
   <div class="feedbackarrow" id="feedbackarrow">
    <a href="javascript:;" rel="external nofollow" rel="external nofollow" class="feedbackprev"></a>
    <a href="javascript:;" rel="external nofollow" rel="external nofollow" class="feedbacknext"></a>
   </div>
  </div>
  <div class="feedbackname">
    <p class="p1">學(xué)員</p>
    <p class="p2" id="feedstudent">歐陽常斌3</p>
  </div>
 </div>
</body>
</html>

css代碼:

寫法思路:

1.定義好左右切換按鈕的背景圖片;

2.清除默認(rèn)樣式;

3.寫好絕對定位,相對定位;

@charset "UTF-8";
/*初始化 reset*/
blockquote,body,button,dd,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,hr,input,legend,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}
body,button,input,select,textarea{font:12px/1.5 "Microsoft YaHei", "微軟雅黑", SimSun, "宋體", sans-serif;color: #666;}
ol,ul{list-style:none}
a{text-decoration:none}
fieldset,img{border:0;vertical-align:top;}
a,input,button,select,textarea{outline:none;}
a,button{cursor:pointer;}
.feedbackwrap{
 width:924px;
 margin:auto;
 margin-top: 300px;
}
.feedbackslide {
 height:144px;
 position: relative;
}
.feedbackslide li{
 position: absolute;
 left:30px;
 top:0;
}
.feedbackslide li img{
 width:100%;
 box-shadow:#d6d4d3 0px 0px 20px;
}
.feedbackarrow{
 opacity: 1;
}
.feedbackprev,.feedbacknext{
 width:27px;
 height:50px;
 position: absolute;
 top:50%;
 margin-top:-25px;
 background: url(../images/leftblue.png) no-repeat;
 z-index: 99;
}
.feedbacknext{
 right:0;
 background-image: url(../images/rightblue.png);
}
.feedbackname{
 width: 100%;
 margin-top: 26px;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
}
.feedbackname .p1{
 font-size: 22px;
 color: #333;
 margin-bottom: 10px;
}
.feedbackname .p2{
 font-size: 18px;
 color: #666;
}

js代碼:

寫法思路:

1.定義一個數(shù)組,方便切換圖片的樣式,進(jìn)行動畫效果;

2.獲取元素,定義名稱,方便用取;

3. 把兩側(cè)按鈕綁定事件。(調(diào)用同一個方法,只有一個參數(shù),true為正向旋轉(zhuǎn),false為反向旋轉(zhuǎn));

4. 在次為頁面上的所有l(wèi)i賦值屬性,利用緩動框架;

window.onload = function () {
 var arr = [
  { // 1
   width:120,
   top:11,
   left:87,
   opacity:20,
   zIndex:2
  },
  { // 2
   width:120,
   top:11,
   left:237,
   opacity:40,
   zIndex:3
  },
  { // 3
   width:144,
   top:0,
   left:387,
   opacity:100,
   zIndex:4
  },
  { // 4
   width:120,
   top:11,
   left:561,
   opacity:40,
   zIndex:3
  },
  { //5
   width:120,
   top:11,
   left:711,
   opacity:20,
   zIndex:2
  }
 ];
 //0.獲取元素
 var feedbackslide = document.getElementById("feedbackslide");
 var feedbackliArr = feedbackslide.getElementsByTagName("li");
 var feedbackarrow = feedbackslide.children[1];
 var arrowChildren = feedbackarrow.children;
 var arrowleft=5;
 //設(shè)置一個開閉原則變量,點(diǎn)擊以后修改這個值。
 var flag = true;
 move();
 //3.把兩側(cè)按鈕綁定事件。(調(diào)用同一個方法,只有一個參數(shù),true為正向旋轉(zhuǎn),false為反向旋轉(zhuǎn)) 
 arrowChildren[0].onclick = function () {
  if(flag){
   flag = false;
   move(false);
  }
  arrowleft++;
  console.log("left+++",arrowleft)
  if(arrowleft==1){
   document.getElementById("feedstudent").innerText="小岳岳2";
  }else if(arrowleft==2){
   document.getElementById("feedstudent").innerText="張三峰1";
  }else if(arrowleft==3){
   document.getElementById("feedstudent").innerText="林動5";
  }else if(arrowleft==4){
   document.getElementById("feedstudent").innerText="令狐沖4";
  }else if(arrowleft==5){
   document.getElementById("feedstudent").innerText="歐陽常斌3";
   arrowleft=0;
  }else{
   document.getElementById("feedstudent").innerText="小岳岳2";
   arrowleft=1;
  }
 }
 arrowChildren[1].onclick = function () {
  if(flag){
   flag = false;
   move(true);
  }
  arrowleft--;
  console.log("right---",arrowleft)
  if(arrowleft==1){
   document.getElementById("feedstudent").innerText="小岳岳2";
  }else if(arrowleft==2){
   document.getElementById("feedstudent").innerText="張三峰1";
  }else if(arrowleft==3){
   document.getElementById("feedstudent").innerText="林動5";
  }else if(arrowleft==4){
   document.getElementById("feedstudent").innerText="令狐沖4";
  }else{
   document.getElementById("feedstudent").innerText="歐陽常斌3";
   arrowleft=5;
  }
 }
 //4.書寫函數(shù)。
 function move(bool){
  //判斷:如果等于undefined,那么就不執(zhí)行這兩個if語句
  if(bool === true || bool === false){
   if(bool){
    arr.unshift(arr.pop());
   }else{
    arr.push(arr.shift());
   }
  }
  //在次為頁面上的所有l(wèi)i賦值屬性,利用緩動框架
  for(var i=0;i<feedbackliArr.length;i++){
   animate(feedbackliArr[i],arr[i], function () {
    flag = true;
   });
  }
 }
}

動畫效果js代碼如下:

function show(ele){
 ele.style.display = "block";
}
/**
 * 獲取元素樣式兼容寫法
 * @param ele
 * @param attr
 * @returns {*}
 */
function getStyle(ele,attr){
 if(window.getComputedStyle){
  return window.getComputedStyle(ele,null)[attr];
 }
 return ele.currentStyle[attr];
}
//參數(shù)變?yōu)?個
//參數(shù)變?yōu)?個
function animate(ele,json,fn){
 //先清定時器
 clearInterval(ele.timer);
 ele.timer = setInterval(function () {
  //開閉原則
  var bool = true;
  //遍歷屬性和值,分別單獨(dú)處理json
  //attr == k(鍵) target == json[k](值)
  for(var k in json){
   //四部
   var leader;
   //判斷如果屬性為opacity的時候特殊獲取值
   if(k === "opacity"){
    leader = getStyle(ele,k)*100 || 1;
   }else{
    leader = parseInt(getStyle(ele,k)) || 0;
   }
   //1.獲取步長
   var step = (json[k] - leader)/10;
   //2.二次加工步長
   step = step>0?Math.ceil(step):Math.floor(step);
   leader = leader + step;
   //3.賦值
   //特殊情況特殊賦值
   if(k === "opacity"){
    ele.style[k] = leader/100;
    //兼容IE678
    ele.style.filter = "alpha(opacity="+leader+")";
    //如果是層級,一次行賦值成功,不需要緩動賦值
    //為什么?需求!
   }else if(k === "zIndex"){
    ele.style.zIndex = json[k];
   }else{
    ele.style[k] = leader + "px";
   }
   //4.清除定時器
   //判斷: 目標(biāo)值和當(dāng)前值的差大于步長,就不能跳出循環(huán)
   //不考慮小數(shù)的情況:目標(biāo)位置和當(dāng)前位置不相等,就不能清除清除定時器。
   if(json[k] !== leader){
    bool = false;
   }
  }
  //只有所有的屬性都到了指定位置,bool值才不會變成false;
  if(bool){
   clearInterval(ele.timer);
   //所有程序執(zhí)行完畢了,現(xiàn)在可以執(zhí)行回調(diào)函數(shù)了
   //只有傳遞了回調(diào)函數(shù),才能執(zhí)行
   if(fn){
    fn();
   }
  }
 },5);
}
//獲取屏幕可視區(qū)域的寬高
function client(){
 if(window.innerHeight !== undefined){
  return {
   "width": window.innerWidth,
   "height": window.innerHeight
  }
 }else if(document.compatMode === "CSS1Compat"){
  return {
   "width": document.documentElement.clientWidth,
   "height": document.documentElement.clientHeight
  }
 }else{
  return {
   "width": document.body.clientWidth,
   "height": document.body.clientHeight
  }
 }
}

下面給大家奉上源碼下載:http://demo.jb51.net/js/2018/students.rar

總結(jié)

以上所述是小編給大家介紹的原生JS實現(xiàn)旋轉(zhuǎn)輪播圖+文字內(nèi)容切換效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • layui 地區(qū)三級聯(lián)動 form select 渲染的實例

    layui 地區(qū)三級聯(lián)動 form select 渲染的實例

    今天小編就為大家分享一篇layui 地區(qū)三級聯(lián)動 form select 渲染的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 在Node.js中使用Javascript Generators詳解

    在Node.js中使用Javascript Generators詳解

    下面小編就為大家?guī)硪黄贜ode.js中使用Javascript Generators詳解。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考
    2016-05-05
  • JavaScript中的apply()方法和call()方法使用介紹

    JavaScript中的apply()方法和call()方法使用介紹

    我們發(fā)現(xiàn)apply()和call()的真正用武之地是能夠擴(kuò)充函數(shù)賴以運(yùn)行的作用域,如果我們想用傳統(tǒng)的方法實現(xiàn)
    2012-07-07
  • 原生js的RSA和AES加密解密算法

    原生js的RSA和AES加密解密算法

    這篇文章主要為大家詳細(xì)介紹了原生js的RSA和AES加密解密算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 常用前端手寫功能進(jìn)階示例詳解

    常用前端手寫功能進(jìn)階示例詳解

    這篇文章主要為大家介紹了前端手寫功能進(jìn)階的相關(guān)技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • JavaScript第一篇之實現(xiàn)按鈕全選、功能

    JavaScript第一篇之實現(xiàn)按鈕全選、功能

    這篇文章主要介紹了JavaScript第一篇之實現(xiàn)按鈕全選、功能的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • js判斷FCKeditor內(nèi)容是否為空的兩種形式

    js判斷FCKeditor內(nèi)容是否為空的兩種形式

    FCKeditor內(nèi)容是否為空在提交表單時一定要判斷的,下面與大家分享下兩種形式,感興趣的朋友可以參考下哈
    2013-05-05
  • JS實現(xiàn)圖片轉(zhuǎn)換成base64的各種應(yīng)用場景實例分析

    JS實現(xiàn)圖片轉(zhuǎn)換成base64的各種應(yīng)用場景實例分析

    這篇文章主要介紹了JS實現(xiàn)圖片轉(zhuǎn)換成base64的各種應(yīng)用場景,結(jié)合實例形式分析了javascript實現(xiàn)圖片轉(zhuǎn)換成base64的各種應(yīng)用場景的相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2018-06-06
  • 深入理解JavaScript內(nèi)存管理和GC算法

    深入理解JavaScript內(nèi)存管理和GC算法

    這篇文章主要介紹了深入理解JavaScript內(nèi)存管理和GC算法,下面文章主要講解JavaScript的垃圾回收機(jī)制以及常用的垃圾回收算法;還講解了V8引擎中的內(nèi)存管理,最后介紹了Performance工具如何使用
    2022-07-07
  • 詳解Bootstrap四種圖片樣式

    詳解Bootstrap四種圖片樣式

    本文給大家介紹Bootstrap 對圖片的支持,Bootstrap提供了四個可對圖片應(yīng)用簡單樣式的class,對Bootstrap四種圖片class相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01

最新評論

克什克腾旗| 泸定县| 竹北市| 肇庆市| 千阳县| 贵德县| 高雄市| 平潭县| 龙江县| 岳池县| 岳普湖县| 琼海市| 崇文区| 张北县| 英超| 宝鸡市| 当涂县| 郯城县| 千阳县| 房山区| 鲁甸县| 玛纳斯县| 麻阳| 滨海县| 社会| 丰顺县| 桃园市| 洪泽县| 宁化县| 达尔| 舒城县| 宜丰县| 霍州市| 三台县| 福建省| 香河县| 富民县| 池州市| 福泉市| 翁牛特旗| 光泽县|