<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        JavaScript實(shí)現(xiàn)旋轉(zhuǎn)輪播圖

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:32:33
        文檔

        JavaScript實(shí)現(xiàn)旋轉(zhuǎn)輪播圖

        JavaScript實(shí)現(xiàn)旋轉(zhuǎn)輪播圖:最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個(gè)簡單的輪播圖,因?yàn)闊o法顯示動(dòng)態(tài)效果,所以就放個(gè)截圖: 這個(gè)效果是這樣的:一共有7張圖片,它們會(huì)自動(dòng)地向左滑動(dòng),然后左右箭頭也可以控制輪播圖的左滑和右滑,同時(shí),如果鼠標(biāo)
        推薦度:
        導(dǎo)讀JavaScript實(shí)現(xiàn)旋轉(zhuǎn)輪播圖:最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個(gè)簡單的輪播圖,因?yàn)闊o法顯示動(dòng)態(tài)效果,所以就放個(gè)截圖: 這個(gè)效果是這樣的:一共有7張圖片,它們會(huì)自動(dòng)地向左滑動(dòng),然后左右箭頭也可以控制輪播圖的左滑和右滑,同時(shí),如果鼠標(biāo)

        最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個(gè)簡單的輪播圖,因?yàn)闊o法顯示動(dòng)態(tài)效果,所以就放個(gè)截圖:

        這個(gè)效果是這樣的:一共有7張圖片,它們會(huì)自動(dòng)地向左滑動(dòng),然后左右箭頭也可以控制輪播圖的左滑和右滑,同時(shí),如果鼠標(biāo)停在圖片上,那么輪播圖會(huì)停止自動(dòng)滑動(dòng),當(dāng)鼠標(biāo)移開時(shí),將會(huì)繼續(xù)向左輪播。
        首先,我這里封裝了兩個(gè)函數(shù)(因?yàn)闀呵疫€沒有學(xué)jQuery,所以用了封裝函數(shù)的方法來實(shí)現(xiàn)),第一個(gè)函數(shù)是$函數(shù),調(diào)用可以獲取html中的元素,代碼如下:

        `function $(select){
         if (typeof select != 'string') {
         console.log('傳入的參數(shù)有誤'); 
         return null;
         }
         var firstChar = select.charAt(0);
         switch(firstChar){
         case '#':
         return document.getElementById(select.substr(1));
         break;
         case '.':
         if (document.getElementsByClassName){
         return document.getElementsByClassName(select.substr(1));
         } else {
         var result = [];
         var allElemnts = document.getElementsByTagName('*');
         console.log(allElemnts);
         for (var i = 0; i < allElemnts.length; i++){
         var e = allElemnts[i];
         var className = e.className;
         var classArr = className.split(' ');
         for (var j = 0; j < classArr.length; j++){
         var c = classArr[j];
         if (c == select.substr(1)) {
         result.push(e);
         break;
         }
         }
         }
         return result;
         }
         break;
         default :
         return document.getElementsByTagName(select);
         }
         }`
        
        

        第二個(gè)函數(shù)是一個(gè)動(dòng)畫函數(shù),用json實(shí)現(xiàn)多條樣式的動(dòng)態(tài)改變,從而達(dá)到一個(gè)動(dòng)畫效果,代碼如下: `

        function animate(element, json, fun) {
         clearInterval(element.timer);
         function getStyle(element, styleName){
         if(element.currentStyle){
         //ie瀏覽器下 直接通過currentstyle來獲取
         //return element.currentStyle.heigh;
         return element.currentStyle[styleName];
         }else{
         var computedStyle = window.getComputedStyle(element,null);
         return computedStyle[styleName];
         }
         }
         var isStop = false;
         element.timer = setInterval(function () {
         isStop = true;
         for (var key in json){
         var target = json[key];
         var current;
         if (key == 'opacity') {
         //當(dāng)動(dòng)畫的類型為透明度時(shí) 獲取的值應(yīng)該是浮點(diǎn)類型
         current = parseFloat(getStyle(element, key)) || 1;
         } else {
         //其他情況 用整數(shù)類型
         current = parseInt(getStyle(element, key)) || 0;
         } 
         var step = (target - current) / 10;
         if (key != 'opacity') {
         step = step > 0 ? Math.ceil(step) : Math.floor(step);
         }
         current += step;
         if (key == 'opacity') {
         if (Math.abs(target - current) > 0.01) {
         isStop = false;
         } else {
         current = target;
         }
         element.style.opacity = current + '';
         } else {
         if (Math.abs(target-current) > Math.abs(step)) {
         isStop = false;
         } else {
         current = target;
         }
         if (key == 'zIndex'){
         element.style.zIndex = Math.round(current);
         } else {
         element.style[key] = current + 'px';
         } 
         } 
         }
         if (isStop) {
         clearInterval(element.timer);
         console.log('動(dòng)畫完成');
         if (typeof fun == 'function') {
         fun();
         }
         }
         }, 30);
        }`
        
        

        接下來就要寫html的部分了,因?yàn)橹挥袔讖垐D片,所以html的部分很簡單:

        <body>
         <div class="box">
         <div class="content">
         <ul>
         <li><a href="#"><img src="./images/1.jpg"></a></li>
         <li><a href="#"><img src="./images/2.jpg"></a></li>
         <li><a href="#"><img src="./images/3.jpg"></a></li>
         <li><a href="#"><img src="./images/4.jpg" class="current"></a></li>
         <li><a href="#"><img src="./images/5.jpg"></a></li>
         <li><a href="#"><img src="./images/6.jpg"></a></li>
         <li><a href="#"><img src="./images/7.jpg"></a></li>
         </ul>
         </div>
         <div class="control">
         <a href="javascript:;" id="prev"></a>
         <a href="javascript:;" id="next"></a>
         </div>
         </div>
        </body>

        css樣式的部分也不多做敘述。

        下面就是JS是部分啦,代碼也很簡單,理清楚就好

         window.onload = function(){
         //定位,并給圖片設(shè)置大小透明度
         var json = [{
         width: 630,
         top: 23,
         left: 0,
         zIndex: 2,
         opacity: 0
         },{
         width: 630,
         top: 23,
         left: 0,
         zIndex: 3,
         opacity: 0
         },{
         width: 630,
         top: 23,
         left: 0,
         zIndex: 4,
         opacity: 0.6
         },{
         width: 730,
         top: 0,
         left: 125,
         zIndex: 5,
         opacity: 1
         },{
         width: 630,
         top: 23,
         left: 350,
         zIndex: 4,
         opacity: 0.6
         },{
         width: 630,
         top: 23,
         left: 350,
         zIndex: 3,
         opacity: 0
         },{
         width: 630,
         top: 23,
         left: 350,
         zIndex: 2,
         opacity: 0
         }];
        
        function refreshImageLocatin(index){
         //默認(rèn)情況下 第i張圖對(duì)應(yīng)第i個(gè)位置
         //index=1時(shí) 第i個(gè)圖對(duì)應(yīng)i-1個(gè)位置
         //也就是第i個(gè)圖對(duì)應(yīng)i-index的位置
         var liArr = $('li');
         for(var i = 0; i < liArr.length; i++){
         var li = liArr[i];
         var locationIndex = i - index;
         console.log('i='+i);
         console.log('index='+index);
         console.log('locationIndex='+locationIndex);
         if(locationIndex < 0){
         locationIndex += 7;
         }
         var locationData = json[locationIndex];
         animate(li, locationData, null);
         }
         }
        
         refreshImageLocatin(0);
        
         var index = 0;
         $('#next').onclick = function(){
         index++;
         if(index == 7){
         index = 0;
         }
         refreshImageLocatin(index);
         }
         $('#prev').onclick = function(){
         index--;
         if(index < 0){
         index = 6;
         }
         refreshImageLocatin(index);
         }
        
         var nextImage = $('#next').onclick;
         var contentBox = $('.content')[0];
         //自動(dòng)播放
         var timer = setInterval(nextImage, 3000);
         //當(dāng)鼠標(biāo)移動(dòng)到圖片上,停止播放
         contentBox.onmouseover = function(){
         clearInterval(timer);
         }
         contentBox.onmouseout = function(){
         timer = setInterval(nextImage ,3000)
         }
        }
        
        

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript實(shí)現(xiàn)旋轉(zhuǎn)輪播圖

        JavaScript實(shí)現(xiàn)旋轉(zhuǎn)輪播圖:最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個(gè)簡單的輪播圖,因?yàn)闊o法顯示動(dòng)態(tài)效果,所以就放個(gè)截圖: 這個(gè)效果是這樣的:一共有7張圖片,它們會(huì)自動(dòng)地向左滑動(dòng),然后左右箭頭也可以控制輪播圖的左滑和右滑,同時(shí),如果鼠標(biāo)
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产V亚洲V天堂A无码| 亚洲伦另类中文字幕| 亚洲第一成人影院| 久久精品国产亚洲av水果派| 亚洲精品无码久久久久A片苍井空 亚洲精品无码久久久久YW | 亚洲欧洲精品成人久久奇米网| 亚洲丝袜美腿视频| 久久精品私人影院免费看| 日韩一级视频免费观看| 亚洲成年人免费网站| 精精国产www视频在线观看免费| 久九九精品免费视频| 亚洲精品成人网站在线观看| 亚洲av无码偷拍在线观看| 91老湿机福利免费体验| 国产亚洲精品资在线| 国产成人综合久久精品亚洲| 青青在线久青草免费观看| 亚洲精品色播一区二区| 午夜国产精品免费观看 | 亚洲av网址在线观看| 日韩在线观看视频免费| 免费无码黄网站在线观看| 亚洲国产美女在线观看| 免费精品一区二区三区在线观看 | 国产亚洲精久久久久久无码| 免费在线中文日本| 亚洲AV网站在线观看| 亚洲欧美一区二区三区日产| www.亚洲色图| 久久99国产乱子伦精品免费| 亚洲人成人网站18禁| 青青草原亚洲视频| 久久www免费人成看国产片| 亚洲丝袜美腿视频| 国产一级淫片免费播放电影| 国产精品亚洲天堂| 亚洲国产精品自在线一区二区| 免费精品人在线二线三线区别| 亚洲国产精品午夜电影| 免费播放春色aⅴ视频|