首页 > 代码库 > jquery里面的attr和css来设置轮播图竟然效果不一致
jquery里面的attr和css来设置轮播图竟然效果不一致
/*封装$*/ // window.$=HTMLElement.prototype.$=function(selector){ // var elems=(this==window?document:this) // .querySelectorAll(selector); // return elems.length==0?null:elems.length==1?elems[0]:elems; // } /*广告图片数组*/ var imgs=[ {"i":0,"img":"images/index/banner_01.jpg"}, {"i":1,"img":"images/index/banner_02.jpg"}, {"i":2,"img":"images/index/banner_03.jpg"}, {"i":3,"img":"images/index/banner_04.jpg"}, {"i":4,"img":"images/index/banner_05.jpg"}, ]; var adv={ LIWIDTH:0, $ulImages:null, INTERVAL:1000, WAIT:3000, timer:null, init:function () { this.LIWIDTH=parseFloat($(‘#slider‘).css("width")); this.$ulImages=$("#imgs"); this.updateView(); $("#indexs").on("mouseover","li",(e)=>{ var target=$("#indexs>li").index(e.target); var old=imgs[0].i; this.move(target-old); }); this.autoMove(); }, autoMove:function(){ this.timer=setTimeout( ()=>this.move(1),this.WAIT ); }, movePre:function(n){ n*=-1; imgs=imgs.splice(-n,n).concat(imgs); this.updateView(); this.$ulImages.css("left",parseFloat(this.$ulImages.css("left"))-n*this.LIWIDTH); }, move:function (n) { clearTimeout(this.timer); if(n<0){ this.movePre(n); this.$ulImages.stop(true); this.$ulImages.animate({left:0},this.INTERVAL,()=>this.autoMove()) }else { this.$ulImages.stop(true); this.$ulImages.animate({left:-n*this.LIWIDTH},this.INTERVAL, ()=>this.moveCallback(n) ); } }, moveCallback:function (n) { imgs=imgs.concat(imgs.splice(0,n)); this.updateView(); this.$ulImages.css("left",0); this.autoMove(); }, updateView:function(){ for(var i=0 ,lis=‘‘,idxs=‘‘;i<imgs.length;i++) { // lis+=‘<li> <img src=http://www.mamicode.com/‘+imgs[i].img+‘>‘;" ${imgs[i].img}"></li>`; idxs+=‘<li></li>‘; } this.$ulImages.html(lis).css("width",imgs.length*this.LIWIDTH); $("#indexs").html(idxs); // $("#indexs").children(":nth-child("+imgs[1].i+")").addClass("hover"); $("#indexs").children(`li:eq(${imgs[0].i})`).addClass("hover"); } }; adv.init();
今天在写轮播图的时候发现了jquery的一个小问题,很希望和大家进行交流一下,
上面是轮播图的js代码,和奇怪的是:
this.$ulImgs.css("left",0);
this.autoMove();//启动自动轮播
这种写法轮播图会有滑动的效果。
this.$ulImgs.attr("left",0);
this.autoMove();//启动自动轮播
这种写法就没有滑动的效果,但是也是轮播,不平滑。
找了有些资料如下
<a href="http://www.mamicode.com/#" style="xxx" title="" alt="">xxx</a>
两个不相同呀,css是和style有关,attr是都可以获取,比如上面href,title,alt.
既然attr可以同时获取不能设置吗?????????????
jquery里面的attr和css来设置轮播图竟然效果不一致
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。