A. js如何点击左右按钮切换图片
这样:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>动态切换图片</title>
</head>
<style>
ul{
padding:0;margin:0;
}
li{
list-style: none;
}
#pic{
position: relative;
width: 400px;
height: 400px;
background-color:red;
margin:100px auto;
background:url('image/1.jpg') no-repeat center;
}
#pic img{
width: 400px;
height: 400px;
}
#pic ul{
width: 50px;
position: absolute;
top: 0;
right: -70px;
}
li{
width: 40px;
height: 40px;
margin-bottom:10px;
background-color: pink;
float: left;
}
#pic span{
position: absolute;
bottom: 10px;
left: 0;
}
#pic p,#pic span{
width: 400px;
height: 20px;
}
#pic p{
position: absolute;
top: 10px;
left: 0;
}
.active{
background-color: red;
}
</style>
<body>
<div id="pic">
<img src="" alt="">
<p>qwrwe</p>
<span>werwer</span>
<ul>
</ul>
</div>
<script>
window.onload=function(){
//存放旧li
var oldLi=null;
var num=0;
var oPic = document.getElementById('pic');
var oImg = oPic.getElementsByTagName('img')[0];
var oUL = oPic.getElementsByTagName('ul')[0];
var oSpan= oPic.getElementsByTagName('span')[0];
var oP = oPic.getElementsByTagName('p')[0];
var oLi= oUL.getElementsByTagName('li');
var arr=['image/1.jpg','image/2.jpg','image/3.jpg','image/4.jpg'];
var aText = ['图片1','图片2','图片3','图片4'];
for(var i=0;i<arr.length;i++){
//动态添加元素
oUL.innerHTML+='<li></li>';
}
// 旧li就等于当前的
oldLi=oLi[num];
// 初始化
oImg.src=arr[num];
oP.innerHTML=num+1+'/'+arr.length;
oSpan.innerHTML=aText[num];
oLi[num].className='active';
for(var i=0;i<arr.length;i++){
// 给元素自定义属性
//
oLi[i].index=i;
oLi[i].onclick=function(){
// 当元素被点击时图片文字信息都一起变化
oImg.src=arr[this.index];
oP.innerHTML=1+this.index+'/'+arr.length;
oSpan.innerHTML=aText[this.index];
// 清空上一个 当前添加
oldLi.className='';
//将上一个给当前
oldLi=this;
this.className='active';
}
}
}
</script>
</body>
</html>
注意事项
1、可以通过JS删除和添加hidden属性,改用style.display="none"和style.display="inline"来实现隐藏和显示。
2、button属性,主要的问题时button样式的问题,如何才能做一个好看的button,通过查找找到了设置button相关的值。
border:none; 设置按钮无边框
outline:none;消除按钮点击后出现的表示被点击的边框
background:url(...)按钮背景图片
text-shadow: 0 1px 1px rgba(0,0,0,.3);文字阴影
box-shadow: 0 5px 7px rgba(0,0,0,.2);按钮阴影
border-radius:15px;按钮边框圆角
B. 怎么用javascript实现图片移动我只要一张图片向左移动一小段距离就好。
创建个DIV,把图片当里面,比如这样<div><img href = "asd"></div>然后在DIV属性里加上position : absolute,具体是这样<div style = "position:absolute"><div>
你要是前面都用HTML做了那直接var pic = getElementById("你的DIV的ID号,要自己先前写好")
或者var pic = getElementsByTagName("div")[你的页面里图片在第N个DIV里就写N-1]
然后调用setInterval
setInterval( " pic.style.left -= 3", 300);//每300毫秒 执行pic.style.left -= 3 一次
想停掉它调用clearInterval();
只想移动一次这样:setTimeout( " pic.style.left -= 3", 300);
全JS表示
var createDiv = document.createElement("div");
createDiv.style.height = "111px";
createDiv.style.width = "111px";
document.body.appendChild(createDiv);
createDiv.style.position = "absolute";
createDiv.style.overflow = "visible";//这里看你具体需要吧
createDiv.style.top = "111px";
createDiv.style.left = "111px";
var createImg = document.createElement("img");
createImg.setAttribute("src","http://img..com/img/logo-.gif");
createImg.height = 111;
createImg.width = 111;
createDiv.appendChild(createImg);
setInterval( " createDiv.style.left -= 3", 300);
C. 求 JS 大神,教教我图片轮播、、好心求解
要实现图片滚动轮播,可以有很多方式,无非是通过调整外围容器的位置(left/top)或者内部图片容器的定位(marin-left/margin-top)来实现的。这里我以前者为例(向左滚动):
通常的实现方式是:
1) 有一个外层容器,同时作为“视口”,这个viewPort有固定的尺寸,超出的部分隐藏,定位方式为“relative”;
2) 包含图片的容器(此处称为“画轴”),尺寸很大,可以容纳下要滚动图片的阵列,定位方式为“absolute”;
3) 滚动即是调整此画轴的偏移量,此处示例为left;
4) 如果图片要看上去是连续滚动(到最后一幅时接着出现第一幅)的,那么可以重复第一幅图像到阵列的最末,然后当画轴滚动到此时,重置偏移量到第一幅。
有了上述DOM结构后,就可以通过JS来控制画轴的偏移量了,如果使用动画,可以参考一些成熟的动画库,示例只提供最基本的线性动画(即匀速移动)。
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
</head>
<body>
<div class="viewPort">
<ul class="scroll" id="scroll">
<li><img src="img/scrollImage (0).jpg"></li>
<li><img src="img/scrollImage (1).jpg"></li>
<li><img src="img/scrollImage (2).jpg"></li>
<li><img src="img/scrollImage (3).jpg"></li>
<li><img src="img/scrollImage (4).jpg"></li>
<li><img src="img/scrollImage (0).jpg"></li>
</ul>
</div>
</body>
</html>
CSS:
.viewPort{
width: 168px;
height: 168px;
position: relative;
overflow: hidden;
border: solid 1px #666;
}
.viewPort .scroll{
width: 10000px;
height: 168px;
position: absolute;
left: 0;
list-style: none;
margin: 0;
padding: 0;
}
.viewPort .scroll li{
width: 168px;
height: 168px;
float: left;
}
JS:
var scroll = document.getElementById('scroll'); // 画轴
var scrollLeft = 0; // 记录画轴CSS left属性的值
var index = 0; // 当前显示的画的序号
// 滚动一幅画面,调整画轴scroll的left属性值。
function scrollByOne(){
var timer = setInterval(function(){
if (scrollLeft <= -168 * index) {
clearInterval(timer);
scrollLeft = -168 * index;
// 当滚动到最后一幅画面(与第一幅相同)时,重置。
if (index == 5) {
scrollLeft = 0;
scroll.style.left = Ɔ'
index = 0;
}
} else {
scrollLeft -= 2;
scroll.style.left = scrollLeft + 'px'
}
}, 10);
}
// 滚动,每隔3秒钟滚动一幅。
setInterval(function(){
++index;
scrollByOne();
}, 3000);
代码:
D. 如何使用js的计时器来让一个div背景从左向右移动全部代码
你好,给你写了一个很基础的例子。参照着自己优化成你想要的效果吧。
示例是这样的,鼠标移动到div上,背景图片会从左往右移动直至最右端。鼠标移出div,背景图标从右往左直至最左端。
备注:考虑到宽度变化,本例背景图片使用百分比定位。根据你的实际情况也可改为使用像素(px)定位。
<style>
.bg-div{
height:110px;
background:url(https://gss0.bdstatic.com/7Ls0a8Sm1A5BphGlnYG/sys/portrait/item/27267a776a746b7505.jpg)0%centerno-repeat#ccc;
}
</style>
<divid="J_BgDiv"class="bg-div"></div>
<script>
(function(){
vardiv=document.getElementById('J_BgDiv');
//背景百分比(从左至右,0%-100%)
varpos=0;
//背景向右移还是向左移(0:向右,1:向左)
vardir=0;
//每次移动的百分比,控制速度
varstep=3;
div.addEventListener('mouseover',function(){
varnode=div;
dir=0;
if(!div.mover){
div.mover=setInterval(function(){
//每次移动10%
if(dir===0){
pos+=step;
}else{
pos-=step;
}
pos=pos>=100?100:pos;
pos=pos<=0?0:pos;
node.style.backgroundPosition=pos+'%center';
},20);
}
},false);
div.addEventListener('mouseout',function(){
dir=1;
},false);
})();
</script>
希望能帮你解决问题,如有疑问可以追问。