美文网首页
imagelist和imgshow跳转之间的参数传递

imagelist和imgshow跳转之间的参数传递

作者: 悟空你又瘦了 | 来源:发表于2017-07-13 10:24 被阅读0次
  • 核心技术
1.home跳到imagelist
 <li class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3">
                       <router-link to="/photo/imagelist">
                            <span class="mui-icon mui-icon-email"></span>
                            <div class="mui-media-body">图片分享</div>
                       </router-link>
        </li>
2.imagelist跳到imgshow
<!-- 2.0 图片的列表 使用mint-ui中的延迟加载组件 -->
        <ul class="imgul">
            <li v-for="item in imagelist">
                <router-link v-bind="{to:'/photo/imageshow/'+item.id}">
                    <img class="lazyimg" v-lazy ="item.img_url">
                    <div class="desc">
                        <h5>{{item.title}}</h5>
                        <p>
                            {{item.zhaiyao}}
                        </p>
                    </div>
                </router-link>
            </li>
        </ul>
3.data里面放要的数据cates:[], // 存储分类数据, imagelist:[] // 存储图片数据
3.头上的分类数据,要实现滑动效果,全部是不变的,点击相应的标题得到对应id的图片
  滑动效果:.cate{
      max-width: 400px;
      overflow-x:auto;  --不隐藏,会有滚动条出来
      overflow-y:hidden; 
设置ul的宽度this.$refs.cateul.style.width=width+"px";
  }这样写在电脑上可以看到滚动条,但是在手机上面看不到
4.加载图片用了用mint-ui中的延迟加载组件
 <img class="lazyimg" v-lazy ="item.img_url">
image[lazy=loading] {
    width: 100%;
    height: 300px;
    margin: auto;
  }
url的地址不全面,所以要遍历拼接地址
获取图片的途径是点击事件<li v-for="item in cates"><a @click="getimagelist(item.id)">{{item.title}}</a></li>
5.初始化的时候就要先加载了
created(){
          this.getcates();
          this.getimagelist(0);
      }
  • imagelist.vue
<template>
    <div class="tmpl">
        <!-- 1.0 图片的分类 -->
        <div class="cate">
            <ul ref="cateul">
                <li><a href="#">全部</a></li>             
                <li v-for="item in cates"><a @click="getimagelist(item.id)">{{item.title}}</a></li>
            </ul>
        </div>

        <!-- 2.0 图片的列表 使用mint-ui中的延迟加载组件 -->
        <ul class="imgul">
            <li v-for="item in imagelist">
                <router-link v-bind="{to:'/photo/imageshow/'+item.id}">
                    <img class="lazyimg" v-lazy ="item.img_url">
                    <div class="desc">
                        <h5>{{item.title}}</h5>
                        <p>
                            {{item.zhaiyao}}
                        </p>
                    </div>
                </router-link>
            </li>
        </ul>
    </div>
</template>
<script>
    import common from '../../kits/common.js'
    export default{
        data(){
            return {
                cates:[], // 存储分类数据
                imagelist:[] 
            }
        },
        methods:{
            // 1.0 获取分类数据
            getcates(){
                this.$http.get(common.apiDomain+'/api/getimgcategory')
                .then(res=>{
                    // 状态判断,将内容给this.cates 
                    this.cates = res.body.message;
                    // 获取分类数据的个数计算出ul的总宽度,+1是因为前面有个全部
                    var count = res.body.message.length + 1;
                     //每一个宽度78
                    var width = 78 * count; 
                    // 在ul上设置宽度,要加上px
                    this.$refs.cateul.style.width=width+"px";
                });
            },
            // 2.0 获取图片数据
            getimagelist(cateid){
                // 为了解决第一章图片永远不会改变的bug
                this.imagelist = [];
                // 1.0 利用ajax请求图片数据
                var url = common.apiDomain+'/api/getimages/'+cateid;
                this.$http.get(url).then(res=>{
                    // 2.0 将res.body.message中的 img_url属性的值添加上图片域名的前缀
                    res.body.message.forEach(item=>{
                        item.img_url  = common.imgDomain+item.img_url;
                    });

                    this.imagelist = res.body.message;
                });
            }
        },
        created(){
            this.getcates();
            this.getimagelist(0);
        }
    }
</script>
<style scoped>
    .cate{
        max-width: 400px;
        overflow-x:auto; 
        overflow-y:hidden; 
    }
    .cate li{
        list-style: none;
        display: inline-block;
        padding-left: 10px;
    }
    .cate ul{
        width: 800px;
        padding-left: 5px;
    }
    .imgul{
        padding: 0 2px;
    }
    .imgul li{
        list-style: none;
        position: relative;
    }
    .lazyimg{
        width: 100%;
    }
    image[lazy=loading] {
      width: 100%;
      height: 300px;
      margin: auto;
    }
    .desc{
        position: absolute;
        left: 0px;
        bottom:0px;
        background-color: rgba(0,0,0,0.4);
    }
    .desc h5,.desc p{
        color:#fff;
    }
</style>

相关文章

网友评论

      本文标题:imagelist和imgshow跳转之间的参数传递

      本文链接:https://www.haomeiwen.com/subject/flqwhxtx.html