<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關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue實現圖片滾動的示例代碼(類似走馬燈效果)

        來源:懂視網 責編:小采 時間:2020-11-27 22:18:05
        文檔

        vue實現圖片滾動的示例代碼(類似走馬燈效果)

        vue實現圖片滾動的示例代碼(類似走馬燈效果):上次寫了一個簡單的圖片輪播,這個相當于在上面的一些改進。這個組件除了可以進行圖片滾動外,也可以嵌入任何內容的標簽進行滾動,里面用了slot進行封裝。 父: <template> <div id=app> <er-carousel-index :type
        推薦度:
        導讀vue實現圖片滾動的示例代碼(類似走馬燈效果):上次寫了一個簡單的圖片輪播,這個相當于在上面的一些改進。這個組件除了可以進行圖片滾動外,也可以嵌入任何內容的標簽進行滾動,里面用了slot進行封裝。 父: <template> <div id=app> <er-carousel-index :type

        上次寫了一個簡單的圖片輪播,這個相當于在上面的一些改進。這個組件除了可以進行圖片滾動外,也可以嵌入任何內容的標簽進行滾動,里面用了slot進行封裝。

        父:

        <template>
         <div id="app">
         <er-carousel-index :typeNumber=2 :pageNumber=3 :timeSpace=2 :duration=2 :isOrNotCircle="true" url="/src/js/index.json" :isOrNotButton=false>
         <template scope="props">-----使用子組件傳過來的值,封裝slot
         <div class="articleList-box-photo ">
         <div class="tu imageEffectsAnimate imageEffects_Magnifier">
         <a>
         <img class="minMax" :src="props.item.img">
         </a>
         </div>
         </div>
         <div class="articleList-box-title">
         <div class="title">
         <a class="textleft">{{props.item.title}}</a>
         </div>
         </div>
         </template>
         </er-carousel-index>
         </div>
        </template>
        <script>
         import ErCarouselIndex from './components/carouselIndex/src/carouselIndex.vue'
         export default {
         name: 'app',
         data() {
         }
         },
         components: {
         ErCarouselIndex//一定要進行組件聲明,不然不能引用子組件
         }
         }
        </script>

        子組件:

        <template>
         <div tag="div" class="articleList articleListMod-3 er-carouseindex" name="slide-fade" id="articleList" :style="{height:imgHeight+'px'}" >
         <span id="btn1" class="er-carouseindex-left" @mousedown="imgMove('mouseLeft')" @mouseup="cancelMove('left')" v-show="isOrNotButton"></span>
         <span id="btn2" class="er-carouseindex-right" @mousedown="imgMove('mouseRight')" @mouseup="cancelMove('right')" v-show="isOrNotButton"></span>
         <div id="packageAll" class="er-carouseindex-con" @mouseover="clearAuto" @mouseout="slideAuto">
         <div class="er-carouseindex-bar" v-show="isOrNotCircle">
         <div v-for="(item,dex) in imgList" @mouseup="clearAuto" class="er-carouseindex-circle" @click="circleClick(dex)" :class="{circleSelected:dex===indexCircle}">
         </div>
         </div>
         <div id="imageAll" class="er-carouseindex-item" :style="{transform:translateX,transition:transFlag?transitionTime:''}">
         <div class="articleList-box er-carouseindex-box" v-for="(list,index) in imgLisShow" :style="{width:imgWidth+'%'}"
         style="max-height:50%;">
         <slot :item="list"></slot>
         </div>
         </div>
         </div>
         </div>
        </template>
        <script>
         export default
         {
         name: "ErCarouselIndex",
         data(){
         return {
         imgList: [],//請求接口數據
         imgLisShow: [],//圖片滾動數據,包括左中右三種
         timer: null,//自動循環滾動時的間隔時間
         timeout:null,//長按時的圖片滾動間隔時間
         index:0,//圖片索引
         translateXnum:0,//圖片滾動時的偏移量
         translateX:"",//生成圖片偏移時的表達式
         imgWidth:"",//圖片所占寬度
         timeDown:"",//鼠標剛按下時的時間
         timeup:"",//鼠標松開時的時間
         clickSpace:"",//鼠標按下松開的時間間隙
         transFlag:true,//是否勻速滾動,
         transitionTime:"",
         indexCircle:0//小圓圈滾動索引
         }
         },
         props:{
         duration:0,//圖片延時滾動
         typeNumber:0, //每次滾動幾張
         timeSpace:0, //圖片滾動時間間隔
         url:String,//請求接口地址
         pageNumber:0,//當前頁面顯示幾張圖片
         isOrNotButton:true,//是否顯示左右按鈕
         isOrNotCircle:true,//是否顯示小圓圈
         imgHeight:""http://圖片滾動顯示高度
         },
         watch:{
         index:{
         handler(){
         var _this=this;
         if(Math.abs(this.index)==this.imgList.length){
         this.indexCircle=0;
         setTimeout(function(){
         _this.reset();
         },_this.duration*1000*0.98);
         }else{
         this.indexCircle=this.index;
         }
         this.calcXnum();
         }
         },
         translateXnum:{
         handler(){
         this.translateX="translateX("+this.translateXnum+"%)";
         }
         }
         },
         methods:{
         //頁面初始化復賦值
         imgView:function() {
         var _this = this;
         _this.$http.get(_this.url).then(function (res) {
         _this.imgList = res.data.imgList;
         for(var i=0;i<3;i++){
         _this.imgList.forEach(function (item, index) {
         _this.imgLisShow.push(item);
         });
         }
         _this.reset();
         _this.slideAuto();
         _this.imgWidth=(100/_this.pageNumber)-1;
         _this.transitionTime="all "+_this.duration*0.98+"s linear";
         console.log(_this.transitionTime);
         });
         },
         //圖片滾動方法(長按)
         imgMove:function(direct){
         var _this = this;
         _this.timeDown=new Date();//記錄按下的時間
         _this.timeout = setInterval(function() {
         if(direct=="mouseLeft") {
         _this.leftMove();
         }else{
         _this.rightMove();
         }
         },300);
         },
         //鼠標送開時執行的方法
         cancelMove:function(direct){
         var _this = this;
         _this.clearAuto();
         this.timeup=new Date();//記錄松開的時間
         this.clickSpace=this.timeup.getTime() - this.timeDown.getTime();
         //時間間隔小于500毫秒為點擊,反之為長按
         if(this.clickSpace<500){
         for(var i=0;i<_this.typeNumber;i++){
         if(direct=="left"){
         _this.leftMove();
         }else{
         _this.rightMove();
         }
         }
         }
         if (this.timeout) {
         clearInterval(this.timeout);
         this.timeout = null;
         }
         },
         //向左移動
         leftMove:function(){
         this.index--;
         this.transFlag=true;
         },
         //向右移動
         rightMove:function(){
         this.transFlag=true;
         this.index++;
         },
         slideAuto:function () {
         var _this = this;
         _this.timer = setTimeout(function () {
         if(Math.abs(_this.index)!==_this.imgList.length){
         _this.rightMove();
         _this.slideAuto();
         }
         }, _this.timeSpace * 1000);
         },
         clearAuto:function () {
         console.log("停止");
         if (this.timer) {
         clearInterval(this.timer);
         this.timer = null;
         }
         },
         //重置
         reset:function(){
         this.index=0;
         this.transFlag=false;
         this.calcXnum();
         },
         calcXnum:function(){
         var _this=this;
         this.translateXnum=-(this.index+this.imgList.length)*(100/this.pageNumber);
         },
         //點擊圓圈跳轉圖片
         circleClick:function(dex){
         this.index=dex;
         this.clearAuto();
         }
         },
         mounted()
         {
         this.$nextTick(function () {
         this.imgView();
         });
         }
         }
        </script>

        這個組件相對來說功能比較完整,用戶可以通過傳參來控制當前頁面需要顯示幾張圖片,圖片滾動時間間隔,是否顯示左右點擊按鈕等等,詳細參數可以查看props,里面都有注釋。

        以上這篇vue實現圖片滾動的示例代碼(類似走馬燈效果)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue實現圖片滾動的示例代碼(類似走馬燈效果)

        vue實現圖片滾動的示例代碼(類似走馬燈效果):上次寫了一個簡單的圖片輪播,這個相當于在上面的一些改進。這個組件除了可以進行圖片滾動外,也可以嵌入任何內容的標簽進行滾動,里面用了slot進行封裝。 父: <template> <div id=app> <er-carousel-index :type
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲国产精品久久久久网站| 国产无遮挡又黄又爽免费视频| 亚洲影视自拍揄拍愉拍| 久草免费福利在线| 亚洲精品国产电影| 特级aaaaaaaaa毛片免费视频| 蜜臀91精品国产免费观看| 亚洲精品无码aⅴ中文字幕蜜桃| 一个人看的www免费在线视频| 最新黄色免费网站| 亚洲精品和日本精品| 一级做a爱过程免费视| 一本久久a久久精品亚洲| 亚洲三级在线视频| 一本到卡二卡三卡免费高| 亚洲午夜成人精品电影在线观看| 一级视频免费观看| 亚洲AV无码一区东京热| 鲁大师在线影院免费观看| 免费乱理伦在线播放| 亚洲精品伊人久久久久| 免费看的一级毛片| 一个人免费播放在线视频看片| 亚洲色欲色欲www在线丝| 国产亚洲一卡2卡3卡4卡新区 | 国产精品久久久久免费a∨| 亚洲人成网网址在线看| 永久在线毛片免费观看| 国产大片免费天天看| 蜜臀91精品国产免费观看| 一级视频在线免费观看| 久久亚洲精品成人av无码网站| 91黑丝国产线观看免费| 亚洲av不卡一区二区三区| 男女拍拍拍免费视频网站| 亚洲精品国产专区91在线| 成人国产精品免费视频| 亚洲码一区二区三区| 四虎亚洲国产成人久久精品| 在线亚洲v日韩v| 亚洲欧洲日产国产综合网|