发布网友 发布时间:2022-04-21 04:49
共4个回答
热心网友 时间:2022-04-20 07:29
<html>
<head>
<title>图片滚动 </title>
<style>
#div1 {position:relative;width:650px;height:210px;overflow:hidden; }
#div2{position:absolute;}
li{float:left;list-style-type:none;padding:5px;}
img{border:none;}
a{position:relative;}
</style>
<script>
window.onload=function()
{
var odiv2=document.getElementById('div2');
var ali=odiv2.getElementsByTagName('li');
var aspeed=-5;
odiv2.innerHTML+=odiv2.innerHTML;
odiv2.style.width=ali[0].offsetWidth*ali.length+'px';
setInterval(function()
{
odiv2.style.left=odiv2.offsetLeft+aspeed+'px';
if (odiv2.offsetLeft<-odiv2.offsetWidth/2)
{
odiv2.style.left='0px';
}
},30);};
}
</script>
</head>
<body>
<div id='div1'>
<div id='div2'>
<li><a href=""><img src="1.jpg" /></a></li>
<li><a href=""><img src="2.jpg" /></a></li>
<li><a href=""><img src="3.jpg" /></a></li>
<li><a href=""><img src="4.jpg" /></a></li>
<!--这边你可以添加任意多的li,也就是你可以添加任意多的图片,使任意多的图片轮播-->
</div>
</div>
</body>
</html>追问
这个代码还要加上去吗?我只要中间一段,具体点啊,谢谢
热心网友 时间:2022-04-20 08:47
可以通过输入代码来操作。
这里的图片轮播方法是我从网上参考的方法,只是自己做了一些改进,先来贴一发代码:
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="./css/init2.css">
<script type="text/javascript" src="./js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="./js/test2.js"></script>
</head>
<body>
<div id="layout">
<header class="clearfix">
<div id="banner">
<ul id="banner_img">
<li><img src="./img/s1.jpg"></li>
<li><img src="./img/s2.jpg"></li>
<li><img src="./img/s3.jpg"></li>
</ul>
</div>
</header>
</div>
</body>
</html>
在这个html的目录下有三个同级的文件夹,img中放图片,css和js分别存放这个网页的css文件和js文件,这里用到了jquery,记得引入顺序,jquery一定要放在其他js前面。
html代码很简单,不做过多解释。
看一下引入的css,init2.css
*{
margin: 0px ;
padding: 0px ;
}
#layout{
width: 960px ;
margin: 0 auto ;
}
#banner{
position: relative;
overflow: hidden;
width: 600px;
height: 200px;
border-radius: 10px ;
border: 2px solid black;
}
#banner_img li{
float: left;
list-style-type: none;
}
#index{
position: absolute;
right: 8px ;
bottom: 8px ;
}
#index li{
float: left;
width: 16px ;
height: 16px ;
text-align: center;
line-height: 16px ;
border-radius: 5px ;
border:1px solid #FF7300 ;
background: white;
list-style: none;
margin-left: 8px ;
cursor: pointer;
}
.clearfix:after{
content: "" ;
height: 0px ;
display: block;
clear:both ;
}
.on
{
background:#FF7300 ;
}
css基本上和前面的html中的类对应,claerfix来清除浮动,on是代表轮播图片的索引中当前的正播放的图片的索引,其实就改个背景,这里的索引是后面动态加上去的,索引在html中看不到。主要思路就是把装图片的容器设置成overfl;hidden;
下面是一种比较简单的实现,利用jquery的fadeIn和fadeOut效果来实现。
//fadeIn and fadeOut
var time ;
var index = 1 ;
var tolnum = 3 ;
$(function(){
<span style="white-space:pre"></span>setInterval("showBanner("+tolnum+")",3000);
});
function showBanner(n)
{
<span style="white-space:pre"></span>var ul = $("#banner_img") ;
<span style="white-space:pre"></span>ul.children().fadeOut("slow") ;
<span style="white-space:pre"></span>ul.children().eq(index).fadeIn("slow") ;
<span style="white-space:pre"></span>index = index+1>n-1 ? 0 : index+1 ;
}
恩,不知道为什么到最后一张图片的时候会产生没有淡出的bug,不太懂,请大家指教。
第二种方法是利用jquery的animation来实现margin属性的过渡。
init();
function init()
{
$(function(){
var index = 0 ;
var adTime ;
var len = $("#banner_img li").length ;
addIndex(len) ;
var bannerLi = $("#index li");
//handle index
$("#index li").mouseover(function() {
index = $("#index li").index(this) ;
showImgs(index) ;
});
//toggleInterval
$("#banner").hover(function(){
clearInterval(adTimer);
},function(){
adTimer=setInterval(function(){
//alert(index) ;
showImgs(index);
index++;
if(index==len){
index=0;
}
},2000)
}).trigger('mouseleave');
});
}
//auto add index
function addIndex(n)
{
var ul = $("<ul id=\"index\"></ul>") ;
for(var i=1;i<=n;i++)
{
var li = $("<li></li>") ;
li.append(function(num){
return num
}(i)) ;
ul.append(li) ;
}
ul.children().first().addClass('on') ;
$("#banner_img").append(ul);
}
function showImgs(index)
{
var adwidth=$("#banner_img>li:first").width();
$("#banner_img").stop(true, false) ;
//$("#banner_img").css('margin-left', -index*adwidth+"px");
$("#banner_img").animate({
"marginLeft":-adwidth*index+"px"
},1000);
$("#index li").removeClass('on').eq(index).addClass('on') ;
}
hover()是一种代替mouseenter和mouseleave的方法,听说比较好用。trigger()来触发当前对象的一个状态,这里要先触发一次mouseleave的状态来初始化计时器,因为这里的设定是当鼠标移到$("#banner")上就销毁定时器,锁定当前图片,移开鼠标就重新添加定时器。<pre name="code" class="javascript">$("#banner_img").animate({
"marginLeft":-adwidth*index+"px"
},1000);
这了就是对jquery中animation方法的使用,通过传进来的index来改变banner_img的margin,这里是margin-left,所以图片就会从右往左刷(需要设置浮动),如果需要从下往上刷就设置margin-top就好了,还有我发现js中动态添加margin是不能触发css的transition的。
热心网友 时间:2022-04-20 10:22
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<body>
<img id="im" style="border:1px solid red;width:100px;height:100px" src="" >
<button onclick=REPLACE('1')>1</button >
<button onclick=REPLACE('2')>2</button>
<button onclick=REPLACE('3')>3</button>
<button onclick=REPLACE('4')>4</button>
<button onclick=REPLACE('5')>5</button>
</img>
</body>
</html>
<script type="text/javascript">
//js function 脚本 点击更改图片
function REPLACE(url){
//注意这个url是你图片的路径 1,2,3,4,5,这些要改成你图片的对应路径
document.getelementById("im").url=url;
}
</script>
热心网友 时间:2022-04-20 12:13
可以通过输入代码来操作。
这里的图片轮播方法是我从网上参考的方法,只是自己做了一些改进,先来贴一发代码:
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="./css/init2.css">
<script type="text/javascript" src="./js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="./js/test2.js"></script>
</head>
<body>
<div id="layout">
<header class="clearfix">
<div id="banner">
<ul id="banner_img">
<li><img src="./img/s1.jpg"></li>
<li><img src="./img/s2.jpg"></li>
<li><img src="./img/s3.jpg"></li>
</ul>
</div>
</header>
</div>
</body>
</html>
在这个html的目录下有三个同级的文件夹,img中放图片,css和js分别存放这个网页的css文件和js文件,这里用到了jquery,记得引入顺序,jquery一定要放在其他js前面。
html代码很简单,不做过多解释。
看一下引入的css,init2.css
*{
margin: 0px ;
padding: 0px ;
}
#layout{
width: 960px ;
margin: 0 auto ;
}
#banner{
position: relative;
overflow: hidden;
width: 600px;
height: 200px;
border-radius: 10px ;
border: 2px solid black;
}
#banner_img li{
float: left;
list-style-type: none;
}
#index{
position: absolute;
right: 8px ;
bottom: 8px ;
}
#index li{
float: left;
width: 16px ;
height: 16px ;
text-align: center;
line-height: 16px ;
border-radius: 5px ;
border:1px solid #FF7300 ;
background: white;
list-style: none;
margin-left: 8px ;
cursor: pointer;
}
.clearfix:after{
content: "" ;
height: 0px ;
display: block;
clear:both ;
}
.on
{
background:#FF7300 ;
}
css基本上和前面的html中的类对应,claerfix来清除浮动,on是代表轮播图片的索引中当前的正播放的图片的索引,其实就改个背景,这里的索引是后面动态加上去的,索引在html中看不到。主要思路就是把装图片的容器设置成overfl;hidden;
下面是一种比较简单的实现,利用jquery的fadeIn和fadeOut效果来实现。
//fadeIn and fadeOut
var time ;
var index = 1 ;
var tolnum = 3 ;
$(function(){
<span style="white-space:pre"></span>setInterval("showBanner("+tolnum+")",3000);
});
function showBanner(n)
{
<span style="white-space:pre"></span>var ul = $("#banner_img") ;
<span style="white-space:pre"></span>ul.children().fadeOut("slow") ;
<span style="white-space:pre"></span>ul.children().eq(index).fadeIn("slow") ;
<span style="white-space:pre"></span>index = index+1>n-1 ? 0 : index+1 ;
}
恩,不知道为什么到最后一张图片的时候会产生没有淡出的bug,不太懂,请大家指教。
第二种方法是利用jquery的animation来实现margin属性的过渡。
init();
function init()
{
$(function(){
var index = 0 ;
var adTime ;
var len = $("#banner_img li").length ;
addIndex(len) ;
var bannerLi = $("#index li");
//handle index
$("#index li").mouseover(function() {
index = $("#index li").index(this) ;
showImgs(index) ;
});
//toggleInterval
$("#banner").hover(function(){
clearInterval(adTimer);
},function(){
adTimer=setInterval(function(){
//alert(index) ;
showImgs(index);
index++;
if(index==len){
index=0;
}
},2000)
}).trigger('mouseleave');
});
}
//auto add index
function addIndex(n)
{
var ul = $("<ul id=\"index\"></ul>") ;
for(var i=1;i<=n;i++)
{
var li = $("<li></li>") ;
li.append(function(num){
return num
}(i)) ;
ul.append(li) ;
}
ul.children().first().addClass('on') ;
$("#banner_img").append(ul);
}
function showImgs(index)
{
var adwidth=$("#banner_img>li:first").width();
$("#banner_img").stop(true, false) ;
//$("#banner_img").css('margin-left', -index*adwidth+"px");
$("#banner_img").animate({
"marginLeft":-adwidth*index+"px"
},1000);
$("#index li").removeClass('on').eq(index).addClass('on') ;
}
hover()是一种代替mouseenter和mouseleave的方法,听说比较好用。trigger()来触发当前对象的一个状态,这里要先触发一次mouseleave的状态来初始化计时器,因为这里的设定是当鼠标移到$("#banner")上就销毁定时器,锁定当前图片,移开鼠标就重新添加定时器。<pre name="code" class="javascript">$("#banner_img").animate({
"marginLeft":-adwidth*index+"px"
},1000);
这了就是对jquery中animation方法的使用,通过传进来的index来改变banner_img的margin,这里是margin-left,所以图片就会从右往左刷(需要设置浮动),如果需要从下往上刷就设置margin-top就好了,还有我发现js中动态添加margin是不能触发css的transition的。