解决方案 »
- mozilla浏览器无法读取xml文件
- [请问如何解析 Servlet 发过来的 XML 数据]
- 如何确定某年某月1号是星期几
- 【求助】如何清理IE内存中的JS变量?各位大侠,Help啊
- 急!请问如何在网页中屏蔽掉Netscape的菜单栏和工具栏?
- 如何判断一个字符串是否为空或者是否只由空格组成/?
- 如何处理控件的事件
- JavaScript调用XML的问题
- javaScipt中有这样的两个函数吗? /[^\d]/g.test(strPage) ,isNaN(strPage) //strPage=form.page.value
- 网站下载并发控制问题 高分悬赏
- 点击左边菜单,然后右边弹出内容。。。有图有代码请教大神
- JSON.stringify后,日期时间改变
给所有图片的父级再加上一个元素a,里面所有的图片左浮动,元素a宽度设置为9999px,绝对定位
元素a向左滑动,当滑动效果执行完后,将元素a里面的第一张图append到元素a结尾。
var $wrapper = $('img');
var imgs = $wrapper.length;
for (i = 0; i < imgs; i++) {
$wrapper.eq(i).css('left', 200 * i + 'px');
} function slidepic(imgblock) {
var container=document.getElementById("imgs");
var len = imgblock.length;
for (var i = 0; i < len; i++) {
imgblock.eq(i).animate({
left: '-=200'
},function(){
if(parseInt($(this).css("left"))<0)
{
$(this).css("left",800+"px");
container.appendChild(this);
}
// container.appendChild(this);
});
// if (imgblock.eq(i).css('left') <= 0)
// {
// console.log(imgblock.eq(i).css('left'));
// imgblock.eq(i).css('left', 800); //当<img>的left小于0时,将其设置为800px
// }
}
setTimeout(slidepic(imgblock), 5000);
} slidepic($wrapper);
});
function slidepic(imgblock){
var len = imgblock.length;
for(var i=0; i<len; i++){
imgblock.eq(i).animate({left:'-=200'}, function(){
if(parseInt($(this).css('left'))<0){
$(this).css('left',800);
}
});
}
setTimeout(slidepic(imgblock), 1000);
}
你的代码中的
container.appendChild(this)
在把最前面的<img>放到最后面后,最前面的<img>会被删除
也就是把最前面的<img>移动到最后面
也就是说,.appendChild()可以对已存在的节点进行移动
是有这样的功能吗?我在w3c的网站上没有看到过这个功能啊?
设置的延迟时间根本没用,滑动的速度一直是一样的,你知道怎么解决吗?
function slidepic(imgblock){
var len = imgblock.length;
for(var i=0; i<len; i++){
imgblock.eq(i).animate({left:'-=200'}, function(){
if(parseInt($(this).css('left'))<0){
$(this).css('left',800);
}
});
}
setTimeout(slidepic(imgblock), 1000);
}
你的代码中的
container.appendChild(this)
在把最前面的<img>放到最后面后,最前面的<img>会被删除
也就是把最前面的<img>移动到最后面
也就是说,.appendChild()可以对已存在的节点进行移动
是有这样的功能吗?我在w3c的网站上没有看到过这个功能啊?
如果appendChild添加的是dom中已经存在的一个节点 那么会将原来的节点移动到新的位置 w3c上并不是什么都说的
设置的延迟时间根本没用,滑动的速度一直是一样的,你知道怎么解决吗?
我重写了你的代码如下 同时将样式中的img{position:absolute;}删掉$(document).ready(function(e) {
var $wrapper = $('img');
var imgs = $wrapper.length;
// for (i = 0; i < imgs; i++) {
// $wrapper.eq(i).css('left', 200 * i + 'px');
// } function slidepic(imgblock) {
var container=document.getElementById("imgs");
$("#imgs:first").animate({marginLeft: "-200"}, function() {
var firstImg=$("img:first")[0];
container.appendChild(firstImg);
$(this).css("marginLeft",0);
});
setTimeout(arguments.callee,2000);
} slidepic($wrapper);
});
设置的延迟时间根本没用,滑动的速度一直是一样的,你知道怎么解决吗?
我重写了你的代码如下 同时将样式中的img{position:absolute;}删掉$(document).ready(function(e) {
var $wrapper = $('img');
var imgs = $wrapper.length;
// for (i = 0; i < imgs; i++) {
// $wrapper.eq(i).css('left', 200 * i + 'px');
// } function slidepic(imgblock) {
var container=document.getElementById("imgs");
$("#imgs:first").animate({marginLeft: "-200"}, function() {
var firstImg=$("img:first")[0];
container.appendChild(firstImg);
$(this).css("marginLeft",0);
});
setTimeout(arguments.callee,2000);
} slidepic($wrapper);
});
为什么container=document.getElementById("imgs")换成container=$("#imgs")就不行了?
为什么firstImg=$("img:first")[0]这句一定要这样写,而不是firstImg=$("img:first")?