【回忆1314】回忆之横竖滑动门

直接看效果点这里

HTML

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title> 横竖滑动门 </title>
    <link rel="stylesheet" href="sliding-door.css"/>
</head>
<body>
<div class="m-sliding-x" id="J_SlidingX">
    <div class="list list-1">
        <a href="javascript:;" class="hd">1</a>
        <div class="bd">内容1</div>
    </div>
    <div class="list list-2">
        <a href="javascript:;" class="hd">2</a>
        <div class="bd">内容2</div>
    </div>
    <div class="list list-3">
        <a href="javascript:;" class="hd">3</a>
        <div class="bd">内容3</div>
    </div>
    <div class="list list-4">
        <a href="javascript:;" class="hd">4</a>
        <div class="bd">内容4</div>
    </div>
</div>

<div class="m-sliding-y" id="J_SlidingY">
    <div class="list list-1">
        <a href="javascript:;" class="hd">1</a>
        <div class="bd">内容1</div>
    </div>
    <div class="list list-2">
        <a href="javascript:;" class="hd">2</a>
        <div class="bd">内容2</div>
    </div>
    <div class="list list-3">
        <a href="javascript:;" class="hd">3</a>
        <div class="bd">内容3</div>
    </div>
    <div class="list list-4">
        <a href="javascript:;" class="hd">4</a>
        <div class="bd">内容4</div>
    </div>
</div>
<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script src="sliding-door.js"></script>
<script>
    // 横向滑动门
    slidingDoor({
        btnList : $(‘#J_SlidingX .list .hd‘),
        mainList : $(‘#J_SlidingX .list‘),
        btnOffset : 40,
        mainOffset : 160,
        event : ‘click‘,
        direction : ‘x‘
    });

    // 竖向滑动门
    slidingDoor({
        btnList : $(‘#J_SlidingY .list .hd‘),
        mainList : $(‘#J_SlidingY .list‘),
        btnOffset : 40,
        mainOffset : 160,
        event : ‘click‘,
        direction : ‘y‘
    });
</script>
</body>
</html>

CSS

/*m-sliding-x*/
.m-sliding-x{ width: 320px; height:100px; overflow:hidden; position:relative; margin: 10px auto; }
.m-sliding-x .list {position:absolute;top:0;width:200px;height:100%; text-align: center; line-height: 100px; background-color: #999;}
.m-sliding-x .list .hd{position:relative;float:left; height:100%; width:40px; text-align: center; line-height: 100px; color: #fff; text-decoration: none; background-color: #141414; }
.m-sliding-x .list .hd:hover{ background-color:#2A2829;}
.m-sliding-x .list-1{left:0;}
.m-sliding-x .list-2{left:200px;}
.m-sliding-x .list-3 {left:240px;}
.m-sliding-x .list-4{left:280px;}
.m-sliding-x .list .bd{ position:absolute; left:40px; top:0; width: 160px; height:100%; }

/*m-sliding-y*/
.m-sliding-y{ width: 100px; height:320px; overflow:hidden; position:relative; margin: 10px auto; }
.m-sliding-y .list {position:absolute;left:0;width:100%;height:200px; text-align: center; line-height: 200px; background-color: #999;}
.m-sliding-y .list .hd{position:relative;float:left; height:40px; width:100%; text-align: center; line-height: 40px; color: #fff; text-decoration: none; background-color: #141414; }
.m-sliding-y .list .hd:hover{ background-color:#2A2829;}
.m-sliding-y .list-1{top:0;}
.m-sliding-y .list-2{top:200px;}
.m-sliding-y .list-3 {top:240px;}
.m-sliding-y .list-4{top:280px;}
.m-sliding-y .list .bd{ position:absolute; top:40px; left:0; width: 100%; height:160px; }

JS

//横竖滑动门
function slidingDoor(opt){
    var oBtnList = opt.btnList,
        oBtn = opt.btnOffset,
        oMainList = opt.mainList,
        oMain = opt.mainOffset,
        ev = opt.event || ‘click‘,
        oDirection = opt.direction || ‘x‘,
        len = oBtnList.length;
    oBtnList.each(function(i, v){
        $(this).on(ev, function(){
            for(var n = 1; n <= i; n++){//第一个不需要动
                if(oDirection === ‘x‘){
                    oMainList.eq(n).animate({
                        left:oBtn*n+‘px‘
                    });
                }else{
                    oMainList.eq(n).animate({
                        top:oBtn*n+‘px‘
                    });
                }
            }
            for(var j = n; j < len; j++){
                if(oDirection === ‘x‘){
                    oMainList.eq(j).animate({
                        left:oBtn*j+oMain+‘px‘
                    });
                }else{
                    oMainList.eq(j).animate({
                        top:oBtn*j+oMain+‘px‘
                    });
                }
            }
            return false;
        });
    });
}
时间: 2024-08-12 03:34:44

【回忆1314】回忆之横竖滑动门的相关文章

制作滑动门菜单

在之前的工作中有一次遇到了一种菜单,要随菜单名称的长短而伸展和缩短,后来查了相关资料才知道这种菜单的被称为“滑动门菜单”…… 样子就像下面的图片这样: 做法: 把菜单分成三部分:左边.中间.右边.菜单的左边和右边各用一张背景图片(不平铺),中间用一张背景图片,这张背景图是要平铺的,因为中间部分会随着菜单字数的增多而伸展开来,切图如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http

有关“滑动门”代码研究

废话先不说,先上代码: /**************************************** 此代码来源于CSS-TRICKS,以下信息为博主发布: CREATED BY: Brandon Setter WEBSITE: http://Media-Sprout.com FOLLOW ME: twitter.com/bsetter CREATION DATE: 10/2009 VERSION 1.0 *****************************************/

JS滑动门

<a href="#" id="one1" onmouseover="setTab('one',1,2)" class="hover">专家汇聚</a> <a href="#" id="one2" onmouseover="setTab('one',2,2)" >主治医师</a> <div id="con

电商网站滑动门特效

今天在慕课网学习了JavaScript滑动门特效,这个特效在电商网站上比较常见,难度适中,要对JavaScript和DOM比较熟悉. 一.实现HTML + CSS结构 首先编写HTML代码 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>sliding doors</title> 6 <link rel="s

8.3 应用滑动门技术的玻璃效果菜单

本例中要实现一个玻璃材质效果的水平菜单.为了表现出立体的视觉效果,以及玻璃的质感.必须借助图像才可以实现,完成后的效果如图1所示. 该实例文件位于网页学习网CSS教程资源的“第8章\03\glass-navi.htm”. 图1 玻璃效果的菜单 本例中用到了两个图像,分别作为整个菜单的背景色平铺使用的,和当鼠标指针经过某个菜单项的时候显示出来的. 从效果图中可以看出,玻璃材质图是一个固定的图像文件,而菜单中的各个菜单项宽窄不一,却都可以完整地显示出来,这是如何实现的呢?这里使用的就是“滑动门”技术

asp.net实现数据库版动态网页滑动门

前端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="滑动门.aspx.cs" Inherits="UI.滑动门" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server&quo

javascript滑动门的实现方法和案例

首先我们知道js滑动门的三种实现思路: -自定义方法 -闭包 -自定义属性 那么写个列子分析一下各自的好坏.demo地址:http://codepen.io/tianzi77/pen/jPMPeB html结构: <div id="content"> <div id="tabs"> <ul> <li class="active">天子</li> <li>滑动门</li&

css滑动门技术

双重滑动门效果还是比较常用的,其实很好理解: 两个门就好比两个块级的元素重合所形成的效果,看一段代码如下: #Mydoor ul li a:hover{ color:#fff; //设置背景 黑色 background: url(hover.gif); //设置背景 图片,图片周边应为透明,这样才能把背景衬托出来 } 可以看到左侧变化如下 /* *将连接a下的内容变为块级:给右边一个宽度 */ #Mydoor ul li a b{ display:block; //设置为块元素 padding:

[CSS]三层嵌套的滑动门

原理: 最外层放水平平铺的背景,第二层放左边,第三层放右边,注意这个做法背景图不能透明 结构: <div class="module-title"> <span class="left"> <span class="right"></span> </span> </div> 样式: .module-title {    height:33px;    background: