有一段轮播的代码
html的body部分
<body>
<div id = "container">
<div id = "list" style="left:-600px;">
<img src="image/i1.png" alt="" />
<img src="image/i2.png" alt="" />
<img src="image/i3.png" alt="" />
<img src="image/i4.png" alt="" />
<img src="image/i5.png" alt="" />
<img src="image/i1.png" alt="" />
<img src="image/i2.png" alt="" />
</div>
<div id = "buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<p id="prev" class="arrow" ><</p>
<p id="next" class="arrow" >></p>
</div>
</body>
我发现把这个 <div id = "list" style="left:-600px;"> 里面的style拿走,写到css部分里面去就不行,不知道为何?
可以正常运行的html全部。
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
*{
margin: 0; padding: 0; text-decoration: none;
}
body{
padding:20px;
}
#container{
width:600px; height:392px; border:3px solid #333; overflow: hidden; position:relative;margin:0 auto;
}
#list{
width: 4200px; height: 400px; position: absolute; z-index: 1;
}
#list img{
float:left;width:600px;height:392px;
}
#buttons{
position: absolute; height: 10px; width: 100px; z-index: 2; bottom: 20px; left: 250px;
}
#buttons span{
cursor: pointer; float: left; border:1px solid #fff; width: 10px; height: 10px; border-radius: 50%; background: #333; margin-right: 5px;
}
#buttons .on{
background: orange;
}
.arrow{
cursor: pointer; display: none; line-height: 30px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 40px; position: absolute; z-index: 2; top: 180px; background-color: RGBA(0,0,0,.5); color:white;
}
.arrow:hover{
background-color: RGBA(0,0,0,.7);
}
#container:hover .arrow{
display:block;
}
#prev{
left:20px;
}
#next{
right: 20px;
}
</style>
<script type="text/javascript">
window.onload = function (){
var container = document.getElementById('container');
var list = document.getElementById('list');
var buttons = document.getElementById('buttons').getElementsByTagName('span');
var prev = document.getElementById('prev');
var next = document.getElementById('next');
var index = 1;
var changed = false;
var timer;
function showButton(){
for(var i = 0;i < buttons.length; i++){
if (buttons[i].className == 'on'){
buttons[i].className = '';
break;
}
}
buttons[index - 1].className = 'on';
}
function change(offset){
changed = true;
var newleft = parseInt(list.style.left) + offset;
var time = 300;
var interval = 10;
var speed = offset/(time/interval);
function go(){
if((speed < 0 && parseInt(list.style.left) > newleft)||(speed > 0 && parseInt(list.style.left) < newleft)){
list.style.left = parseInt(list.style.left) + speed + 'px';
setTimeout(go,interval);
}
else{
changed = false;
list.style.left = newleft + 'px';
if(newleft > -600){
list.style.left = -3000 + 'px';
}
if(newleft < -3000){
list.style.left = -600 + 'px';
}
}
}
go();
}
function play(){
timer = setInterval(function(){
next.onclick();
},3000);
}
function stop(){
clearInterval(timer);
}
next.onclick = function() {
if(index == 5){
index = 1;
}
else{
index += 1;
}
showButton();
if(!changed){
change(-600);
}
}
prev.onclick = function() {
if(index == 1){
index = 5;
}
else{
index -= 1;
}
showButton();
if(!changed){
change(600);
}
}
for(var i =0; i <buttons.length; i++){
buttons[i].onclick = function(){
if(this.classname == 'on'){
return;
}
var myindex = parseInt(this.getAttribute('index'));
var offset = -600 * (myindex - index);
index = myindex;
showButton();
if(!changed){
change(offset);
}
}
}
container.onmouseover = stop;
container.onmouseout = play;
play();
}
</script>
</head>
<body>
<div id = "container">
<div id = "list" style="left:-600px;">
<img src="image/i1.png" alt="" />
<img src="image/i2.png" alt="" />
<img src="image/i3.png" alt="" />
<img src="image/i4.png" alt="" />
<img src="image/i5.png" alt="" />
<img src="image/i1.png" alt="" />
<img src="image/i2.png" alt="" />
</div>
<div id = "buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<p id="prev" class="arrow" ><</p>
<p id="next" class="arrow" >></p>
</div>
</body>
</html>
不可以运行的html全部
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
*{
margin: 0; padding: 0; text-decoration: none;
}
body{
padding:20px;
}
#container{
width:600px; height:392px; border:3px solid #333; overflow: hidden; position:relative;margin:0 auto;
}
#list{
width: 4200px; height: 400px; position: absolute; z-index: 1; left:-600px;
}
#list img{
float:left;width:600px;height:392px;
}
#buttons{
position: absolute; height: 10px; width: 100px; z-index: 2; bottom: 20px; left: 250px;
}
#buttons span{
cursor: pointer; float: left; border:1px solid #fff; width: 10px; height: 10px; border-radius: 50%; background: #333; margin-right: 5px;
}
#buttons .on{
background: orange;
}
.arrow{
cursor: pointer; display: none; line-height: 30px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 40px; position: absolute; z-index: 2; top: 180px; background-color: RGBA(0,0,0,.5); color:white;
}
.arrow:hover{
background-color: RGBA(0,0,0,.7);
}
#container:hover .arrow{
display:block;
}
#prev{
left:20px;
}
#next{
right: 20px;
}
</style>
<script type="text/javascript">
window.onload = function (){
var container = document.getElementById('container');
var list = document.getElementById('list');
var buttons = document.getElementById('buttons').getElementsByTagName('span');
var prev = document.getElementById('prev');
var next = document.getElementById('next');
var index = 1;
var changed = false;
var timer;
function showButton(){
for(var i = 0;i < buttons.length; i++){
if (buttons[i].className == 'on'){
buttons[i].className = '';
break;
}
}
buttons[index - 1].className = 'on';
}
function change(offset){
changed = true;
var newleft = parseInt(list.style.left) + offset;
var time = 300;
var interval = 10;
var speed = offset/(time/interval);
function go(){
if((speed < 0 && parseInt(list.style.left) > newleft)||(speed > 0 && parseInt(list.style.left) < newleft)){
list.style.left = parseInt(list.style.left) + speed + 'px';
setTimeout(go,interval);
}
else{
changed = false;
list.style.left = newleft + 'px';
if(newleft > -600){
list.style.left = -3000 + 'px';
}
if(newleft < -3000){
list.style.left = -600 + 'px';
}
}
}
go();
}
function play(){
timer = setInterval(function(){
next.onclick();
},3000);
}
function stop(){
clearInterval(timer);
}
next.onclick = function() {
if(index == 5){
index = 1;
}
else{
index += 1;
}
showButton();
if(!changed){
change(-600);
}
}
prev.onclick = function() {
if(index == 1){
index = 5;
}
else{
index -= 1;
}
showButton();
if(!changed){
change(600);
}
}
for(var i =0; i <buttons.length; i++){
buttons[i].onclick = function(){
if(this.classname == 'on'){
return;
}
var myindex = parseInt(this.getAttribute('index'));
var offset = -600 * (myindex - index);
index = myindex;
showButton();
if(!changed){
change(offset);
}
}
}
container.onmouseover = stop;
container.onmouseout = play;
play();
}
</script>
</head>
<body>
<div id = "container">
<div id = "list">
<img src="image/i1.png" alt="" />
<img src="image/i2.png" alt="" />
<img src="image/i3.png" alt="" />
<img src="image/i4.png" alt="" />
<img src="image/i5.png" alt="" />
<img src="image/i1.png" alt="" />
<img src="image/i2.png" alt="" />
</div>
<div id = "buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<p id="prev" class="arrow" ><</p>
<p id="next" class="arrow" >></p>
</div>
</body>
</html>
两段代码仅仅有一处不同。
可以正常运行的html文件
style 部分
#list{
width: 4200px; height: 400px; position: absolute; z-index: 1; }
body部分
<div id = "list" style="left:-600px;">
不能正常运行html文件
style 部分
#list{
width: 4200px; height: 400px; position: absolute; z-index: 1; left:-600px;}
body部分
<div id = "list">
其他部分完全相同,请问,这是为何?
开始以为是权重问题
不过浏览了下发现有这样的代码:
list.style.left
看下这个: 三、getComputedStyle与style的区别