Javascript, toggle-button按类为元素添加样式
Javascript, toggle-button adding style to element by class
我使用的是AdminLTE
模板。
有一个toggle-sidebar button
,通过在body
中添加和删除.sidebar-collapse
类来隐藏和显示sidebar
。
的例子:
- 默认为
<body class="skin-blue sidebar-mini">
- 当
button
点击一次,它将是<body class="skin-blue sidebar-mini sidebar-collapse">
- 当
button
再次点击时,它将返回<body class="skin-blue sidebar-mini">
现在我想改变<section>
的style
(左边框)与class="content"
为每个toggle-sidebar
点击。
的例子:
- 默认为
<body class="skin-blue sidebar-mini">
和<section class="content" style="margin-left:-200px;margin-top:-40px">
- 当
button
点击一次,将会是<body class="skin-blue sidebar-mini sidebar-collapse">
和<section class="content" style="margin-left:-380px;margin-top:-40px">
- 当
button
再次点击时,它将返回<body class="skin-blue sidebar-mini">
和<section class="content" style="margin-left:-200px;margin-top:-40px">
代码:
$.AdminLTE.pushMenu = {
activate: function(a) {
var b = $.AdminLTE.options.screenSizes;
$(document).on("click", a, function(a) {
a.preventDefault(), $(window).width() > b.sm - 1 ? $("body").hasClass("sidebar-collapse") ? $("body").removeClass("sidebar-collapse").trigger("expanded.pushMenu") : $("body").addClass("sidebar-collapse").trigger("collapsed.pushMenu") : $("body").hasClass("sidebar-open") ? $("body").removeClass("sidebar-open").removeClass("sidebar-collapse").trigger("collapsed.pushMenu") : $("body").addClass("sidebar-open").trigger("expanded.pushMenu")
}), $(".content-wrapper").click(function() {
$(window).width() <= b.sm - 1 && $("body").hasClass("sidebar-open") && $("body").removeClass("sidebar-open")
}), ($.AdminLTE.options.sidebarExpandOnHover || $("body").hasClass("fixed") && $("body").hasClass("sidebar-mini")) && this.expandOnHover()
},
expandOnHover: function() {
var a = this,
b = $.AdminLTE.options.screenSizes.sm - 1;
$(".main-sidebar").hover(function() {
$("body").hasClass("sidebar-mini") && $("body").hasClass("sidebar-collapse") && $(window).width() > b && a.expand()
}, function() {
$("body").hasClass("sidebar-mini") && $("body").hasClass("sidebar-expanded-on-hover") && $(window).width() > b && a.collapse()
})
},
expand: function() {
$("body").removeClass("sidebar-collapse").addClass("sidebar-expanded-on-hover")
},
collapse: function() {
$("body").hasClass("sidebar-expanded-on-hover") && $("body").removeClass("sidebar-expanded-on-hover").addClass("sidebar-collapse")
}
}
如果我的问题让你困惑,请告诉我。我真的看不懂代码,上面所有的代码都是由AdminLTE
你应该使用css样式。这样你就不需要修改任何javascript代码。
/* Sidebar open state */
.content {
margin-left: -200px;
margin-top: -40px;
}
/* Sidebar collapsed state */
.sidebar-collapse .content {
margin-left: -380px;
}
上面的代码是原始问题的答案。下面的代码是你需要做你真正想要它做的事情。
/* Sidebar open state */
.content {
left: 400px;
position: absolute;
}
/* Sidebar collapsed state */
.sidebar-collapse .content {
left: 250px;
}
还有其他可能的解决方案,但margin-left
不起作用的主要原因是因为您的项目绝对位于section内。因为它们是绝对定位的,所以它们不会考虑margin/padding
相关文章:
- 如何将html元素添加到tampermonkey中
- 如何将html元素添加为生成的内容
- 如何向Selectize元素添加渲染和创建方法
- 向html选择元素添加选项
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 如何将新的键/值对元素添加到现有数组
- 使用docment.createElement向元素添加选项
- ng重复向一个元素添加条件类
- 为li元素添加标题
- 向ckeditor中的多个元素添加内联样式
- Javascript 向影子根中的自定义元素添加函数
- 将伪元素添加到<文本区域>
- 如果类只包含一个特定数字,则向元素添加类
- DOM:将空元素添加到 DOM 和页面重排
- 是否有 jQuery 事件用于何时将元素添加到文档中
- 通过 ajax 使用自定义滚动条向元素添加内容
- 是否可以用D3将svg元素添加到开放层映射中
- 如何将元素添加到动态数组并排除现有元素
- 在AngularJS中将元素添加到作用域时,如何在所有设备上播放声音
- 将图像元素添加到<a>标签