首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用CSS制作一个画布外的滑行菜单吗?

我可以用CSS制作一个画布外的滑行菜单吗?
EN

Stack Overflow用户
提问于 2015-04-17 23:00:51
回答 1查看 429关注 0票数 0

我想在菜单上做一张画布外的菜单.我找到了一个很好的例子,但是它使用的是SCSS,是否可以使用CSS来创建相同的示例呢?

Codepen演示:

代码语言:javascript
复制
<div data-off-canvas="true">
<div class="off-canvas-menu">
  <ul class="nav nav-pills nav-stacked">
    <li class="active"><a href="#">Home</a></li>
    <li><a href="#">Profile</a></li>
    <li><a href="#">Messages</a></li>
  </ul>
</div>

<div id="off-body" class="container-fluid">
  <div class="container-inner">
    <div class="container-content">

      <button type="button" class="btn btn-primary btn-sm" data-toggle="off-canvas" data-target="#off-body">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>

      <h1 class="page-header">
        <i class="glyphicon"></i> Simple Off-Canvas 
      </h1>


[data-off-canvas="true"],
.container-fluid,
.container-inner,
.container-info {
 height: 100%;
}

.container-inner {
 display: table;
 width: 90%;
 margin-left: auto;
 margin-right: auto;
}

.container-content {
 display: table-cell;
 vertical-align: middle;
 text-align: center;
}

.page-header {
 font-family: "Bitter";
 font-weight: bold;
 font-size: 64px;
 letter-spacing: -1px;
 border-bottom: 0 none;
 text-shadow: 0 2px 8px darken(#05bb0e, 10%);
}

p.lead {
 font-weight: 300;
}

*:focus { outline: 0 none !important; }

[data-off-canvas="true"] {
 height: 100%;

 &.active {
  overflow-x: hidden;
 }
}

.col-xs-12 > .btn {
 margin-top: 15px;
 padding-left: 8px;
 padding-right: 8px;
}

.icon-bar {
 display: block;
 clear: both;
 width: 23px;
 height: 4px;
 margin-top: 2px;
 margin-bottom: 2px;
 background-color: #fff;
}

.off-canvas-menu {
 @include transition(left 155ms ease-out);
 position: fixed;
 top: 0;
 z-index: 100;
 left: -250px;
 width: 250px;
 height: 100%;
 padding: 10px;
 box-shadow: -1px 0 1px 0 #313131 inset;
 border-right: 1px solid #000;
 background-color: #191919;

 &.active {
  @include transition(left 155ms ease);
  left: 0;
 }
}

.off-canvas-target {
 @include transition(transform 150ms ease);
 @include translate(0, 0);

&.active {
 @include transition(transform 150ms ease);
 @include translate(250px, 0);
 }
}

+function ($) { 'use strict'; 

var OffCanvas = function (element, options) {
this.element = (element) ? element : '[data-toggle="off-canvas"]';
this.options = (options) ? options : this.defaults;

return this;
};

OffCanvas.defaults = {};

OffCanvas.prototype.engage = function () {
var $target = $($(this.element).data('target'));

$target.addClass('off-canvas-target');

$(this.element).on('click', function (event) {
  var offCanvas    = '[data-off-canvas=true]',
      slideTarget  = $(this).data('target'),
      slideMenubar = '.off-canvas-menu';

  event.preventDefault();

  $(offCanvas).toggleClass('active');
  $(slideTarget).toggleClass('active');
  $(slideMenubar).toggleClass('active');

 });
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 23:00:41

代码页中的CSS部分有一个“视图编译”按钮,并将SCSS转换为CSS。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29710777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档