handlebars+ AmazeUI图片轮播

项目中遇到handlebars+ AmazeUI图片轮播的方法,在此整理一下
一.知识准备
jq方法
1.find:
find() 方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选
2.each:
each() 方法规定为每个匹配元素规定运行的函数。
二.实例
引入:
<script src="assets/js/amazeui.min.js"></script>
<script src="assets/js/handlebars.min.js"></script>
<script src="assets/js/amazeui.widgets.helper.min.js"></script>
模板预加载,放在html结构里
<!-- 轮播图 -->
<script type="text/x-handlebars-template" id="amz-tpl">
  {{>slider slider}}
</script>
js函数
//获取轮播图信息
function getSlideList(){
   $.ajax({
        type: "GET",
        url: "https://d.bjyijiequ.com/qpi/rest/goodsSlideInfo/slideList",
        data:{"projectId":projectId,
             "version":version,
             "source":30,
             "sc":"wx",
             "rst":encodeURIComponent(navigator.userAgent),
             t:new Date().getTime()},  
        dataType : "xml",
        cache: false,
       error: function(xml)
       {
         alert("亲,网络似乎开小差了");
       },
        success:function callback(data){

           var arr=[] ;
            var arrIds=[];
            var arrUrl=[];
            var arrReateTypes=[];
            var arrslideInfoId=[];
            //按照分类,填充数组
            $(data).find("slide").each(function(){
                var picPath = $(this).find("picPath").text();
                var gmId = $(this).find("gmId").text();
                var slideInfoId = $(this).find("slideInfoId").text();
                var lbUrl = $(this).find("url").text();
                var Jfmallurl = "mallyjq/wx/index.htm";
                var FlbUrl = IsStrIndexOf(lbUrl,Jfmallurl);
                arr.push(picPath);
                arrIds.push(gmId);
                arrslideInfoId.push(slideInfoId);
                arrUrl.push(changeHref(FlbUrl));
                arrReateTypes.push($(this).find("relatetype").text());
            })
	//对模板进行填充
            var $tpl = $('#amz-tpl');
            var source = $tpl.text();
            var template = Handlebars.compile(source);
            var contentArr =[];
            if(arr.length>0){
               for(var i=0;i<arr.length;i++){
                   if(arrReateTypes[i]==9){//外部链接
                      contentArr.push({'img':getImagePath()+arr[i],'link':arrUrl[i]});
                   }else if(arrReateTypes[i]==7){//普通商品
                      contentArr.push({'img':getImagePath()+arr[i],'link':"home/recommendation/detail.html?goodsId="+arrIds[i]});
                   }else if(arrReateTypes[i]==8){//通知
                      contentArr.push({'img':getImagePath()+arr[i],'link':getBasePath()+"/property_GbSlideInfo_showDetailsClientPage.do?newsId="+arrIds[i]});
                   }else if(arrReateTypes[i]==3){//限时购
                      contentArr.push({'img':getImagePath()+arr[i],'link':"home/limit/detail.html?goodsId="+arrIds[i]});
                   }else if(arrReateTypes[i]==4){//团购
                      contentArr.push({'img':getImagePath()+arr[i],'link':"home/group/group-detail.html?goodsId="+arrIds[i]});
                   }
                }
            }else{
               contentArr.push({'img':'assets/images/homefrgnew_default.png','link':'#'});
            }
            var data = {
                    slider: {
                    "theme": "a1",
                    "content": contentArr,
                    "id":"my_slider"
                    },
                };
            var html = template(data);
            $tpl.after(html);
            $(".am-slides li img").css({"width":"100%","overflow":"hidden"});
            $(".am-slides").css({"height":document.body.clientWidth/5*2,"overflow":"hidden"});
            
            //轮播图设置暂停后继续轮播间隔,playAfterPaused的生效需初始化flexslider By:xiahao
            $('#my_slider').flexslider({
             playAfterPaused: 1000,
             directionNav:false,
             slideshowSpeed:2000,
             before: function(slider) {
               if (slider._pausedTimer) {
                 window.clearTimeout(slider._pausedTimer);
                 slider._pausedTimer = null;
               }
             },
             after: function(slider) {
               var pauseTime = slider.vars.playAfterPaused;
               if (pauseTime && !isNaN(pauseTime) && !slider.playing) {
                 if (!slider.manualPause && !slider.manualPlay && !slider.stopped) {
                   slider._pausedTimer = window.setTimeout(function() {
                     slider.play();
                   }, pauseTime);
                 }
               }
             }
             // 设置其他参数
           });
            //给轮播图添加埋点数据
            $('#my_slider').find("li").each(function(){
               var a = $(this).index();
               if(a>0){
                  var slideInfoId = arrslideInfoId[a-1];
                   if(!isStringNullOrEmpty(i)){
                      $(this).find("a").attr("onclick","buriedPointLogInfo('90','"+slideInfoId+"')");
                   }
               }
            });
            $.each(['slider', 'menu', 'gallery', 'footer', 'navbar'], function(i, m) {
               var module = $.AMUI[m];
               module && module.init && module.init();
            })
        }
   })
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值