JavaScript 中的 style.top / style.left 不生效

在 JS 中使用 .style.top 方法,如下,发现不生效。

var box = document.createElement('div');
box.style.top = 30;

解决:

需要添加单位 px、cm 等.

var box = document.createElement('div');
box.style.top = 30 + “px”;

 

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这里是一个简单的轮播图实现代码: ```html <div id="slider"> <ul> <li><img src="../images/1.jpg" alt=""></li> <li><img src="../images/2.jpg" alt=""></li> <li><img src="../images/3.jpg" alt=""></li> <li><img src="../images/4.jpg" alt=""></li> <li><img src="../images/5.jpg" alt=""></li> <li><img src="../images/6.jpg" alt=""></li> </ul> </div> <script> var slider = document.getElementById('slider'); var ul = slider.children[0]; var liWidth = slider.offsetWidth; var len = ul.children.length; var index = 0; var animated = false; var interval = 3000; var timer; // 设置ul的宽度 ul.style.width = liWidth * len + 'px'; // 创建小圆点 var dots = document.createElement('div'); dots.className = 'dots'; for (var i = 0; i < len; i++) { var dot = document.createElement('span'); dot.index = i; dot.onclick = function() { if (this.className == 'active' || animated) { return; } index = this.index; animate(-index * liWidth); setActive(index); }; dots.appendChild(dot); } dots.children[0].className = 'active'; slider.appendChild(dots); // 设置小圆点的位置 dots.style.marginLeft = -dots.offsetWidth / 2 + 'px'; // 设置定时器 timer = setInterval(function() { next(); }, interval); // 上一张 function prev() { if (animated) { return; } index--; if (index == -1) { index = len - 1; } animate(-index * liWidth); setActive(index); } // 下一张 function next() { if (animated) { return; } index++; if (index == len) { index = 0; } animate(-index * liWidth); setActive(index); } // 设置小圆点的状态 function setActive(index) { for (var i = 0; i < len; i++) { dots.children[i].className = ''; } dots.children[index].className = 'active'; } // 动画函数 function animate(offset) { animated = true; var time = 300; // 完成动画的时间 var interval = 10; // 每隔10毫秒移动一次 var speed = offset / (time / interval); // 每次移动的距离 var left = ul.offsetLeft + offset; // ul的目标left值 function go() { if (speed > 0 && ul.offsetLeft < left || speed < 0 && ul.offsetLeft > left) { ul.style.left = ul.offsetLeft + speed + 'px'; setTimeout(go, interval); } else { ul.style.left = left + 'px'; if (left < -liWidth * (len - 1)) { ul.style.left = 0; } if (left > 0) { ul.style.left = -liWidth * (len - 1) + 'px'; } animated = false; } } go(); } // 鼠标移入停止轮播,移出继续轮播 slider.onmouseover = function() { clearInterval(timer); } slider.onmouseout = function() { timer = setInterval(function() { next(); }, interval); } </script> ``` 这个轮播图采用了无缝轮播的方案,同时支持自动轮播和手动轮播,可以自定义轮播的时间间隔。你可以将上面代码的图片路径替换成你自己的图片路径,然后将整个代码复制到你的网页即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值