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='+imgs[i].img+'></li>';
lis+=`<li> <img src=" ${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="#" style="xxx" title="" alt="">xxx</a> 两个不相同呀,css是和style有关,attr是都可以获取,比如上面href,title,alt. 既然attr可以同时获取不能设置吗?????????????
jquery里面的attr和css来设置轮播图竟然效果不一致的更多相关文章
- HTML+CSS+Javascript实现轮播图效果
HTML+CSS+Javascript实现轮播图效果 注意:根据自己图片大小来更改轮播图大小. <!doctype html> <html> <head> < ...
- 用html +js+css 实现页面轮播图效果
html 页面 <html lang="en"> <head> <meta charset="UTF-8"> <met ...
- JavaScript+HTML+CSS 无缝滚动轮播图的两种方式
第一种方式 在轮播图最后添加第一张,一张重复的图片. 点击前一张,到了第一张,将父级oList移动到最后一张(也就是添加的重复的第一张),在进行后续动画. 点击下一张,到了最后一张(也就是添加的重复的 ...
- css动画属性--轮播图效果
通过css的动画属性实现轮播图的显示效果 代码如下: 主体部分: <div id="move"> <ul> <li><img src=&q ...
- css3 - 纯css实现一个轮播图
这是我上一次的面试题.一晃两个月过去了. 从前都是拿原理骗人,把怎么实现的思路说出来. 我今天又被人问到了,才想起来真正码出来.码出来效果说明一切: 以上gif,只用到了5张图片,一个html+css ...
- 纯HTML和CSS实现JD轮播图
博主使用了纯HTML和CSS实现了JD的轮播图,没有加动态效果,主要是使用了定位的知识. ,如图为两个侧边箭头图片(其实实际中应该使用CSS3的图标字体,这里没有使用). <!DOCTYPE ...
- jQuery实现简易轮播图的效果
(图片素材取自于小米官网) 刚开始接触jQuery的学习,个人觉得如果为了实现多数的动态效果,jQuery的确很简易方便. 下面简易的轮播图效果,还请前辈多多指教~ (努力学习react vue an ...
- JQuery和html+css实现带小圆点和左右按钮的轮播图
是的!你没看错!还是轮播图.这次的JQuery的哟!! CSS代码: /*轮播图 左右按钮 小白点*/ #second_div{ margin-top: 160px; } .img_box{ over ...
- Jquery 轮播图简易框架
=====================基本结构===================== <div class="carousel" style="width: ...
随机推荐
- 根据Mob官网的天气预报接口写了一个简单的demo
第一步 自己注册一个应用,然后获取里面的 App Key,下载MobAPI SDK 然后拖入 MobAPI.framework 和 MOBFoundation.framework 到你的项目中 第二步 ...
- 《Python高效开发实战》实战演练——内置Web服务器4
<Python高效开发实战>实战演练——开发Django站点1 <Python高效开发实战>实战演练——建立应用2 <Python高效开发实战>实战演练——基本视图 ...
- 【NOIP2013】Day2不完全题解+代码
T1 直接递归区间,从1-n开始,找到这个区间中的最小值然后将区间里的所有值都减去这个最小值 以被减去最小值之后的零点为分段分别递归处理即可. #include <algorithm> # ...
- windows server 2008系统VPN服务配置
转自:http://www.softxp.net/article/win2008-vpn/,,仅作自己的笔记用 Windows sever 2008 R2的NPS(network policy ser ...
- ffmpeg的安装--opencv视频处理必备
安装yasm(ffmpeg必备)wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar xzvf yasm-1. ...
- shell 脚本中for循环
昨天很痛苦的搞了一天的for循环,在服务器上运行没啥问题,在设备上运行总是不行,部分代码如下: for(i=1;i<$cnt+1;i++)do echo "xxxx" &g ...
- ascii 转换为 utf-8
Python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错: UnicodeDecodeError: 'ascii' codec can't de ...
- HOJ———丢手绢
hide handkerchief Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- java 异常的捕获及处理
在没有异常处理的程序中如果要回避异常,需要使用大量的判断语句,配合所想到的错误状况来捕捉程序中可能发生的错误.但是这样势必会导致程序运行效率降低.java异常处理机制具有易于使用,可自定义异常类,处理 ...
- deployd使用归纳
deployd:一个生成后端数据的软件,简单的说就是大部分的前端不会后端,即使会也很难在深入到数据库进行设置一些前端所需数据的创建与查询的后端程序的书写,所以此时就是deployd大显身手的时候了. ...