成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js實(shí)現(xiàn)上下滑動(dòng)輪播

3403771864 / 481人閱讀

  本文主要講述關(guān)于js實(shí)現(xiàn)上下滑動(dòng)輪播的具體代碼,希望對大家有幫助。具體內(nèi)容如下

  一、效果圖

  二、設(shè)計(jì)思路

  第一步:要在經(jīng)過所有的元素讓鼠標(biāo)點(diǎn)擊右側(cè)小圖時(shí),圖片至少變亮且根據(jù)偏移值加上紅框。點(diǎn)擊右邊的小圖左邊出現(xiàn)對用的圖片。

  第二步:也可以進(jìn)入循環(huán)計(jì)時(shí)器,復(fù)制ul里面的第一個(gè)元素這樣可以不斷的連續(xù)循環(huán)滑動(dòng)。

  第三步:當(dāng)鼠標(biāo)進(jìn)入時(shí)讓循環(huán)滑動(dòng)停止,鼠標(biāo)移動(dòng)開時(shí)繼續(xù)。

  第四步:設(shè)置上下按鈕,當(dāng)?shù)谝粡垐D片的offsetTop值為0時(shí),下面按鈕出現(xiàn),當(dāng)?shù)竭_(dá)底部最后一個(gè)元素時(shí),上面按鈕出現(xiàn),底部按鈕消失,當(dāng)在整個(gè)元素中間時(shí),上下按鈕都出現(xiàn),每點(diǎn)擊一次按鈕移動(dòng)一個(gè)格子,左邊圖片也對應(yīng)改變。

  三、核心代碼

 

  //找到right-btn 元素添加事件
  var righttBtnList;
  var Line;
  var transy = 0;
  var liHeight = 430;
  var ulItem;
  var count = 0;
  var timer;
  var speed = 2000;
  var Item;
  var ItemMenu;
  var offsetTop = 0;
  var itemtabinfo, topBtn, bottomBtn;
  window.onload = function () {
  righttBtnList = document.getElementsByClassName("right-btn");
  Line = document.getElementsByClassName("line")[0];
  ulItem = document.getElementsByClassName("item-child-ul")[0];
  Item = document.getElementsByClassName("item-list")[0];
  ItemMenu = document.getElementsByClassName("item-menu")[0];
  itemtabinfo = document.getElementsByClassName("item-tab-info")[0];
  topBtn = document.getElementsByClassName("top-btn")[0];
  bottomBtn = document.getElementsByClassName("bottom-btn")[0];
  //默認(rèn)復(fù)制第一張?zhí)砑拥絬lItem之中
  ulItem.appendChild(ulItem.children[0].cloneNode(true));
  //設(shè)置itemtabinfo 默認(rèn)移動(dòng)值
  itemtabinfo.style.transform = "translateY(" + offsetTop + "px)";
  //直接默認(rèn)啟動(dòng)計(jì)時(shí)器
  Animate();
  //遍歷所有的li添加事件
  for (var i = 0; i < righttBtnList.length; i++) {
  righttBtnList[i].index = i;
  righttBtnList[i].onclick = function () {
  //點(diǎn)擊當(dāng)前移除top-white
  if (checkClass(this, 'top-white')) {
  this.classList.remove("top-white");
  //其余的添加
  addWhite(this.index);
  }
  //獲取偏移值
  Line.style.top = ((this.index * 110 + 10) + offsetTop) + "px";
  //輸出當(dāng)前點(diǎn)擊的索引
  ulItem.style.transform = "translateY(" + (-this.index * liHeight) + "px)";
  //用戶點(diǎn)擊的索引 對應(yīng)count值
  count = this.index;
  }
  }
  Item.onmouseenter=function(){
  clearTimeout(timer);
  }
  Item.onmouseleave=function(){
  Animate();
  }
  topBtn.onclick = function () {
  offsetTop += 110;
  //獲取原來的top
  var oldTop = parseFloat(Line.style.top);
  Line.style.top = (oldTop + 110) + "px";
  itemtabinfo.style.transform = "translateY(" + offsetTop + "px)";
  checkBtnShow();
  }
  bottomBtn.onclick = function () {
  offsetTop -= 110;
  //獲取原來的top
  var oldTop = parseFloat(Line.style.top);
  //只能取到行內(nèi)樣式
  Line.style.top = (oldTop - 110) + "px";
  itemtabinfo.style.transform = "translateY(" + offsetTop + "px)";
  checkBtnShow();
  }
  ItemMenu.onmouseenter = function () {
  checkBtnShow();
  }
  function checkBtnShow() {
  if (offsetTop == 0) {
  //下面按鈕出現(xiàn)
  bottomBtn.classList.add("showBottom");
  topBtn.classList.remove("showTop");
  }
  else if (offsetTop == -220) {
  //上面按鈕出現(xiàn)
  topBtn.classList.add("showTop");
  bottomBtn.classList.remove("showBottom");
  } else {
  //兩個(gè)按鈕同時(shí)出現(xiàn)
  bottomBtn.classList.add("showBottom");
  topBtn.classList.add("showTop");
  }
  }
  ItemMenu.onmouseleave = function () {
  bottomBtn.classList.remove("showBottom");
  topBtn.classList.remove("showTop");
  }
  //檢測是否具有top-white
  function checkClass(obj,className){
  return obj.classList.contains(className);
  }
  //其余的li添加
  function addWhite(index){
  for(var i=0;i<righttBtnList.length;i++){
  if(i!=index){
  righttBtnList[i].classList.add("top-white");
  }
  }
  }
  //啟動(dòng)計(jì)時(shí)器動(dòng)畫
  function Animate(){
  //寫執(zhí)行代碼
  timer=setInterval(function(){
  if (timer)
  clearInterval(timer);
  if(!ulItem.classList.contains("transY")){
  ulItem.classList.add("transY");
  }
  count++;
  ulItem.style.transform="translateY("+(-count*liHeight)+"px)";
  //找出當(dāng)前每一張圖動(dòng)畫完成時(shí)間
  setTimeout(function(){
  if(count>=ulItem.children.length-1){
  count=0;
  //移除過渡類
  ulItem.classList.remove("transY");
  ulItem.style.transform="translateY(0px)";
  }
  //讓右邊的元素動(dòng)畫對應(yīng)
  //rigthBtnlist[count].click();
  },500)
  },speed)
  }
  }

  上面是全部代碼內(nèi)容,歡迎大家多多關(guān)注。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128011.html

相關(guān)文章

  • 原生JS實(shí)現(xiàn)動(dòng)輪

    摘要:效果實(shí)現(xiàn)原理純粹只使用了發(fā)現(xiàn)還是比較簡單的,并不需要借助別的插件或類庫來實(shí)現(xiàn)核心是把圖片組合成一行序列,通過左右移動(dòng),以及父元素的來決定顯示的圖片簡單畫了一下搭建基本界面這里主要分成三個(gè)部分,兩個(gè)向左向右的箭頭,圓點(diǎn)序列,圖片序列全 效果 showImg(https://segmentfault.com/img/bVbqHhE?w=479&h=235); 實(shí)現(xiàn)原理 純粹只使用了html...

    techstay 評論0 收藏0
  • 原生JS實(shí)現(xiàn)動(dòng)輪

    摘要:效果實(shí)現(xiàn)原理純粹只使用了發(fā)現(xiàn)還是比較簡單的,并不需要借助別的插件或類庫來實(shí)現(xiàn)核心是把圖片組合成一行序列,通過左右移動(dòng),以及父元素的來決定顯示的圖片簡單畫了一下搭建基本界面這里主要分成三個(gè)部分,兩個(gè)向左向右的箭頭,圓點(diǎn)序列,圖片序列全 效果 showImg(https://segmentfault.com/img/bVbqHhE?w=479&h=235); 實(shí)現(xiàn)原理 純粹只使用了html...

    ningwang 評論0 收藏0
  • 原生JS實(shí)現(xiàn)動(dòng)輪

    摘要:效果實(shí)現(xiàn)原理純粹只使用了發(fā)現(xiàn)還是比較簡單的,并不需要借助別的插件或類庫來實(shí)現(xiàn)核心是把圖片組合成一行序列,通過左右移動(dòng),以及父元素的來決定顯示的圖片簡單畫了一下搭建基本界面這里主要分成三個(gè)部分,兩個(gè)向左向右的箭頭,圓點(diǎn)序列,圖片序列全 效果 showImg(https://segmentfault.com/img/bVbqHhE?w=479&h=235); 實(shí)現(xiàn)原理 純粹只使用了html...

    Flands 評論0 收藏0
  • 干貨--手把手?jǐn)]vue移動(dòng)UI框架:動(dòng)輪

    摘要:其次父組件中負(fù)責(zé)通用的功能,以及輪播的整體架構(gòu),其結(jié)構(gòu)如下。下面的是一種移動(dòng)端的適配方案。接下來實(shí)現(xiàn)函數(shù)運(yùn)用動(dòng)畫切換到指定下標(biāo)的子項(xiàng)到此為止,咱們就已經(jīng)完成了一個(gè)初步的滑動(dòng)切換輪播圖的功能了。 前言 昨天寫了一篇側(cè)邊菜單組件的文章,閱讀人數(shù)挺多的,內(nèi)心很欣喜(偷著樂,第一篇文章有這么多人看)!乘著這股勁,今天在繼續(xù)寫一篇我們平時(shí)工作中更常用的滑動(dòng)輪播組件的文章。 效果展示 老規(guī)矩,咱們...

    MSchumi 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<