⑴ js 给li设置了右外边距且左浮动,当li达到4个时,自动换行显示且第4个li的右边距自动删除
<metacharset="utf-8"/>
<style>
a{color:#fff;}
ul,ol,li{
list-style:noneoutsidenone;
padding:0;
margin:0;
}
#list{
width:430px;
overflow:hidden;
background:#cecece;
}
#listli{
width:100px;
float:left;
margin-right:10px;
margin-bottom:20px;
background:#333;
}
</style>
<ulid="list">
<li><ahref="#">1</a></li>
<li><ahref="#">2</a></li>
<li><ahref="#">3</a></li>
<li><ahref="#">4</a></li>
<li><ahref="#">5</a></li>
<li><ahref="#">6</a></li>
<li><ahref="#">7</a></li>
<li><ahref="#">8</a></li>
<li><ahref="#">9</a></li>
<li><ahref="#">10</a></li>
<li><ahref="#">11</a></li>
<li><ahref="#">12</a></li>
<li><ahref="#">13</a></li>
</ul>
<script>
functiondel4margin(x){
varObjLi=document.getElementById("list").getElementsByTagName("li");
for(vari=1;i<ObjLi.length;i++){
if(i%x==0&&i!==0){
ObjLi[i-1].style.background="red";
ObjLi[i-1].style.marginRight="0";
}
}
}
window.onload=del4margin(4);//传入参数4,去掉第4个li的外边距
</script>
⑵ JS效果:3个不同颜色的li不断循环,怎么做
<meta charset="utf-8" />
如果出现乱码请把utf-8设置为gbk<br />
<style type="text/css">
/*先定义三个颜色类*/
.ys1{background-color:#f00;}
.ys2{background-color:#0f0;}
.ys3{background-color:#00f;}
</style>
ok颜色样式有了
<br />
来,做个输入框<br />
这位仁兄,你要打印多少
<input type="text" id="n" value="10" />
<input type="button" value="开始打印" onclick="print()" />
<br />
给编辑框加id(我设置为n),方便等会取数量
<br />
给按钮加上事件,被单击调用print()
<br />
接下来我们开始写print()
<br />
。。等会忘了,在加个标签(id=rs)用来显示结果
<br />
<ol id="rs"></ol>
<script type="text/javascript">
function print(){
//创建一个print()
//1.取出打印数量赋值给变量$n
var $n=document.getElementById("n").value;
//好,提示一把看看有没有成功
alert("哥,你想打印"+$n+"个li,没事,一定要是整数哦!还有别输几万,免得你机器顶不住");
//来,创建样式类名数组用来作为等会给li赋值类名
var $style=["ys1","ys2","ys3"];//就是我们刚刚定义的样式
var $z=0;//初始化为0,让他指向数组第一个元素
//在定义一个变量存放结果
var $rs="";//初始化为空
//要让他循环$n次
for(var $i=0;$i<$n;$i++){
if($z==$style.length){
//判断指针是否指到外面去了。。。这里一定要好好理解
$z=0;
}
$rs+='<li class="'+$style[$z]+'">';
$rs+="这是第"+($i+1)+"个li,这个时候这个li的累名为"+$style[$z]+"</li>";
$z++;//自身加1
}
//好循环完成,结果在$rs中
document.getElementById("rs").innerHTML=$rs;
}
</script>
⑶ js原生代码实现轮播图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>最简单的轮播广告</title>
<style>
body, div, ul, li {
margin: 0;
padding: 0;
}
ul {
list-style-type: none;
}
body {
background: #000;
text-align: center;
font: 12px/20px Arial;
}
#box {
position: relative;
width: 492px;
height: 172px;
background: #fff;
border-radius: 5px;
border: 8px solid #fff;
margin: 10px auto;
}
#box .list {
position: relative;
width: 490px;
height: 170px;
overflow: hidden;
border: 1px solid #ccc;
}
#box .list li {
position: absolute;
top: 0;
left: 0;
width: 490px;
height: 170px;
opacity: 0;
transition: opacity 0.5s linear
}
#box .list li.current {
opacity: 1;
}
#box .count {
position: absolute;
right: 0;
bottom: 5px;
}
#box .count li {
color: #fff;
float: left;
width: 20px;
height: 20px;
cursor: pointer;
margin-right: 5px;
overflow: hidden;
background: #F90;
opacity: 0.7;
border-radius: 20px;
}
#box .count li.current {
color: #fff;
opacity: 0.7;
font-weight: 700;
background: #f60
}
</style>
</head>
<body>
<div id="box">
<ul class="list">
<li class="current" style="opacity: 1;"><img src="img/images04/01.jpg" width="490" height="170"></li>
<li style="opacity: 0;"><img src="img/images04/02.jpg" width="490" height="170"></li>
<li style="opacity: 0;"><img src="img/images04/03.jpg" width="490" height="170"></li>
<li style="opacity: 0;"><img src="img/images04/04.jpg" width="490" height="170"></li>
<li style="opacity: 0;"><img src="img/images04/05.jpg" width="490" height="170"></li>
</ul>
<ul class="count">
<li class="current">1</li>
<li class="">2</li>
<li class="">3</li>
<li class="">4</li>
<li class="">5</li>
</ul>
</div>
<script>
var box=document.getElementById('box');
var uls=document.getElementsByTagName('ul');
var imgs=uls[0].getElementsByTagName('li');
var btn=uls[1].getElementsByTagName('li');
var i=index=0; //中间量,统一声明;
var play=null;
console.log(box,uls,imgs,btn);//获取正确
//图片切换, 淡入淡出效果我是用(transition: opacity 0.8s linear)做的,不纠结、简单 在css里面
function show(a){ //方法定义的是当传入一个下标时,按钮和图片做出对的反应
for(i=0;i<btn.length;i++ ){
btn[i].className=''; //很容易看懂吧?每个按钮都先设置成看不见,然后把当前按钮设置成可见。
btn[a].className='current';
}
for(i=0;i<imgs.length;i++){ //把图片的效果设置和按钮相同
imgs[i].style.opacity=0;
imgs[a].style.opacity=1;
}
}
//切换按钮功能,响应对应图片
for(i=0;i<btn.length;i++){
btn[i].index=i; //不知道你有没有发现,循环里的方法去调用循环里的变量体i,会出现调到的不是i的变动值的问题。所以我先在循环外保存住
btn[i].onmouseover=function(){
show(this.index);
clearInterval(play); //这就是最后那句话追加的功能
}
}
//自动轮播方法
function autoPlay(){
play=setInterval(function(){ //这个paly是为了保存定时器的,变量必须在全局声明 不然其他方法调不到 或者你可以调用auto.play 也许可以但是没时间试了
index++;
index>=imgs.length&&(index=0);//可能有优先级问题,所以用了括号,没时间测试了。
show(index);
},1000)
}
autoPlay();//马上调用,我试过用window.onload调用这个方法,但是调用之后影响到了其他方法,使用autoPlay所以只能这样调用了
//div的鼠标移入移出事件
box.onmouseover=function(){
clearInterval(play);
};
box.onmouseout=function(){
autoPlay();
};
//按钮下标也要加上相同的鼠标事件,不然图片停止了,定时器没停,会突然闪到很大的数字上。 貌似我可以直接追加到之前定义事件中。
</script>
</body>
</html>
⑷ ul里的li个数不固定现在想把每个li用js加宽度平均分布
2处错误
if(sgf=2) 应该是if(sgf==2)
整个逻辑有问题,if语句导致的; 所有不满足sgf==4的都会执行.css({'width':'20%'});
相当于前面的if都没用
解决:你这个问题没这么麻烦 ,一句话搞定
$(".sygfdnav ul li").css({'width':'" + 100 / sgf + "%'});
⑸ js中的for循环输出,怎么输出到html中的指定位置 循环li
准备的材料有:计算机、浏览器、html编辑器。
一、首先,打开html编辑器,创建一个新的html文件,比如index.html,并编写问题的基本代码。
⑹ js如何获取被点击li是第几个
1、首先打开html编辑器,新建一个html文件,里面写入4个li标签,并在上方的style标签中设置li的样式,给li标签高回度和宽度以及边框,答同时设置li标签之间的间隔。
⑺ js实现图片自动的滚动效果
把你的代码放在“内容”中间就可以了 宽度600px,你自己可以改宽度
<DIV id=demoleft style="OVERFLOW: hidden; WIDTH:600px;">
<TABLE border="0" align="left" cellPadding="0" cellSpacing="0" cellspace="0">
<TBODY>
<TR>
<TD width="600" align=middle vAlign=top id=demo1left>
<!--内容-->
<table width="600" height="120" border="0" cellpadding="0" cellspacing="0">
<tr>
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 8 * from cp_aboutus where userid="&hid&" order by updatetime desc,articleid desc ",conn,1,1
if not rs.eof then
dim hang
hang = 0
do while not rs.eof
hang = hang + 1
%>
<td>
<table width="110" height="115" border="0" align="center" cellpadding="0" cellspacing="0" id="table12">
<tr>
<td width="110" height="87"><%if rs("headpic")<>"" then%><a href="huicpshow.asp?hid=<%=hid%>&id=<%=rs("articleid")%>" title="<%=rs("title")%>" target="_blank"><img src="<%=rs("headpic")%>" width="110" height="87" border="0" /></a><%else response.Write "<table width=110 height=87 border=0 cellpadding=0 cellspacing=0><tr><td height=23 bgcolor=#EBEBEB align=center>暂无图片</td></tr></table>" end if%></td>
</tr>
<tr>
<td align="center"><a href="huicpshow.asp?hid=<%=hid%>&id=<%=rs("articleid")%>" title="<%=rs("title")%>" target="_blank"><%=rs("title")%></a></td>
</tr>
</table>
</td>
<%
rs.movenext
loop
end if
rs.close
set rs=nothing
%>
</tr>
</table>
<!--end 内容-->
</TD>
<TD width="102" vAlign=top id=demo2left></TD>
</TR>
</TBODY>
</TABLE>
</DIV>
<SCRIPT>
var speed=18//速度数值越大速度越慢,demo2.offsetWidth=demo1.offsetWidth=固定值
var demoleft = document.getElementById("demoleft");
var demo2left = document.getElementById("demo2left");
var demo1left = document.getElementById("demo1left");
demo2left.innerHTML=demo1left.innerHTML
function Marquee(){
if(demo2left.offsetWidth-demoleft.scrollLeft<=0)//其实demo.scrollLeft是有 最大值的,和demo0.width,引用的图片的width有关系。demo过了一半(每半内容一样的),重新开始循环
demoleft.scrollLeft-=demo1left.offsetWidth
else{
demoleft.scrollLeft++//不断的增加,相当于父容器的滚动条不断是缩小;但由于OVERFLOW: hidden; (滚动条不可见)
}
}
var MyMarleft=setInterval(Marquee,speed)
demoleft.onmouseover=function() {clearInterval(MyMarleft)}
demoleft.onmouseout=function() {MyMarleft=setInterval(Marquee,speed)}
</SCRIPT>