Css3 抽屉效果

演示地址在这里
jq.slidemenu.js 滑动菜单是手机开发框架自主研发的控件之一,定制简单,扩展方便。 最常见的向下滑动菜单,类抽屉样的。但控件也提供了对四围的支持,上下左右都可以。这个插件的开发的思路来自于 这里!

源码示例如下:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>carousel demo</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
        <script src="https://dl.dropbox.com/u/20786642/touch.js" type="text/javascript"></script>
        <script src="https://dl.dropbox.com/u/20786642/scripts/jq.slidemenu.js" type="text/javascript"></script>
        <style type="text/css" media="all">
            body {
                overflow : hidden; 
            }
            ul, li, div {
                margin:0;
                padding:0;
                list-style:none;
            }

            #slidedownmenu {
                position:absolute;
                width:100%;
                height:115px;
                left: 0px; 
                z-index:999;
                background:#c05500 url(images/drawer-bg.jpg);
            }

            #slidedownmenu .handle {
                -webkit-user-select:none;
                position:absolute;
                bottom:-28px;
                left:0;
                width:100%;
                height:28px;
                border-top:1px solid #532500;
                border-bottom:1px solid #111;
                background-color:#c3a57e;
                background:url(images/handle.png) no-repeat 50% 50%, -webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #e07b29), color-stop(0.1, #b85300), color-stop(0.8, #793600));
                /*    -webkit-box-shadow:0 0 5px rgba(0,0,0,0.7);*/
            }

            #slidedownmenu ul {
                display:block;
                width:auto;
            }

            #slidedownmenu li {
                display:block;
                float:left;
                margin:20px 10px;
                text-align:center;
                font-weight:bold;
                color:#fff;
                text-shadow:0 1px 1px #000;
            }

            #slidedownmenu li img {
                display:block;
                margin-bottom:4px;
            }
        </style>
    </head>
    <body>
        <div id="slidedownmenu" data-slide-direction="top">
            <ul>
                <li><img src="images/icon1.png" width="59" height="60" alt="">Option 1</li>
                <li><img src="images/icon2.png" width="59" height="60" alt="">Option 2</li>
                <li><img src="images/icon3.png" width="59" height="60" alt="">Option 3</li>
                <li><img src="images/icon4.png" width="59" height="60" alt="">Option 4</li>
            </ul>
            <div class="handle"></div>
        </div>
        <script type="text/javascript" charset="utf-8">
            document.addEventListener('touchmove', function(e) {
                e.preventDefault();
                e.stopPropagation();
            });
            $('#slidedownmenu').slidemenu({
                opened: true
            });
        </script>
    </body>
</html>
posted on 2012-09-19 17:30 叶子绿 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/ms_config/archive/2012/09/19/2694042.html

可以通过CSS3中的transform和transition属性来实现抽屉效果。 首先,我们需要为抽屉容器设置一些基本的样式: ```css .drawer { position: fixed; top: 0; bottom: 0; left: 0; width: 300px; background-color: #fff; transform: translateX(-300px); transition: transform 0.3s ease-out; } ``` 这里将抽屉容器的位置设置为fixed,宽度为300px,背景色为白色,并且通过transform属性将其向左平移了300px,即隐藏在屏幕外。 接下来,我们需要为打开抽屉的按钮添加点击事件,触发抽屉的展开: ```css .drawer-toggle { position: fixed; top: 20px; left: 20px; width: 40px; height: 40px; background-color: #ccc; cursor: pointer; } .drawer-toggle:hover { background-color: #999; } .drawer-toggle:before { content: ""; display: block; position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; background-color: #fff; transform: translate(-50%, -50%); } .drawer-toggle:after { content: ""; display: block; position: absolute; top: 50%; left: 50%; width: 2px; height: 20px; background-color: #fff; transform: translate(-50%, -50%); } .drawer-toggle.open:before { transform: translate(-50%, -50%) rotate(45deg); } .drawer-toggle.open:after { transform: translate(-50%, -50%) rotate(90deg); } ``` 这里创建了一个按钮,通过CSS3的伪元素before和after来实现按钮的图标。同时,给按钮添加了:hover和.open两个状态的样式,用于展示按钮的交互效果。 最后,我们需要为打开抽屉的按钮添加一个点击事件,并且通过JavaScript来控制抽屉容器的transform属性,来实现抽屉的展开和关闭: ```javascript var drawerToggle = document.querySelector('.drawer-toggle'); var drawer = document.querySelector('.drawer'); drawerToggle.addEventListener('click', function() { drawer.classList.toggle('open'); }); ``` 这里使用了classList.toggle方法来切换抽屉容器的.open类,从而触发抽屉的展开和关闭效果。 完整的示例代码如下: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>抽屉效果</title> <style> .drawer { position: fixed; top: 0; bottom: 0; left: 0; width: 300px; background-color: #fff; transform: translateX(-300px); transition: transform 0.3s ease-out; } .drawer-toggle { position: fixed; top: 20px; left: 20px; width: 40px; height: 40px; background-color: #ccc; cursor: pointer; } .drawer-toggle:hover { background-color: #999; } .drawer-toggle:before { content: ""; display: block; position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; background-color: #fff; transform: translate(-50%, -50%); } .drawer-toggle:after { content: ""; display: block; position: absolute; top: 50%; left: 50%; width: 2px; height: 20px; background-color: #fff; transform: translate(-50%, -50%); } .drawer-toggle.open:before { transform: translate(-50%, -50%) rotate(45deg); } .drawer-toggle.open:after { transform: translate(-50%, -50%) rotate(90deg); } </style> </head> <body> <div class="drawer"> <p>这是抽屉内容</p> </div> <div class="drawer-toggle"></div> <script> var drawerToggle = document.querySelector('.drawer-toggle'); var drawer = document.querySelector('.drawer'); drawerToggle.addEventListener('click', function() { drawer.classList.toggle('open'); }); </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值