随笔 - 22  文章 - 0  评论 - 79  阅读 - 14万

[javascript]鼠标滑过列表文字显示图片及详细信息

祝端午节快乐!@&@

此效果类似于当当网首页右侧的的7日畅销榜,因为工作需要,编写了一个,现分享出来,恐有不足之处,望提出宝贵意见,共同进步!
此效果的难度,不在js,而在xhtml+css,为了实现代码的最优化和浏览器良好的兼容性,确实花了不少功夫,最后选择使用无序列表ul>li;

js是封装好的,与文档分离开,同一个页面可以实现多处这样的效果,且互不干扰;

1.xhtml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<div id="ranklist">
  <ul class="topcn">
    <li>
        <span>1</span>
        <p style="display:none;"><code>2007-2-10</code><a href="#">鼠标滑过列表文字显</a></p>
        <div style="display:block;">
          <a href="#"><img src="images/imgs.jpg" title="图片"/></a>
            <a href="#">鼠标滑过列表文字显示图片及详细信息信息信息</a>
            <em>日增:666</em>
        </div>
    </li>
    <li>
        <span>2</span>
        <p><code>2007-2-10</code><a href="#">鼠标滑过列表文字显</a></p>
        <div>
          <a href="#"><img src="images/imgs.jpg" title="图片"/></a>
            <a href="#">鼠标滑过列表文字显示图片及详细信息信息信息</a>
            <em>日增:666</em>
        </div>
    </li>
    <li>
        <span>3</span>
        <p><code>2007-2-10</code><a href="#">鼠标滑过列表文字显</a></p>
        <div>
          <a href="#"><img src="images/imgs.jpg" title="图片"/></a>
            <a href="#">鼠标滑过列表文字显示图片及详细信息信息信息</a>
            <em>日增:666</em>
        </div>
    </li>   
  </ul>
</div>

 

2.css

ul,p{ margin:0; padding:0;}
.topcn{width:300px;line-height:27px;font-size:12px;}
.topcn a{font-size:12px;}
.topcn li{border-bottom:#000 1px dotted;display:inline-block;clear:both;}
.topcn span{float:left;width:17px;height:15px;line-height:15px;text-align:center;font-size:9px;font-family: Verdana, Geneva, sans-serif;margin:5px 5px 0 0;background-color:#99C;}
.topcn p,.topcn div {float:left;width:278px;}
.topcn p code {float:right;color:#9f9fa1;}
.topcn img {width:67px;height:50px;border:#000 1px solid;float:left;margin:3px 10px 0 0;display:inline; background-color: #CCF;}
.topcn em {display:block;color:#919b9d;}
.topcn div{line-height:19px; padding-bottom:5px; display:none;}

3.js

function ranklist(id,ele,elename,elechild,start_ele,cur_ele){
    var obj_id=document.getElementById(id);
    var obj_ele=$tag(obj_id,ele);
    for(i=0;i<obj_ele.length;i++){
        if(obj_ele[i].className.indexOf(elename) == -1) continue;
        var objlist=$tag(obj_ele[i],elechild);
        for(j=0;j<objlist.length;j++){
            objlist[j].onmouseover=function(){
                var paris=this.parentNode;
                var list=$tag(paris,elechild);
                for(x=0;x<list.length;x++){
                    var thisdiv=$tag(list[x],cur_ele)[0];
                    var thisp=$tag(list[x],start_ele)[0];
                    thisdiv.style.display="none";
                    thisp.style.display="block";
                    }
                var start=$tag(this,start_ele)[0];
                start.style.display='none';
                var cur=$tag(this,cur_ele)[0];
                cur.style.display='block';
            }
        }
    }
}
function $tag(id,tag){return id.getElementsByTagName(tag);}
setTimeout("ranklist('ranklist','ul','topcn','li','p','div')",0);
/*参数解释:
ranklist:为了缩小函数在文档中搜寻对象的范围,给其设置了一个id参数;
ul:在搜寻范围内遍历ul元素列表;这是ele参数,为了排除与效果无关的ul元素;给其添加了类topcn,这是elename参数;
在指定的ul中遍历li列表元素;鼠标经过li元素会有相应的事件产生;
p:为文字列表行;
div:是显示的详细信息区域;
*/

效果展示

posted on   轻舟  阅读(14718)  评论(22编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
< 2010年6月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示